Пробив анонимности: Чей сейчас ход — спецслужб или хакеров?

Пробив анонимности: Чей сейчас ход — спецслужб или хакеров?

Широкое распространение анонимных сетей повлекло за собой массу проблем — спамеры, фишеры, кардеры и прочие «кибер-преступники» получили небывалую возможность скрывать следы своих действий в сети.

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

Но в этой статье речь пойдет не о политике и нравственности ;)

Цели атаки

В статье будут рассмотрены атаки на шифрующие анонимные сети — сеть Tor и коммерческие решения на базе VPN. В статье НЕ будут рассмотрены атаки на такие сети, как I2P, Freenet, сети из анонимных прокси и др.

Выбор Tor обусловлен повышением роста популярности данной сети; коммерческих VPN — распространенностью среди «кибер-преступников».

Задачи атаки

Основные задачи всех атак, рассмотренных далее — раскрытие реального IP-адреса пользователя анонимной сети и подтверждение того, что трафик, исходящий ОТ выходного узла анонимной сети принадлежит исследуемому («подозреваемому») компьютеру. В статье НЕ будут рассмотрены атаки на криптографическую часть (криптоанализ).

Ранее известные атаки (кратко)

Тайминг-атака

Подробное описание этой атаки было опубликовано исследователями из University of Cambridge. Атака заключается в том, что в сетях с низкой задержкой передачи данных (т. е. в сетях Tor и VPN) возможна корреляция времени прохождения пакетов с целью установления реального источника данных. Для осуществления данной атаки необходимо контролировать определенные участки сети — интересующие выходы анонимных сетей и узлы, подозреваемые в анонимной передаче данных (либо только входы и выходы анонимных сетей).

Шансы атакующего на успех при использовании данной атаки могут быть увеличены, если у него есть доступ к серверу, к которому подключается анонимный пользователь. Атакующий может, например, заставить веб-сервер отправлять браузеру данные с определенными задержками (к примеру, атакующий может выставить разные интервалы задержек для ответа веб-сервера на запросы индексной страницы, картинок и таблиц стилей). Разумеется, можно отправлять браузеру не ожидаемый ответ, а «пачки» случайных данных с задержками. Это позволит обнаружить в зашифрованном трафике анонимной сети «шаблоны» задержек и, таким образом, с определенной вероятностью ответить на вопрос о принадлежности выходного трафика анонимной сети «подозреваемому» пользователю.

Атака на отпечатки

Атакующий может создать большую базу данных популярных веб-сайтов, которая будет содержать в себе определенные параметры индексных страниц (например, размер главной страницы Google.com в байтах). Это позволит «угадать» сайт, который посещает пользователь, путем анализа количества переданного на входной узел анонимной сети зашифрованного трафика.

Ассоциация анонимного и псевдонимного трафика

Атакующий может ассоциировать анонимный трафик с «подозреваемым» узлом в определенных случаях. Например, Tor направляет все соединения, установленные в определенном временом промежутке, в одну цепочку узлов. Таким образом, можно ассоциировать псевдонимные соединения с анонимными, если они были установлены практически одновременно. Например, при одновременной отправке файла по протоколу FTP (анонимное соединение) и соединением с ICQ (псевдонимное соединение) будет использована одна цепочка серверов сети Tor (следовательно, будет использован один выходной узел). В этом случае атакующий может догадаться, что оба соединения были установлены с одного компьютера и попытаться получить дополнительную информацию о пользователе, который передает файл, по номеру ICQ.

Атака на TCP timestamp

Опция TCP timestamp используется для обеспечения повышенной безопасности TCP-соединений. В большинстве дистрибутивов GNU/Linux она включена по-умолчанию. Атака заключается в том, что значение TCP timestamp изменяется на фиксированное значение в единицу времени и в большинстве случаев различается у двух разных компьютеров (т. к. начальное значение в большинстве случаев одинаково и, таким образом, TCP timestamp представляет собой аптайм компьютера).

Атакующий может прослушивать трафик VPN-сервиса и записывать переданные значения TCP timestamp. Поскольку VPN осуществляет передачу IP-пакетов, то система, установившая VPN-соединение, будет передавать TCP timestamp в инкапсулированных пакетах. Примерная схема атаки:

  1. Атакующий перехватывает процесс соединения с VPN-сервером и записывает переданные клиентом значения TCP timestamp (атакующий также может получить значения TCP timestamp путем «глобального» перехвата трафика, если VPN не использует TCP);
  2. Атакующий наблюдает за выходной точкой сети VPN-сервиса и записывает все переданные значения TCP timestamp;
  3. Атакующий сопоставляет значения счетчиков TCP timestamp с учетом их прироста и, таким образом, сопоставляет выходной трафик VPN-сервиса с клиентом VPN-сервера.

Аналогичная атака возможна и на скрытые сервисы сети Tor. В этом случае в анонимной сети передаются только TCP данные, однако «исследуемый» узел может передавать TCP timestamp, например, в соединениях по локальной сети. Атака заключается в том, что мы можем вызвать определенные отклонения в значениях счетчиков TCP timestamp (например, нагревом процессора путем DoS атаки). Примерная схема атаки:

  1. Атакующий замеряет прирост счетчика TCP timestamp в единицу времени у исследуемого узла (например, путем установки нескольких TCP-соединений);
  2. Атакующий создает множество соединений со скрытым сервисом и, таким образом, вызывает определенные отклонения в значениях TCP timestamp;
  3. Атакующий замеряет значения TCP timestamp у исследуемого узла и сопоставляет время наибольшей нагрузки на сервер с временем наибольшего отклонения значения. Это позволит с определенной вероятностью ответить на вопрос о принадлежности скрытого сервиса исследуемому узлу.

Применимость данной атаки на скрытые сервисы Tor до сих пор стоит под вопросом.

Другие атаки

Существует множество других атак, которые направлены на конкретные приложения, использующие анонимную сеть, например:

  1. Установка реального IP-адреса пользователя возможна путем выполнения в его браузере Java Script, Java-апплетов и Flash. Никто, конечно, не отрицает и более «традиционный» способ — выполнение нужного кода путем эксплуатации определенных уязвимостей браузера;
  2. Реальный IP-адрес можно установить путем запроса прямого соединения в протоколах Oscar, MRIM, MSN и др.

Атаки на TLS

В этом разделе будут рассмотрены потенциальные атаки на реализацию TLS (Transport Layer Security ) в большинстве приложений, которые позволят в определенных случаях следить за пользователями любых анонимных сетей.

Протокол TLS описан в следующих RFC: 2246 (версия 1.0), 4346 (версия 1.1). Также в описании атаки будет затронут популярный протокол синхронизации времени NTP, который определен в RFC 1305 (3 версия).

Атака на реализацию TLS в Firefox, Thunderbird

Данная атака позволяет следить за пользователями популярных приложений 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 в общем случае

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

В «более корректных» реализациях TLS в поле gmt_unix_time передается текущее системное время (к которому, однако, не предъявляются требования высокой точности). Атака заключается в том, что можно, вмешавшись в процесс синхронизации времени с NTP-сервером и сдвинув передаваемое «точное» время на определенное число секунд вперед, изменить системное время «подозреваемого» компьютера. Подобное изменение системного времени будет зафиксировано в TLS-соединениях, выходящих из анонимной сети.

Примерная схема атаки:

  1. Атакующий определяет группу компьютеров, которую необходимо проверить на регулярное анонимное посещение какого-либо сайта с защитой HTTPS;
  2. Атакующий вмешивается в процесс синхронизации времени этой группы и меняет передаваемое «точное» время по определенному закону, например: первый компьютер получает сдвиг времени на 12 секунд вперед, второй — на 24 и т. д. (при группе из 20 компьютеров максимальный сдвиг времени будет на четыре минуты вперед);
  3. Атакующий определяет из перехваченного трафика HTTPS (который выходит из анонимной сети) текущее время пользователя, зашедшего на сайт, и проверяет его на сдвиги (например, сдвиг времени на ~36 секунд вперед будет говорить о том, что защищенное соединение установил третий компьютер в группе).

При помощи вставок переходов HTTPS в незащищенное соединение данную атаку можно применить и к сервисам HTTP.

Атака на скрытые сервисы HTTP/HTTPS

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

Положение существенно упрощает то, что протокол HTTP обязывает большинство серверов отправлять системное время в поле Date (пример поля: Date: Tue, 15 Nov 1994 08:12:31 GMT).

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

Заключение

Стоит отметить, что две последние атаки не позволяют проводить массовое сопоставление трафика пользователей анонимных сетей. В современных условиях это означает то, что вышеописанные атаки идеально подходят для правоохранительных органов, которым необходимо сопоставить трафик конкретного пользователя с выходным трафиком анонимной сети, и, следовательно, не предназначены для массового ограничения свободы слова путем поиска и наказания «неугодных». С другой стороны, атаки на TLS в общем случае затрагивают большинство современных ОС (включая Windows XP, Windows Vista, различные дистрибутивы GNU/Linux и т. д.) из-за их направленности на протокол, а не на ошибки в конкретной реализации, которые могут быть исправлены «завтра-послезавтра».

Автор: Суханов Максим (fuf <at> itdefence.ru)

Теория струн? У нас целый оркестр научных фактов!

От классики до авангарда — наука во всех жанрах

Настройтесь на нашу волну — подпишитесь