В современных браузерах предусмотрена возможность настройки параметров визуального оформления ссылок, ведущих на ранее посещенные пользователем адреса в интернете. Веб-дизайнер имеет возможность задавать такие параметры при помощи каскадных таблиц стилей (CSS) и псевдокласса “:visited”.
Атака на посетителя сайта может осуществляться за счет считывания этих параметров ссылок на веб-странице после ее загрузки и позволяет злоумышленнику выяснить, посещались ли конкретным пользователем ранее связанные страницы. Анализ цветового оформления может быть осуществлен различными, в том числе довольно сложными способами, в том числе с использованием сценариев на языке JavaScript.
О наличии этой проблемы с браузерами известно более 20 лет. Баг с соответствующим описанием в багтрекере Firefox открыл нынешний программист Google Дэвид Бэрон (David Baron) еще в конце мая 2002 г. – почти что 23 года назад, тогда как браузер Chrome был представлен в 2008 г. Впоследствии она была устранена, но закрытым оказался лишь один из векторов атаки, а в дальнейшем злоумышленники обнаружили новые.
Как работает защита от слежки в Chrome
Для предотвращения подобных атак в Google решили реализовать в Chrome механизм изоляции данных селектора “:visited”. Вместо ведения глобального списка ссылок, по которым пользователь в прошлом перешел хотя бы один раз, как это происходит сейчас, Chrome будет собирать индивидуальный перечень таких ссылок для каждого сайта.
Запись из этого перечня будет содержать три значения (ключа): собственно, посещенный адрес (“
https://link.example”), ссылка на который в дальнейшем будет маркироваться особым образом (с использованием псевдокласса CSS “:visited”); сайт, c которого осуществлялся переход (“
https://foo.com”); источник фрейма, в котором была расположена посещенная ссылка (“
https://www.bar.com”).
Устройство хранилища, обеспечивающее разделение истории перехода по ссылкам
Браузер Chrome при рендеринге страницы будет отображать конкретный URL как посещенный при помощи селектора CSS “:visited” только в случае совпадения всех трех ключей.
Благодаря разделению истории перехода по ссылкам каждый сайт будет «знать» о том, что пользователь в прошлом переходил по какому-либо URL только в случае, когда переход был осуществлен именно с этого сайта, а значит не сможет собирать историю посещенных ресурсов в интернете и пытаться профилировать пользователей.
В Google рассматривали альтернативные способы решения этой проблемы, в том числе перевод селектора “:visited” в разряд не рекомендуемых к применению (“Deprecated”), но пришли к выводу о том, что этот подход является слишком радикальным и способным лишить интернет-пользователей ценной информации при посещении веб-страниц.
Активировать защиту можно уже сейчас
Активировать функцию изоляции, которая сейчас работает в экспериментальном режиме, можно в Chrom версии со 132 по текущую 135. Для этого необходимо ввести в строке адреса “chrome://flags/#partition-visited-link-database-with-self-links” и, оказавшись, в разделе скрытых параметров выбрать из выпадающего списка, расположенного напротив выделенного желтым цветом текста, значение “Enabled”.
Функция пока не признана стабильной, поэтому может работать неидеально в отдельных ситуациях, предупреждает Bleeping Computer. Ожидается, что в Chrome 136, релиз которого намечен на 23 апреля 2025 г., разделение истории перехода по ссылкам станет функцией, доступной по умолчанию.
Как отмечает Bleeping Computer, в других крупных обозревателях проблема потенциального отслеживания истории пользователя при помощи механизма оценки псевдокласса CSS “:visited” решена лишь частично.
Так, в Mozilla Firefox предусмотрены ограничения, касающиеся стилей, допустимых для маркировки факта посещения ссылки. Кроме того, этот браузер не позволяет сценариям JavaScript считывать этот параметр, однако механизм изоляции, схожий с реализованным в Chrome, в нем отсутствует.
В Apple Safari реализована технология защиты конфиденциальности под названием Intelligent Tracking Protection («умная защита от отслеживания»), которая, в частности, позволяет блокировать сторонние cookies по умолчанию – давно используемого инструмента таргентинга и профилирования, широко используемого участниками рынка интернет-рекламы. Google также планировала встроить функцию, являющуюся аналогом Intelligent Tracking Protection.