Новый вид атак по определению ранее открытых в браузере сайтов и отслеживанию посетителей
Техника атаки основывается на том, что 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) для конкретного домена (список доменов с привязкой посмотреть нельзя).
Источник: http://www.opennet.ru/opennews/art.shtml?num=43209
|
0 | Tweet | Нравится |
|