Новый вид атак по определению ранее открытых в браузере сайтов и отслеживанию посетителей
27 октября 2015 года
На конференции Toorcon продемонстрирован новый вид атаки на браузеры, позволяющей выяснить какие сайты пользователь посещал ранее. Атака применима к сайтам, на которых включена поддержка протокола HSTS для автоматизации проброса на области HTTPS при запросе ресурса с использованием протокола HTTP, и проявляется даже если пользователь очистил историю посещений. Для демонстрации уязвимости подготовлена специальная страница, анализирующая открытие в прошлом некоторых популярных ресурсов. Проблема успешно проявляется в Firefox и Chrome, но также затрагивает и другие браузеры, поддерживающие HSTS. В Tor Browser проблема не проявляется из-за ограничения точности таймера.
Техника атаки основывается на том, что CSP запросив несуществующее изображение на сайте с использованием протокола HTTP, в случае если на этом сайте выставлен флаг HSTS и сайт открывался ранее, его параметры HSTS прокэшированы и ответ будет возвращён после одного запроса (URL сразу будет запрошен по HTTPS, минуя запрос по HTTP). Если сайт не был открыт ранее, вначале будет выполнен запрос по HTTP, а затем, после получения заголовка HSTS, браузер отправит повторный запрос с использованием HTTPS, т.е. операция займёт ощутимо больше времени. Оценив время задержки кодом на JavaScript можно с достаточно большой вероятностью определить открывал пользователь проверяемый сайт ранее или нет.
Интересно, что разработчикам Chrome около года назад сообщили о похожем методе определения факта открытия сайтов и данная проблема до сих пор не решена. Если обратиться к 443 порту сайта по протоколу HTTP (http://example.com:443), такое обращение приведёт к ошибке, если сайт не открывался ранее. Если же сайт был открыт в прошлом и использует флаг HSTS, то браузер автоматически заменит ссылку на https://example.com:443 и запрос будет выполнен успешно.
Ещё одна уязвимость связана с работой механизма привязки открытых ключей ( HPKP, HTTP Public Key Pinning), позволяющего явно определить сертификаты каких удостоверяющих центров допустимо использовать для заданного сайта. Данный механизм можно использовать в Chrome или Firefox для отслеживания посетителей без применения cookie. Используя HPKP под видом сертификата можно выполнить привязку произвольного идентификатора, уникального для каждого посетителя. В дальнейшем эта привязка может применяться для достоверного определения повторного посещения сайта данным пользователем по аналогии с тем как для идентификации используются cookie. Особенность состоит в том, что привязка сохраняется независимо от удаления cookie, а удаление HPKP-записей является неочевидным действием, требующим обращения к внутренней странице (chrome://net-internals/#hpkp) для конкретного домена (список доменов с привязкой посмотреть нельзя).
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.