Обнаружен новый способ детектирования режима «инкогнито» в новой версии Chrome
Неделю назад компания Google выпустила очередную версию своего браузера - Chrome 76, блокирующую для сайтов возможность определять, используется ли режим «инкогнито». Хотя пользователи встретили нововведение с большим энтузиазмом, оно открыло злоумышленникам другой путь, позволяющий детектировать использование режима «инкогнито».
Разработчик Джесс Ли (Jesse Li) в своем блоге рассказал, как с помощью FileSystem API узнать, включен ли в браузере Chrome режим «инкогнито». Представленный Ли способ основывается на определении скорости записи файлов на диск с помощью данного программного интерфейса и во многом похож на технику, которую в прошлом месяце описал Викас Мишра (Vikas Mishra). Мишра обнаружил, что Quota Management API браузера Chrome, предназначенный для управления временным и постоянным хранилищем, позволяет определить, используется ли режим «инкогнито».
Владельцы сайтов, получающие доход с платного контента, невзлюбили режим «инкогнито», поскольку он позволяет обходить ограничения и предоставляет бесплатный доступ к платному контенту. В связи с этим некоторые сайты установили код, позволяющий узнать, есть ли у пользователя Chrome доступ к FileSystem API, который в режиме «инкогнито» отключается.
Для того чтобы это исправить, в марте прошлого года специалисты Google предложили план по обеспечению доступа к FileSystem API при включенном режиме «инкогнито». Нововведение впервые появилось в Chrome 74, а в Chrome 76 уже было активировано по умолчанию.
Как обнаружил Ли, при включенном и отключенном режиме «инкогнито» FileSystem API ведет себя по-разному. Сравнив скорость записи данных на диск, исследователь продемонстрировал, что при выключенном режиме операции записи осуществляются менее регулярно и занимают в три-четыре раза больше времени, чем при включенном.
Данный метод медленнее и ненадежнее, чем определение доступности FileSystem API. Для измерения скорости записи требуются десятки секунд и различные конфигурации оборудования. Однако, по мнению Ли, проблему трудно исправить, поскольку в режиме «инкогнито» данные хранятся в памяти, а в обычном режиме - на диске.
«Единственный способ предотвратить эту атаку заключается в использовании одного и того же хранилища данных как при включенном, так и при выключенном режиме «инкогнито», для того чтобы API работал с одинаковой скоростью», - отметил Ли.