Что происходит когда оператор выходного узла Tor играет не по правилам?

tor

Статья является переводом с сайта https://jordan-wright.com

Вместо вступления

Рассмотрев устройство Tor, мы познакомились с различными типами узлов из которых состоит сеть Tor. Тем не менее вы могли заметить, что тема выходных узлов почти не была затронута. Выходной узел - граница сети Tor, на пути от клиента к конечному сайту. Отправляясь в пункт назначения через выходной узел, данные проходят через него в первозданном виде, как будто только что покинули пользовательское устройство.

Прозрачность и уязвимость данных подразумевает что выходной узел должен внушать доверие пользователю. Обычно это так и происходит, выходные узлы ведут себя довольно ответственно. Но не все. Сегодня мы рассмотрим некоторые ситуации, в которых выходной узел играет не по правилам и всячески пакостит пользователям сети Tor.

Снифферы

Выходной узел Tor - каноничный пример MITM атаки (Man in the middle/Человек посередине). Это означает что любые нешифрованные протоколы передачи данных (FTP, HTTP, SMTP и т.д.) могут быть просмотрены оператором выходного узла. Логины, пароли, куки, скачиваемые и закачиваемые файлы… В общем - раздолье для творчества!

Самое плохое то, что с этим практически ничего нельзя сделать (разве что использовать шифрованные протоколы, но об этом немного позже). Сниффинг или перехват трафика не требует участия человека, он полностью автоматизирован. Отсюда вывод, что не стоит передавать важные данные в незашифрованном виде.

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

Вы оператор выходного узла! Вы несете ответственность за клиентский трафик! Он должен быть доставлен в пункт назначения без изменений! Ну да… Ну да… Ща я вам устрою - без изменений…

Ну что. Посмотрим как можно изменить траффик.

SSL MiTM & sslstrip

Если есть желание поднасрать пользователям, то SSL может все испортить. К счастью для нас, подонков, на некоторых сайтах есть проблемы, позволяющие заставить пользователя использовать нешифрованные соединения. Переадресация с HTTP на HTTPS, включение HTTP-контента на HTTPS сайте и т.д.

Отличным инструментом для подобных действий является sslstrip. Пропустим через него проходящий трафик и… PROFIT! Еще можно использовать самоподписанный SSL-сертификат и просматривать шифрованный трафик. Как два пальца!

Браузеры и BeEF

Так, трафик мы просматриваем, можно приступать к дальнейшим гадостям. Мы можем использовать фреймворк BeEF и с его помощью получать контроль над браузерами. Потом можно использовать Metas­ploit с его функцией “brows­er autop­wn”, с помощью которой мы можем скомпрометировать хост и получить возможность выполнения команд. Все, приплыли…

Бэкдоры в бинарниках

Естественно через наш узел могут скачивать установочные файлы различного ПО или его обновления происходящие в фоновом режиме о которых пользователь даже не знает.

В дело вступает The Back­door Fac­to­ry, добавим с его помощью бэкдоры в файлы. Как только они будут запущены, хост сразу будет скомпрометирован. Все, опять приплыли…

Поймать Уолтера Уайта

Большинство выходных узлов ведут себя вполне прилично. Хотя бывают исключения из правил. Все что было описано выше, случалось на самом деле.

К счастью, разработчики сети Tor учли возникновение подобного поведения и разработали механизм предотвращающий использование клиентами недобросовестных выходных узлов. Подобные узлы отмечаются в консенсусе флагом BadEx­it.

Для обнаружения "плохих" выходных узлов существует система под названием Exitmap.

Exitmap работает следующим образом. Для каждого выходного узла запускается специальный модуль на Python. Он передает логины, скачивает файлы, имитируя поведение пользователя. Результаты работы модуля сохраняются.

Exitmap использует в работе специальную библиотеку Stem, которая помогает в проверке и построении схем для каждого выходного узла. Дешево и сердито.

Система Exitmap была создана в 2013 году, в рамках проекта "Гнилые луковицы". Авторами проекта было найдено 65 узлов изменяющих трафик. Учитывая что на тот момент существовало около 1000 выходных узлов, это был не очень хороший показатель, говорящий о том, что проблема существует и с ней нужно что-то делать. Посему Exitmap работает и поддерживается до сих пор.

Еще был случай когда один из исследователей проблемы создавал фейковую страницу с формой входа, после чего логинился в ней через разные выходные узлы. Потом, просматривая логи, он отслеживал все последующие попытки входа на страничку. Некоторые из узлов пытались авторизоваться используя логин и пароль переданные через них.

Похожие проблемы не только в Tor

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

Лучшее что можно сделать, это использовать шифрование везде, где только возможно. Если трафик не поддается распознанию, значит он не поддается и изменению.

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

Вспомните о Дмитрии Богатове - операторе выходного узла сети Tor. (От переводчика)