30% из тысячи крупнейших сайтов используют скрипты для скрытой идентификации

Группа исследователей из Mozilla, Айовского университета и Калифорнийского университета опубликовала итоги изучения применения на сайтах кода для скрытой идентификации пользователей. Под скрытой идентификации понимается генерация идентификаторов на основе косвенных данных о работе браузера, таких как разрешение экрана, список поддерживаемых MIME-типов, специфичные параметры в заголовках (HTTP/2 и HTTPS), анализ установленных плагинов и шрифтов, доступность определённых Web API, специфичные для видеокарт особенности отрисовки при помощи WebGL и Canvas, манипуляции с CSS, учёт значений по умолчанию, сканирование сетевых портов, анализ особенностей работы с мышью и клавиатурой.

Изучение 100 тысяч самых популярных сайтов по рейтингу Alexa показало, что на 9040 из них (10.18%) применяется код для скрытой идентификации посетителей. При этом, если рассматривать тысячу самых популярных сайтов, то подобный код был выявлен в 30.60% случаев (266 сайтов), а среди сайтов, занимающих в рейтинге места с тысячного по десятитысячное, в 24.45% случаев (2010 сайтов). В основном скрытая идентификация применяется в скриптах, предоставляемых внешними сервисами для борьбы с мошенничеством и отсеиванием ботов, а также рекламными сетями и системами отслеживания перемещения пользователей.

0_1598507269.png
Для выявления кода, осуществляющего скрытую идентификацию, был разработан инструментарий FP-Inspector, код которого предложен под лицензией MIT. В инструментарии используются методы машинного обучения в сочетании со статическим и динамическим анализом кода JavaScript. Утверждается, что применение машинного обучения позволило заметно повысить точность выявления кода для скрытой идентификации и выявить на 26% больше проблемных скриптов по сравнению с заданной вручную эвристикой.

Многие из выявленных скриптов идентификации отсутствовали в типовых списках блокировки Disconnect, Adsafe, DuckDuckGo, Justuno и EasyPrivacy. После отправки уведомления разработчиками списка блокировки EasyPrivacy был создан отдельный раздел для скриптов скрытой идентификации. Кроме того, FP-Inspector позволил выявить некоторые новые способы использования Web API для идентификации, которые ранее не встречались на практике.

Например, было выявлено использование для идентификации информации о раскладке клавиатуры (getLayoutMap), остаточных данных в кэше (при помощи API Performance анализируются задержки при отдаче данных, что позволяет определить обращался ли пользователь к определённому домену или нет, а также открывалась ли ранее страница), выставленных в браузере полномочий (информация о доступе к Notification, Geolocation и Camera API), наличии специализированных периферийных устройств и редких датчиков (геймпады, шлемы виртуальной реальности, сенсоры приближения). Кроме того, зафиксирован учёт при идентификации наличия специализированных для определённых браузеров API и различий поведения API (AudioWorklet, setTimeout, mozRTCSessionDescription), а также использование API AudioContext для определения особенностей звуковой системы.

В ходе исследования также был изучен вопрос нарушения штатной функциональности сайтов в случае применения методов защиты от скрытой идентификации, приводящих к блокированию сетевых запросов или ограничению доступа к API. Было показано, что выборочное ограничение API только для скриптов, выявленных FP-Inspector, приводит к меньшим нарушениям в работе, чем при использовании в Brave и Tor Browser более жёстких общих ограничений вызовов API, потенциально приводящих к утечке данных.




OpenNet
 
Назад
Сверху Снизу