19.08.2015

Анонимизация активности при помощи TOR

image

Методы сокрытия активности интересны обеим сторонам, противостоящим друг другу во всемирной паутине. Спецслужбы занимаются изучением методов анонимизации, чтобы добраться до злоумышленников, а хакеры – для того, чтобы сокрыть следы вредоносных деяний.

Автор: Lohit Mehta

Методы сокрытия активности интересны обеим сторонам, противостоящим друг другу во всемирной паутине. Спецслужбы занимаются изучением методов анонимизации, чтобы добраться до злоумышленников, а хакеры – для того, чтобы сокрыть следы вредоносных деяний. Анонимизация значительно усложняет работу по выявлению участников киберпреступлений, поскольку то, что находится в логе (IP-адрес, User-Agent и т. д.), не является достоверной информацией.

В этой статье мы рассмотрим архитектуру сети TOR, установку, настройку и базовые методы работы с этим браузером.

Анонимность при помощи TOR

The Onion Router (или сокращенно TOR) – широко известная технология для анонимизации активности в сети. TOR представляет собой сеть компьютеров, объединенных по всему миру, которая переправляет зашифрованные запросы до тех пор, пока информация не пройдет от начальной точки до конечной, именуемой также выходным узлом (exit node).

После прохождения последнего узла TOR-сети запрос расшифровывается и отправляется на принимающий сервер. Выходные узлы являются первыми и последними узлами в сети TOR для приема и передачи трафика от источника к приемнику и обратно. При приеме трафика принимающая сторона видит только конечный узел сети, что позволяет сокрыть IP-адрес настоящего отправителя. Даже внутренние узлы сети ничего не знают о местонахождении отправителя и просто передают трафик следующему узлу в цепочке. Ответ на запрос также проходит цепочку узлов и, по сути, является еще одной «посылкой» без указания адресата.

SOCKS сервер

TOR работает через SOCKS, поэтому не лишним будет рассказать об этом протоколе. SOCKS-сервер создает TCP-соединение с другим сервером от имени клиента, а затем перебрасывает трафик между обеими сторонами (то есть работает как прокси сервер). SOCKS-сервер может работать с любым сетевым протоколом и на любому порту. В 5-й версии протокола усилена безопасность и добавлена поддержка UDP. SOCKS-сервер никоим образом не изменяет трафик между источником и приемником и часто используется клиентами, которые находятся за фаерволом и не могут организовать TCP-соединение с серверами другими средствами. Например, большинство браузеров можно сконфигурировать для «общения» с сайтами через SOCKS-сервер.

Первоначально клиент должен соединиться с SOCKS-сервером и указать хост, к которому нужно подключиться (то есть на клиенте должен быть доступен протокол SOCKS). Затем SOCKS-сервер, используя протокол взаимной идентификации (Handshake Protocol) оповещает клиента о том, что соединение произошло, и далее действует настолько прозрачно, насколько это возможно, в то время как обычные прокси-сервера могут изменять заголовки.

Сравнение SOCKS и HTTP

После прочтения предыдущего абзаца, может сложиться впечатление, что протокол SOCKS полностью идентичен протоколу HTTP. Однако есть одно важное различие. Протокол SOCKS работает на один уровень ниже, чем HTTP. HTTP поддерживает переадресацию TCP-соединений, в то время как SOCKS может также перенаправлять UDP-трафик и работает в обе стороны. Рассмотрим различия между протоколом SOCKS и HTTP на конкретных примерах:

  • SOCKS: Предположим, что пользователь А хочет подсоединиться через интернет к пользователю Б, но между ними находится фаервол, запрещающий соединение. Пользователь А через фаервол подключается к SOCKS-серверу в своей сети и устанавливает соединение с пользователем Б.
  • HTTP: Предположим, что пользователь А хочет загрузить веб-страницу с веб-сервера Б, но из-за фаервола не может зайти на веб-сервер. Пользователь А при помощи браузера подключается к HTTP-прокси серверу в точности так же, как бы происходило подключение напрямую к веб-серверу Б, если бы была такая возможность (то есть происходит отсылка стандартного заголовка HTTP-запроса). HTTP-прокси сервер соединяется с веб-сервером Б, а затем получает данные, посылаемые веб-сервером Б.

Скрытые сервисы на базе TOR

TOR также используется для сокрытия веб-сайтов и других серверов. Стандартный IP-адрес веб-сайта заменяет так называемый связанный onion-адрес. Эта модель более безопасна, чем первоначальная схема передачи трафика, поскольку скрытые сервисы не используются выходные узлы. Обмен информацией между участниками полностью зашифрован. Ниже представлены некоторые скрытые сервисы на базе TOR:

  • Поисковая система: TorSearch.
  • Доступ к файлам через P2P: The Pirate Bay.
  • Социальная сеть: Facebook.
  • Коммерческие сервисы: Evolution, Silk Road и т. д.

Недостатки TOR

Несмотря на все преимущества, описанные выше, у TOR есть свои недостатки:

  • В TOR-сети можно прослушивать трафик, поскольку отсутствует шифрование при передаче информации от выходного узла до конечного адресата. Один из вариантов решения этой проблемы – использовать HTTPS-сервисы.
  • Некоторые веб-сайты блокируют трафик, если конечный узел принадлежит TOR.
  • TOR уязвим к атакам, связанным с анализом трафика, корреляционным атакам, и так называемым снайперским атакам, когда выводятся из строя отдельные узлы или происходит деанонимизация скрытых сервисов.

Настройка TOR

Установка TOR на компьютере не представляет особых сложностей. После подключения к сети узлов, пользователь может анонимизировать свою активность. Перечень действий для установки и настройки TOR в Ubuntu:

  • Установите TOR от имени root’а при помощи команды apt-get install tor.
  • Проверьте IP-адрес системы без использования TOR.
  • При запуске TOR из под root’а может появиться ошибка: “TOR cannot be run as root”. Если подобное произошло, откройте файл в текстовом редакторе и закомментируйте следующие строки:

http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/041215_2148_Anonymizing1.png

  • После запуска TOR обратите внимание на то, что IP-адрес системы должен измениться.

Ссылки