Метод идентификации через определение дополнений, установленных в Chrome и Firefox
31 августа 2017 года
Группа исследователей из университета Деусто (Испания) и исследовательского центра Eurecom (Франция) выявили две техники определения списка установленных браузерных дополнений, который можно использовать в качестве дополнительного источника данных для неявной идентификации пользователя. Методы применимы к Firefox, Safari и браузерам на кодовой базе Chromium. По заявлению исследователей точность определения как для старых дополнений Firefox, так и для дополнений к Chrome на базе WebExtensions составляет 100%.
Первый метод затрагивает все браузеры с поддержкой API WebExtensions (Chrome, 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 идентификаторы дополнений генерируются случайно.
При этом в ходе анализа выявлена другая проблема - случайный идентификатор дополнения Firefox сохраняется для всех версий дополнения в текущей системе и если дополнение допускает его утечку, то данный идентификатор дополнения можно рассматривать как уникальный идентификатор пользователя. Вероятно, данная проблема более опасна, чем изначально предложенный метод построения списка дополнений, так как в ходе проверки гипотезы удалось получить данные о случайном идентификаторе предустановленного дополнения Screenshot при нажатии кнопки создания снимка экрана на стороннем сайте. Для других популярных дополнений возможно будет определён метод, работающий без необходимости совершения пользователем определённых действий.
Второй метод получения списка дополнений специфичен для системы дополнений браузера Safari, в которой вместо manifest.json для разграничения доступа применяется случайно сгенерированные URL, привязываемые к текущему пользовательскому сеансу. Суть метода в том, что можно определить косвенные данные, которые используются при генерации случайного URL, и попытаться предсказать его. Проверка показала, что подобное удаётся для 40.5% протестированных дополнений.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.