Я обнаружил серьезный недостаток в режиме приватного просмотра Mozilla.

1656633129 ya obnaruzhil sereznyj nedostatok v rezhime privatnogo prosmotra mozilla

от Konark Modi

Если эту ошибку не исправить, она могла бы привести к хаосу, но оперативные исправления Mozilla спасли ситуацию.

В этой статье я расскажу детали об ошибке, обнаруженной в режиме частного просмотра Mozilla Firefox, позволявшей отслеживать сеансы частного просмотра.

nQCoNGC0tbc9SPMGqEXmPNDFQAzj7iX6D9VC

Частный просмотр является одной из наиболее известных и используемых функций современных браузеров. Браузеры постоянно добавляют много усовершенствований в частный просмотр, чтобы улучшить конфиденциальность пользователей.

Предлагаемые функции могут отличаться от одного браузера к другому, но по крайней мере пользователь, использующий приватный просмотр, имеет два основных требования:

1. Веб-сайты, посещаемые приватно, не могут хранить данные

2. Посещенные страницы не сохраняются

Что ж, я обнаружил, что режим приватного просмотра браузера Firefox не отвечает ни одному из вышеприведенных требований.

Технические детали

Чтобы веб-сайт мог отслеживать пользователя в течение сеансов приватного просмотра, ему нужно использовать некоторую постоянную память на уровне браузера.

Есть несколько способов хранения данных в браузере – LocalStorage, WebSQL и IndexedDB.

Недавно я наткнулся на хранилище IndexedDB.

IndexedDB – это API низкого уровня для хранение на стороне клиента значительного количества структурированных данных, включая файлы/блоки — Сеть разработчиков Mozilla

Хотя, согласно документации, IndexedDB не должен быть доступен в режиме приватного просмотра.

mGRjKaicfoCy9k30nF02RurfMy1nh1sM4WDS

Если вы используете IndexedDB непосредственно на веб-странице, это вызовет ошибку:

jGh-PWy46yvl9wWMU8DelSbEAxNy-rAA2C2b

Но что произойдет, если вы соедините IndexedDB с Web Workers?

Web Workers делает это возможным запустить операцию сценария в фоновом потоке отдельно от основного потока выполнения веб-приложения — Mozilla Developer Network

Подробности проблемы: The Fallout

Доступ к IndexedDB можно получить в режиме приватного просмотра через Web Workers. Кроме того, когда браузер закрыт, данные IndexedDB не очищаются. Это сохраняется данные будут сохраняться в течение нескольких сеансов частного просмотра потому что он не очищается при выходе. ?

Давайте рассмотрим несколько способов злоупотребления этой проблемой.

Веб-сайты

Вредоносный веб-сайт может использовать IndexedDB и отслеживать пользователей во время сеансов частного просмотра. Например, скажите, что вы посетили badsite.com, который использует Web Workers и IndexedDB в режиме приватного просмотра. Закройте окно приватного просмотра, закройте Firefox, снова запустите Firefox, запустите режим частного просмотра и снова посетите badsite.com. Веб-сайт будет иметь доступ к данным предыдущего сеанса частного просмотра, поскольку данные все еще сохраняются в IndexedDB.

Посторонние

Предположим siteA.com загружает сценарий аналитики из BadAnalyticsSite.com. Затем другой веб-сайт, siteB.comтакже загружает сценарий аналитики с того же веб-сайта BadAnalyticsSite.com. Поскольку вредоносный веб-сайт BadAnalyticsSite.com использует веб-сайт Web Workers и IndexedDB BadAnalyticsSite.com теперь может отслеживать пользователей веб-сайтов siteA.com и siteB.com во время всех сеансов приватного просмотра.

Утечка диска

IndexedDB придерживается политики одинакового происхождения, что означает, что каждая база данных имеет название, идентифицирующее ее внутри источника. Поскольку доменное имя используется как часть имени файла, это может привести к серьезным проблемам при использовании в приватном режиме.

Например, если пользователь посещает тестовую веб-страницу (демо), использующую Web Workers + IndexedDB, размещенную на cdn.cliqz.comи загружает ресурс из konarkmodi.github.ioследующие две записи создаются на диске.

7Lvp2fMquDHAQMbhxaLe9U3O-nfHbtzBQaUf
Расположение IndexedDB: `списки профиля/хранилища Веб-страницы Poc.

Из-за вышеуказанной ошибки веб-сайт/трекер может эффективно создать отпечаток пальца и сохранить его. Даже если пользователь очищает историю веб-сайта или выбирает опцию «забыть этот сайт», хранилище IndexDB не удаляется. Это может создать постоянное хранилище для сайта или трекера, которое можно использовать вечно.

Отчет и исправление

Mozilla поощряет исследование безопасности своих продуктов. Их словами:

Программа Mozilla Client Security Bug Bounty разработана, чтобы поощрять исследования безопасности программного обеспечения Mozilla и вознаграждать тех, кто помогает нам создавать безопасное программное обеспечение для Интернета.

Я сообщил об этой проблеме в октябре 2017 года из-за их программы вознаграждений за ошибки, и проблема была решена в ноябре 2017 года. Им было предложено выявить и устранить проблемы.

OC0xoCmQYVA47kPOOHbrlrDdoOm1omUa2MOv

Для получения дополнительных сведений вы можете прочитать полный отчет об ошибке на Mozilla’s Bugzilla.

Я очень ценю усилия и действия Mozilla по решению проблем с высоким приоритетом, когда речь идет о конфиденциальности ее пользователей.

Счастливого взлома!

Вы можете следить за мной в Twitter в Konark Modi

Спасибо за чтение и распространение! 🙂

Если вам понравилась эта история, не стесняйтесь??? несколько раз (до 50 раз. серьезно).

Благодарность: особая благодарность Реми и Паллави за просмотр этого сообщения 🙂

Добавить комментарий

Ваш адрес email не будет опубликован.