Широкое распространение анонимных сетей повлекло за собой массу проблем — спамеры, фишеры, кардеры и прочие «кибер-преступники» получили небывалую возможность скрывать следы своих действий в сети.
Широкое распространение анонимных сетей повлекло за собой массу проблем — спамеры, фишеры, кардеры и прочие «кибер-преступники» получили небывалую возможность скрывать следы своих действий в сети. Разумеется, у анонимных сетей есть и другая, более «светлая» сторона — жители стран с тоталитарным режимом получили возможность свободно общаться в сети без риска быть пойманными.
Но в этой статье речь пойдет не о политике и нравственности ;)
В статье будут рассмотрены атаки на шифрующие анонимные сети — сеть Tor и коммерческие решения на базе VPN. В статье НЕ будут рассмотрены атаки на такие сети, как I2P, Freenet, сети из анонимных прокси и др.
Выбор Tor обусловлен повышением роста популярности данной сети; коммерческих VPN — распространенностью среди «кибер-преступников».
Основные задачи всех атак, рассмотренных далее — раскрытие реального IP-адреса пользователя анонимной сети и подтверждение того, что трафик, исходящий ОТ выходного узла анонимной сети принадлежит исследуемому («подозреваемому») компьютеру. В статье НЕ будут рассмотрены атаки на криптографическую часть (криптоанализ).
Подробное описание этой атаки было опубликовано исследователями из University of Cambridge. Атака заключается в том, что в сетях с низкой задержкой передачи данных (т. е. в сетях Tor и VPN) возможна корреляция времени прохождения пакетов с целью установления реального источника данных. Для осуществления данной атаки необходимо контролировать определенные участки сети — интересующие выходы анонимных сетей и узлы, подозреваемые в анонимной передаче данных (либо только входы и выходы анонимных сетей).
Шансы атакующего на успех при использовании данной атаки могут быть увеличены, если у него есть доступ к серверу, к которому подключается анонимный пользователь. Атакующий может, например, заставить веб-сервер отправлять браузеру данные с определенными задержками (к примеру, атакующий может выставить разные интервалы задержек для ответа веб-сервера на запросы индексной страницы, картинок и таблиц стилей). Разумеется, можно отправлять браузеру не ожидаемый ответ, а «пачки» случайных данных с задержками. Это позволит обнаружить в зашифрованном трафике анонимной сети «шаблоны» задержек и, таким образом, с определенной вероятностью ответить на вопрос о принадлежности выходного трафика анонимной сети «подозреваемому» пользователю.
Атакующий может создать большую базу данных популярных веб-сайтов, которая будет содержать в себе определенные параметры индексных страниц (например, размер главной страницы Google.com в байтах). Это позволит «угадать» сайт, который посещает пользователь, путем анализа количества переданного на входной узел анонимной сети зашифрованного трафика.
Атакующий может ассоциировать анонимный трафик с «подозреваемым» узлом в определенных случаях. Например, Tor направляет все соединения, установленные в определенном временом промежутке, в одну цепочку узлов. Таким образом, можно ассоциировать псевдонимные соединения с анонимными, если они были установлены практически одновременно. Например, при одновременной отправке файла по протоколу FTP (анонимное соединение) и соединением с ICQ (псевдонимное соединение) будет использована одна цепочка серверов сети Tor (следовательно, будет использован один выходной узел). В этом случае атакующий может догадаться, что оба соединения были установлены с одного компьютера и попытаться получить дополнительную информацию о пользователе, который передает файл, по номеру ICQ.
Опция TCP timestamp используется для обеспечения повышенной безопасности TCP-соединений. В большинстве дистрибутивов GNU/Linux она включена по-умолчанию. Атака заключается в том, что значение TCP timestamp изменяется на фиксированное значение в единицу времени и в большинстве случаев различается у двух разных компьютеров (т. к. начальное значение в большинстве случаев одинаково и, таким образом, TCP timestamp представляет собой аптайм компьютера).
Атакующий может прослушивать трафик VPN-сервиса и записывать переданные значения TCP timestamp. Поскольку VPN осуществляет передачу IP-пакетов, то система, установившая VPN-соединение, будет передавать TCP timestamp в инкапсулированных пакетах. Примерная схема атаки:
Аналогичная атака возможна и на скрытые сервисы сети Tor. В этом случае в анонимной сети передаются только TCP данные, однако «исследуемый» узел может передавать TCP timestamp, например, в соединениях по локальной сети. Атака заключается в том, что мы можем вызвать определенные отклонения в значениях счетчиков TCP timestamp (например, нагревом процессора путем DoS атаки). Примерная схема атаки:
Применимость данной атаки на скрытые сервисы Tor до сих пор стоит под вопросом.
Другие атаки
Существует множество других атак, которые направлены на конкретные приложения, использующие анонимную сеть, например:
В этом разделе будут рассмотрены потенциальные атаки на реализацию TLS (Transport Layer Security ) в большинстве приложений, которые позволят в определенных случаях следить за пользователями любых анонимных сетей.
Протокол TLS описан в следующих RFC: 2246 (версия 1.0), 4346 (версия 1.1). Также в описании атаки будет затронут популярный протокол синхронизации времени NTP, который определен в RFC 1305 (3 версия).
Данная атака позволяет следить за пользователями популярных приложений Mozilla Firefox и Mozilla Thunderbird (а также некоторых сторонних сборок). Она заключается в том, что при реализации протокола TLS были допущены отклонения от RFC, которые никак не влияют на работу протокола. Секция RFC 7.4.1.2 Client Hello описывает следующую структуру:
struct {
uint32 gmt_unix_time;
opaque random_bytes[28];
} Random;
Гдеgmt_unix_time — текущее дата и время в стандартном формате UNIX.
Данная структура является частью пакета Client Hello, который отправляет приложение для установки защищенного соединения.
Firefox и Thunderbird в этом поле отправляют аптайм системы (время работы компьютера в секундах), тем самым позволяя атакующему сопоставить трафик, выходящий из анонимной сети, с не анонимным трафиком (например, трафиком локальной сети). Также возможно сопоставление аптайма, полученного описанным выше путем, с аптаймом, который был получен путем анализа TCP timestamp (например, при помощи сканера nmap).
С помощью данной атаки можно сопоставить трафик, выходящий из анонимной сети, с исследуемым компьютером. Особенность данной атаки — необходимо физическое вмешательство в процесс обмена данными исследуемого компьютера.
В «более корректных» реализациях TLS в поле gmt_unix_time передается текущее системное время (к которому, однако, не предъявляются требования высокой точности). Атака заключается в том, что можно, вмешавшись в процесс синхронизации времени с NTP-сервером и сдвинув передаваемое «точное» время на определенное число секунд вперед, изменить системное время «подозреваемого» компьютера. Подобное изменение системного времени будет зафиксировано в TLS-соединениях, выходящих из анонимной сети.
Примерная схема атаки:
При помощи вставок переходов HTTPS в незащищенное соединение данную атаку можно применить и к сервисам HTTP.
Атаку, аналогичную описанной выше, можно применить и для сопоставления скрытых сервисов с «подозреваемыми» узлами. Для проведения данной атаки необходимо получить текущее время сервера (после его изменения в процессе синхронизации) и сопоставить отклонения системного времени с отклонениями, внесенными атакующим.
Положение существенно упрощает то, что протокол HTTP обязывает большинство серверов отправлять системное время в поле Date (пример поля: Date: Tue, 15 Nov 1994 08:12:31 GMT).
Таким образом, отклонив системное время исследуемого узла и отправив на скрытый веб-сервер GET запрос, можно сопоставить полученные значения времени и проанализировать их на отклонения.
Стоит отметить, что две последние атаки не позволяют проводить массовое сопоставление трафика пользователей анонимных сетей. В современных условиях это означает то, что вышеописанные атаки идеально подходят для правоохранительных органов, которым необходимо сопоставить трафик конкретного пользователя с выходным трафиком анонимной сети, и, следовательно, не предназначены для массового ограничения свободы слова путем поиска и наказания «неугодных». С другой стороны, атаки на TLS в общем случае затрагивают большинство современных ОС (включая Windows XP, Windows Vista, различные дистрибутивы GNU/Linux и т. д.) из-за их направленности на протокол, а не на ошибки в конкретной реализации, которые могут быть исправлены «завтра-послезавтра».
Автор: Суханов Максим (fuf <at> itdefence.ru)
От классики до авангарда — наука во всех жанрах