Данная статья описывает пример практического применения атаки «искажение кэша через 301 редирект», которая может быть использована выходным узлом сети «Tor» с вредоносным кодом для выявления реальных IP-адресов выбранных пользователей.
Сценарий атаки
Сценарий атаки выглядит следующим образом:
- Клиент: Chrome Canary (76.0.3796.0)
- Реальный IP-адрес клиента: 5.60.164.177
- Параметр отслеживания клиента: 6b48c94a-cf58-452c-bc50-96bace981b27
- IP-адрес выходного узла сети «Tor»: 51.38.150.126
- Transparent Reverse Proxy: tor.modlishka.io (Modlishka — updated code to be released.)
Примечание: В данном сценарии браузер «Chrome» был настроен через сетевой протокол SOCKS5 для использования сети «Tor». Канал сети «Tor» был настроен на конкретный тестовый выходной узел: ‘51.38.150.126’. Это также является проверкой правильности концепции и многие настройки могут быть оптимизированы в дальнейшем …
В случае с зловредным выходным узлом сети «Tor», весь трафик перенаправляется через прокси-сервер «Modlishka»:
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DNAT --to-destination ip_address:80
iptables -A FORWARD -j ACCEPT
Описание сценария атаки
Предположения:
- Браузерное приложение (в данном случае стандартный браузер), которое будет использовать подключение к сети «Tor» и, наконец, подключение пройдёт через вредоносный выходной узел.
- Вредоносный выходной узел сети «Tor», который перехватывает и искажает кэш всего HTTP-трафика (код ответа «HTTP 301»), у которого отсутствует криптографический протокол безопасности транспортного уровня («TLS»).
Давайте рассмотрим следующие шаги сценария атаки:
- Пользователь подключается к интернету через сеть «Tor» путём настройки браузера для использование сетевого протокола SOCKS5 системы «Tor», или же настроив так, чтобы весь трафик операционной системы перенаправлялся через сеть «Tor».
- Пользователь начинает свой обычный сеанс выхода в интернет с помощью своего любимого браузера, где обычно очень много HTTP-трафика без протокола безопасности «TLS» отправляется через туннель сети «Tor».
- Зловредный выходной узел сети «Tor» перехватывает запросы и отвечает переадресацией каждого с помощью кода ответа «HTTP 301». Эти перенаправления будут постоянно кэшироваться браузером и будут отправлять на URL-адрес для отслеживания с назначенным идентификатором Tor-клиента. URL-адрес для отслеживания может быть создан следующим способом: user-identifier.evil.tld, где ‘evil.tld’ будет собирать всю информацию об IP-адресе источника и перенаправлять пользователей на первоначально запрашиваемые хосты … или, как альтернатива, на прозрачный обратный прокси-сервер, который попробует перехватить весь последующий поток HTTP-трафика клиентов. Кроме того, поскольку есть возможность автоматического искажения кэша для большинства самых популярных доменов (как описано в предыдущей статье), напр. топ 100 сайтов по статистике компании «Alexa», злоумышленник максимизирует свои шансы на выявление настоящих IP-адресов.
- После выхода из сессии сети «Tor», пользователь переключится на свою обычную сеть.
- Как только пользователь введёт в адресную строку адрес одного из предыдущих искажённых доменов, (например, «google.com») браузер использует кэш для внутреннего перенаправления на URL отслеживания с контекстным идентификатором выходного узла.
- Выходной узел сможет сопоставить ранее перехваченный HTTP-запрос с реальным IP-адресом пользователя с помощью информации, полученной с внешнего хоста, который использовал URL отслеживания с идентификатором пользователя. Хост «evil.tld» будет обладать информацией обо всех IP-адресах, которые были использованы для доступа к URL отслеживания.
Очевидно, что данный способ позволяет эффективно сопоставлять выбранные HTTP-запросы с IP-адресами клиента с помощью выходного узла сети «Tor». Происходит это потому, что ранее сгенерированная URL для отслеживания будет запрошена клиентом через туннель сети «Tor», а потом снова, как только произойдёт подключение через стандартное соединение интернет-провайдера. Всё из-за искажённого кода в кэше.
Другой подход может быть основан на внедрении изменённого кода JavaScript со встроенными URL для отслеживания в соответствующие отклики, в которых отсутствует протокол безопасности «TLS», и изменением нужных управляющих кэш-заголовков (напр. ‘Cache-Control: max-age=31536000’). Тем не менее, данный подход не очень эффективен.
Отслеживание пользователей через стандартные cookie-файлы различных веб-приложений тоже возможно, но очень непросто заставить клиента дважды посетить домен, который находится под контролем злоумышленника: сначала при соединении через выходной узел сети «Tor», а затем снова после переключения на стандартное соединение Интернет-провайдера.
Выводы
Факт в том, что у злоумышленника есть возможность добиться определённых изменений в кэше браузера с помощью внедрения искажённого кода через зловредные выходные узлы и выявить реальные IP-адреса пользователей сети «Tor», которые отправляют HTTP-трафик без протокола безопасности TLS.
Кроме того, искажение значительного количества популярных доменных имён увеличит вероятность получения обратный отклик HTTP-запроса (с назначенным идентификатором пользователя), который позволит определить реальный IP-адрес пользователя. Можно попытаться перехватить домен у некоторых браузерных клиентов и надеяться, что опечатка в доменном имени не будет замечена пользователем, или же не будет отображена (напр. мобильное приложение «WebViews»).
Способы уменьшения риска:
- При подключении к интернету через сеть «Tor» убедитесь, что отключён весь трафик, который не использует протокол безопасности «TLS». Пример браузерных плагинов, которые могут быть использованы: для браузеров Firefox” и “Chrome”.
- Кроме того, всегда используйте «приватный» режим браузера при подключении к интернету через сеть «Tor».
- Не перенаправляйте трафик всей вашей операционной системы через сеть «Tor» до тех пор, пока не убедитесь, что весь исходящий трафик использует протокол безопасности «TLS» …
- Для просмотра веб-страниц, по возможности, всегда используйте последнюю версию «Tor» браузера.
На DEDIC.SH доступны новейшие двухпроцессорные конфигурации выделенных серверов с процессорами Intel Scalable 2019 года:
- 2x Xeon Silver 4214 — суммарно 24 ядра
- 2x Xeon Gold 5218 — суммарно 32 ядра
- 2x Xeon Gold 6240 — конфигурация с 36 ядрами.
Стоимость сервера с двумя Xeon Silver 4214 — от 15210 руб/мес
Так же мы готовы собрать для Вас любую конфигурацию — напишите нам!
Если большие мощности выделенного сервера не требуются — VDS от 150 руб/мес — то, что вам нужно!
Комментарии (13)
evehicks
20.06.2019 14:24Прошу прощения что в комментах, но у вас продублированы три абзаца. С «Очевидно, что» и до «соединение Интернет-провайдера.».
Squoworode
20.06.2019 14:37Просто это настолько очевидно, что нужно повторить два раза, чтобы читатель не пролистал как слишком очевидное и не имеющее значения в рамках статьи.
kasthack_phoenix
21.06.2019 10:39+4Боян. Tor Project уже много лет крайне не советует использовать основной браузер для прогулок в торе, т.к. крупный наблюдатель, вроде гугла с его аналитикой, свяжет все действия с реального IP / при работе через Tor. Возможность раскрыть пользователя с exit-ноды — мелочь на этом фоне.
Чтобы сходить в тор через дефолтный браузер нужно приложить немного дополнительных усилилий, т.к. дефолтная поставка — это как раз Tor Browser Bundle.
Про http-трафик тоже спорно, браузеры по дефолту на https идут сейчас и доля plain-http достаточно мала / существует за счёт ботов всяких, скорее всего(стата гугла, например).
ThunderCat
22.06.2019 21:23чет аж гуглтранслейтом запахло…
Это также является проверкой правильности концепции и многие настройки могут быть оптимизированы в дальнейшем …
… увеличит вероятность получения обратный отклик HTTP-запроса ...
Chupaka
24.06.2019 11:31Пример браузерных плагинов, которые могут быть использованы: для браузеров Firefox” и “Chrome”.
feyd12
23.06.2019 08:49Автор сам создал проблему, и сам ее героически решил. Браузер Гугл Хром нельзя использовать для решения любых задач, связанных с сохранением конфиденциальности пользователя. Впрочем, и ФФ с дефолтными настройками тоже, для этого и пилится тор-браузер.
triton
Может правильной рекомендацией будет всегда использовать отдельный браузер для доступа через Tor, к примеру, Tor Browser?
furtaev
Ещё лучше даже отдельную ОС и для совсем уж параноиков — отдельный лэптоп, со своим usb-модемом, с которого в клирнет не ходить вообще.
vlad49
Еще важный момент — лэптоп должен храниться и использоваться в другой части города, вдали от места постоянного проживания/работы и т.п. Мобильник и другие устройства нельзя брать с собой во время поездок для работы с данным лэптопом, во избежание отслеживания их близкого расположения с usb-модемом по базовым станциям.
GokenTanmay
И когда будете направляться к ТОР-лэптопу, необходимо отдавать свой мобильник, каждый раз разным знакомым, которые в это время будут перемещаться по городу рандомными маршрутами — потому что стабильно недвижимый мобильник в момент выхода в ТОР подозреваемого — очень хорошо коррелируют и сразу выявляются.
И хорошо бы, что бы эти знакомые были готовы подтвердить ваше алиби.
psinetron
а еще эти знакомые должны с мобильника делать фотографии котиков в инстаграммы с привязкой к геоданным.
Maccimo
Можно и незнакомым, только симку часто восстанавливать придётся.