Удалённая идентификация дополнений, установленных в Chrome и Firefox

Группа исследователей из университета Деусто (Испания) и исследовательского центра Eurecom (Франция) выявили две техники определения списка установленных браузерных дополнений, который можно использовать в качестве дополнительного источника данных для неявной идентификации пользователя. Методы применимы к Firefox, Safari и браузерам на кодовой базе Chromium. По заявлению исследователей точность определения как для старых дополнений Firefox, так и для дополнений к Chrome на базе WebExtensions составляет 100%.

Первый метод затрагивает все браузеры с поддержкой API WebExtensions (Chome, Opera, Yandex Browser, Edge, Vivaldi) и основывается на получении инфорамции по сторонним каналам (side-channel attack), а именно учёте в различии времени обработки опраций, специфичных для определённых расширений. Плавила доступа к файлам расширения задаётся в файле manifest.json и приводят к небольшим, но уловимым, задержкам при попытке обращения к подпадающим под эти правила ресурсам.

В частности, время отзыва при попытке доступа к локальным файлам несуществующего дополнения немного дольше, чем при обращении к файлам установленного дополнения, при использовании изначально фиктивных файловых путей. Иными словами время доступа к связкам «chrome-extension://[fakeExtID]/[fakePath]» и «chrome-extension://[realExtID]/[fakePath]» отличается, что позволяет методом перебора известных идентификаторов дополнений определить установленные в браузере дополнения — если дополнение не установлено время выполнения запроса будет совпадать, а если проверяемое дополнение присутствует запрос будет выполнен быстрее.

Примечательно, что данной проблеме подвержен и старый API для построения дополнений к Firefox, на смену которому идёт WebExtensions. В случае старого API не требуется даже измерять время ответа, так как при запросе несуществующего файла в установленном и фиктивном дополнении выдаётся разный код ошибки. Новая система дополнений Firefox на базе WebExtensions не подвержена данной проблеме, как как в отличие от Chrome идентификаторы дополнений генерируются случайно.

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

Второй метод специфичен для системы дополнений браузера Safari, в которой вместо manifest.json для разграничения доступа применяется случайно сгенерированные URL, привязываемые к текущему пользовательскому сеансу. Суть метода в том, что можно определить косвенные данные, которые используются при генерации случайного URL и попытаться предсказать его. Проверка показала, что подобное удаётся для 40.5% протестированных дополнений.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.