image

Данная статья описывает пример практического применения атаки «искажение кэша через 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»).



Давайте рассмотрим следующие шаги сценария атаки:

  1. Пользователь подключается к интернету через сеть «Tor» путём настройки браузера для использование сетевого протокола SOCKS5 системы «Tor», или же настроив так, чтобы весь трафик операционной системы перенаправлялся через сеть «Tor».
  2. Пользователь начинает свой обычный сеанс выхода в интернет с помощью своего любимого браузера, где обычно очень много HTTP-трафика без протокола безопасности «TLS» отправляется через туннель сети «Tor».
  3. Зловредный выходной узел сети «Tor» перехватывает запросы и отвечает переадресацией каждого с помощью кода ответа «HTTP 301». Эти перенаправления будут постоянно кэшироваться браузером и будут отправлять на URL-адрес для отслеживания с назначенным идентификатором Tor-клиента. URL-адрес для отслеживания может быть создан следующим способом: user-identifier.evil.tld, где ‘evil.tld’ будет собирать всю информацию об IP-адресе источника и перенаправлять пользователей на первоначально запрашиваемые хосты … или, как альтернатива, на прозрачный обратный прокси-сервер, который попробует перехватить весь последующий поток HTTP-трафика клиентов. Кроме того, поскольку есть возможность автоматического искажения кэша для большинства самых популярных доменов (как описано в предыдущей статье), напр. топ 100 сайтов по статистике компании «Alexa», злоумышленник максимизирует свои шансы на выявление настоящих IP-адресов.
  4. После выхода из сессии сети «Tor», пользователь переключится на свою обычную сеть.
  5. Как только пользователь введёт в адресную строку адрес одного из предыдущих искажённых доменов, (например, «google.com») браузер использует кэш для внутреннего перенаправления на URL отслеживания с контекстным идентификатором выходного узла.
  6. Выходной узел сможет сопоставить ранее перехваченный 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)


  1. triton
    20.06.2019 13:36
    +4

    Может правильной рекомендацией будет всегда использовать отдельный браузер для доступа через Tor, к примеру, Tor Browser?


    1. furtaev
      20.06.2019 22:03

      Ещё лучше даже отдельную ОС и для совсем уж параноиков — отдельный лэптоп, со своим usb-модемом, с которого в клирнет не ходить вообще.


      1. vlad49
        21.06.2019 00:01
        -1

        Еще важный момент — лэптоп должен храниться и использоваться в другой части города, вдали от места постоянного проживания/работы и т.п. Мобильник и другие устройства нельзя брать с собой во время поездок для работы с данным лэптопом, во избежание отслеживания их близкого расположения с usb-модемом по базовым станциям.


        1. GokenTanmay
          21.06.2019 10:16
          +6

          И когда будете направляться к ТОР-лэптопу, необходимо отдавать свой мобильник, каждый раз разным знакомым, которые в это время будут перемещаться по городу рандомными маршрутами — потому что стабильно недвижимый мобильник в момент выхода в ТОР подозреваемого — очень хорошо коррелируют и сразу выявляются.
          И хорошо бы, что бы эти знакомые были готовы подтвердить ваше алиби.


          1. psinetron
            21.06.2019 11:37
            +3

            а еще эти знакомые должны с мобильника делать фотографии котиков в инстаграммы с привязкой к геоданным.


          1. Maccimo
            22.06.2019 14:26

            Можно и незнакомым, только симку часто восстанавливать придётся.


  1. evehicks
    20.06.2019 14:24

    Прошу прощения что в комментах, но у вас продублированы три абзаца. С «Очевидно, что» и до «соединение Интернет-провайдера.».


    1. Squoworode
      20.06.2019 14:37

      Просто это настолько очевидно, что нужно повторить два раза, чтобы читатель не пролистал как слишком очевидное и не имеющее значения в рамках статьи.


    1. vdssh Автор
      20.06.2019 15:08

      Спасибо, исправили.


  1. kasthack_phoenix
    21.06.2019 10:39
    +4

    • Боян. Tor Project уже много лет крайне не советует использовать основной браузер для прогулок в торе, т.к. крупный наблюдатель, вроде гугла с его аналитикой, свяжет все действия с реального IP / при работе через Tor. Возможность раскрыть пользователя с exit-ноды — мелочь на этом фоне.


    • Чтобы сходить в тор через дефолтный браузер нужно приложить немного дополнительных усилилий, т.к. дефолтная поставка — это как раз Tor Browser Bundle.


    • Про http-трафик тоже спорно, браузеры по дефолту на https идут сейчас и доля plain-http достаточно мала / существует за счёт ботов всяких, скорее всего(стата гугла, например).



  1. ThunderCat
    22.06.2019 21:23

    чет аж гуглтранслейтом запахло…

    Это также является проверкой правильности концепции и многие настройки могут быть оптимизированы в дальнейшем …
    … увеличит вероятность получения обратный отклик HTTP-запроса ...


    1. Chupaka
      24.06.2019 11:31

      Пример браузерных плагинов, которые могут быть использованы: для браузеров Firefox” и “Chrome”.


  1. feyd12
    23.06.2019 08:49

    Автор сам создал проблему, и сам ее героически решил. Браузер Гугл Хром нельзя использовать для решения любых задач, связанных с сохранением конфиденциальности пользователя. Впрочем, и ФФ с дефолтными настройками тоже, для этого и пилится тор-браузер.