Исследование IMC 2024 превратило обнаружение в воспроизводимый онлайн-эксперимент: вместо доверия к тому, какой версией называет себя браузер, исследователи считали свойства внутренних объектов и сопоставляли их с заявленной версией. Метод здесь интереснее самого вывода.
О том, можно ли обнаружить подмену браузерного отпечатка, существует множество утверждений, и большинство из них ограничивается итоговым выводом. Вместо спора о том, кто выигрывает, полезнее посмотреть, как исследователи превратили этот вопрос в воспроизводимый эксперимент и по каким метрикам они делали выводы.
Исследование Browser Polygraph, опубликованное на ACM Internet Measurement Conference (IMC) 2024, было выполнено исследователями из Arizona State University, Boston University и Amazon; DOI работы — 10.1145/3646547.3688455. Вместо симулированных лабораторных данных систему на 4,5 месяца развернули в реальной производственной среде крупной финансовой компании. Наблюдение охватило 205 000 реальных пользовательских сессий. Были протестированы десять распространённых решений для маскировки среды, а обычный пользовательский трафик использовался как контрольная группа.
Как был построен эксперимент
Три проектных решения позволили применять обнаружение ко всему трафику без влияния на бизнес-процессы.
Признаки должны были быть дешёвыми для сбора. Детектор считывает только фиксированный набор свойств, а накладные расходы одного запуска измеряются миллисекундами и KB. Поэтому проверку можно выполнять для всего трафика без выборки и без заметного эффекта для пользователя.
Признаки должны были быть стабильными. Исследователи выбрали не параметры, которые пользователь может изменить, а внутренние структуры, задаваемые самим браузером. У каждой версии браузера свой JavaScript-движок, а между версиями есть небольшие различия в количестве API и числе свойств у отдельных объектов. В исследовании для сравнения использовался диапазон Chrome 110–Chrome 114: система подсчитывала свойства 28 ключевых объектов и сопоставляла результат с версией, которую заявлял браузер. Несовпадение означает, что декларация и фактическое поведение происходят не из одной и той же технической основы.
Метки должны были быть надёжными. Каждую тестируемую среду поочерёдно подключали к одному и тому же производственному трафику и оценивали по одинаковым правилам, а контрольной группой служило нормальное поведение реальных пользователей. Поэтому результат показывает не субъективное «похоже ли это на настоящее», а то, можно ли отличить такой трафик по единому набору правил.
Метрики для оценки реалистичности симуляции
Использованные в исследовании показатели можно разделить на четыре группы.
- Согласованность: соответствует ли заявленная версия браузера структуре его внутренних объектов? Это ключевая и наиболее трудная для подделки метрика, потому что изменение одной строки не меняет одновременно количество объектов и свойств в движке.
- Доля обнаружения: для четырёх решений были проведены подробные тесты, в которых доля обнаружения составила от 67% до 84%.
- Отклонение от реальных устройств: при тех же правилах обычные браузеры получали оценку риска 0, а тестируемые решения в среднем — от 8,85 до 11,66. Этот показатель отражает расстояние до реального распределения, а не субъективное ощущение сходства.
- Различимость: можно ли отделить тестируемый трафик от обычного? Если некоторую категорию отделить нельзя, то в рамках данного метода у неё нет видимого поведенческого разрыва с реальными браузерами.
Из четырёх метрик первая является причиной, а остальные три — её следствиями.
В чём различаются четыре категории результатов
Исследование разделило протестированные решения на четыре категории по способу реализации нижнего уровня.
В первой категории низкоуровневые признаки не совпадают ни с одной известной реальной версией браузера, то есть им не соответствует никакой реальный движок. Простая проверка сразу выявляет несоответствие.
Во второй категории среда содержит реальные признаки отпечатка, но при смене идентичности меняется только внешняя декларация, а базовый движок остаётся прежним. Это был наиболее частый случай в исследовании. Образно говоря, на визитке указана новая версия, но акцент остаётся старым. Проблема не в качестве настройки отдельных параметров, а в разрыве между декларацией и поведением; именно он даёт значительную часть обнаружений.
В третьей категории базовый движок меняется вместе с идентичностью. Если среда заявляет конкретную версию, запускается движок, соответствующий этой версии, поэтому согласованность сохраняется и данный детектор не смог отделить такой трафик. В статье также отмечается, что для выявления этой категории нужны более сложные методы обнаружения.
Четвёртая категория не изменяет сам браузер. Реальный браузер запускается внутри виртуальной машины, после чего загружается целевая конфигурация. Поскольку браузер действительно настоящий, детектор не может его отличить, но эксплуатационные затраты высоки и такой подход сложно масштабировать.
Различие между четырьмя категориями не в количестве параметров, а в том, происходят ли декларация и поведение из одной и той же технической основы.
Практические подсказки при выборе решения для среды
Фокус обнаружения сместился от чтения деклараций к проверке поведения, поэтому изменяемые поверхностные параметры дают всё меньше преимуществ. При практической оценке:
- Спрашивайте о нижнем уровне, а не о списке параметров. Когда заявленная версия меняется, меняется ли вместе с ней базовый уровень? Формируются ли отпечатки автоматически как реальные сочетания или вручную собираются из отдельных значений?
- Сравнивайте среды между собой. Если несколько сред возвращают очень похожие низкоуровневые признаки, изоляция неполная.
- Сначала согласованность, затем различия. Чем больше настраивается взаимно противоречивых признаков, тем больше становится поверхность для обнаружения.
- Прохождение общей страницы проверки не означает, что платформа примет среду. Финальную проверку всё равно стоит провести на небольшом объёме реального трафика.
Ключевая задача изоляции среды — сделать каждую среду самостоятельной и внутренне непротиворечивой. Именно эту задачу решает PurpleMark. И обнаружение, и противодействие обнаружению следует применять в допустимых рамках соответствия требованиям; главная ценность этого исследования — дать проверяемую основу для оценки, а не составить рейтинг хороших и плохих продуктов.


