Кто больше всего любит даркнеты? Кто трепетнее всех относится к Tor’у? Конечно же, мы, хакеры. Поэтому мы всегда очень расстраиваемся, когда в наших игровых площадках находятся баги, могущие привести к нашей полной деанонимизации. И ведь нам же, со слезами на глазах, приходится рассказывать о них широкой общественности! А что делать? Плачем, но пишем.

Используй Tor, говорили они…
Используй Tor, говорили они…
 

Шаткая дорожка Шелкового Пути

«Идеалист» — так средства массовой информации вежливо называют парня, который нарвался на пожизненное заключение, оказавшись виновным по всем пунктам обвинений. Распространение наркотиков, продажа запрещенных веществ, отмывание денег, взлом компьютерных систем — теперь все это часть биографии Уильяма Росса Ульбрихта, который, по мнению следствия, также известен как Dread Pirate Roberts.

Росс Ульбрихт — звезда даркнета, основатель Silk Road
Росс Ульбрихт — звезда даркнета, основатель Silk Road

Silk Road (2011–2013) — торговая площадка в даркнете Tor с оборотом более 15 миллионов «мертвых президентов», которая в свое время была оплотом любителей незаконного товара. «Шелковый путь» собрал вокруг себя соответствующую целевую аудиторию, принес Россу более 200 миллионов долларов и стал для него прямой дорогой за решетку.

Так выглядел Silk Road, и примерно так выглядит большая часть маркетов в Tor
Так выглядел Silk Road, и примерно так выглядит большая часть маркетов в Tor

В 2013 году ФБР удалось закрыть площадку, а Росса, которого считают ее владельцем, и ее модератора Питера Нэша отправили за решетку. Однако технические подробности поимки основателя криминальной торговой площадки все еще вызывают ряд вопросов.

Росс Ульбрихт якобы залогинен как «пират Дред» на Silk Road
Росс Ульбрихт якобы залогинен как «пират Дред» на Silk Road

В материалах уголовного дела ФБР выставляет подсудимого новичком, который не соблюдал элементарные правила анонимизации своей деятельности: оставлял адрес своей почты, имя и фамилию в социальных сетях и прикреплял сомнительные описания в своих профилях. Кроме того, парня задержали в кафе, где со своего ноутбука он был залогинен на площадке Silk Road под учетной записью ее администратора. Звучит не очень убедительно для технического специалиста, заинтересованного в подробностях о деанонимизации в даркнете.

Нерассказанная история о Silk Road

В 2016 году ожидается публикация книги от Ника Билтона (Nick Bilton), в которой, как он заявляет, будут раскрыты интересные подробности из «активной» жизни Росса Ульбрихта и его детища. Кроме того, учитывая способности журналистов вкапываться в детали, очень любопытно узнать о том, каким же образом ФБР удалось выйти на след преступника. Для затравки стоит обязательно ознакомиться со статьей издания Wired, в которой используются некоторые фрагменты из книги.

Другим громким инцидентом, вызывающим еще больше вопросов, стало закрытие более 400 onion-ресурсов с разнообразными запрещенными товарами и услугами, среди которых оказался Silk Road 2.0 — последователь прогремевшей на весь даркнет площадки.

Некоторые из закрытых в ходе спецоперации Onymous onion-ресурсов
Некоторые из закрытых в ходе спецоперации Onymous onion-ресурсов

Официальное заявление об операции Onymous

«Результатами операции Onymous, которую совместно осуществили входящий в структуру Европола Европейский центр по борьбе с киберпреступностью (European Cybercrime Centre, EC3), ФБР, иммиграционная и таможенная полиция США (the U. S. Immigration and Customs Enforcement, ICE), следственное подразделение министерства внутренней безопасности США (Homeland Security Investigations, HSI) и Евроюст (Eurojust), стали аресты 17 продавцов и администраторов, участвовавших в управлении подпольными торговыми площадками в интернете, и отключение более 410 скрытых сервисов». Полный текст официального заявления можно найти здесь.

Это событие всколыхнуло не только андеграунд, оно вызвало резонанс и в широкой общественности, ведь под сомнение встала сама концепция луковой сети. Теоретически, когда резидент даркнета посещает onion-ресурс, в силу устройства Tor никто не может определить физическое местонахождение ни самого резидента, ни веб-сервера, на котором крутится данное веб-приложение. И в этом заставили усомниться органы правопорядка, которые без объяснения технических деталей сумели провести ряд громких арестов. Попробуем встать на их место, проанализируем методы и средства, которые могут деанонимизировать пользователя самого популярного даркнета, выделим из них актуальные на текущий момент, а затем проверим эти методы на практике.

 

Атаки на браузер, атаки на канал… ну-ну

Даркнет Tor знает много теоретических и практических попыток деанонимизации пользователя. Все они условно делятся на два множества: атаки на клиентскую сторону (браузер) и атаки на соединение.

Проблемы, Тор-Мозилла?

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

#Утекшие документы NSA
Если у тебя появилось желание ознакомиться с утекшими документами NSA, в которых имеется много уже устаревшей информации о вариантах деанонимизации и фингерпринтинга Tor-пользователей, то рекомендуем пару ссылок:
https://www.schneier.com/blog/archives/2013/10/how_the_nsa_att.html
http://www.theguardian.com/world/interactive/2013/oct/04/egotistical-giraffe-nsa-tor-document.
Утекшие материалы NSA с обзором различных вариантов деанонимизации пользователей Tor
Утекшие материалы NSA с обзором различных вариантов деанонимизации пользователей Tor

Кроме псевдоофициальных (ты ведь не принимаешь на веру все, что считается утечкой?) документов, комьюнити знает о других, более интересных и хитрых атаках на клиентскую сторону. Так, исследователями было установлено, что Flash создает выделенный канал коммуникации между атакующим и жертвой, что полностью дискредитирует последнюю. Однако разработчики Tor Browser оперативно отреагировали на данную проблему, исключив обработчики Flash-контента из своего детища.

Flash как способ узнать настоящий IP-адрес жертвы
Flash как способ узнать настоящий IP-адрес жертвы

Другой, более свежий пример аналогичного канала утечки — HTML5, который принес с собой целый спектр технологий, позволяющих упростить жизнь обычным пользователям интернета и, как выяснилось, усложнить жизнь пользователям даркнета. Библиотека WebRTC, которая предназначена для организации канала передачи видеопотока между браузерами с поддержкой HTML5, по аналогии с Flash позволяла устроить утечку реального IP-адреса. Так называемые STUN-запросы, которые принесла с собой WebRTC, идут в незашифрованном виде в обход Tor со всеми вытекающими последствиями. Однако и это недоразумение также оперативно исправлено разработчиками Tor Browser.

Канальные шалости

Атаки на канал между Tor-клиентом и сервером внутри или вне даркнета выглядят не так убедительно, как атаки на браузер, потому что большинство их концепций, представленных учеными в лабораторных условиях, пока еще не нашли своего PoC «в полях». Тем не менее они имеют право на существование, ведь ресурсы, которыми обладают «компетентные органы», все-таки позволяют реализовать эти атаки на практике.
Среди множества теоретических изысканий стоит выделить фундаментальную работу, основанную на анализе трафика с использованием протокола NetFlow. Авторы исследования полагают, что у атакующей стороны есть возможность анализировать NetFlow-записи на маршрутизаторах, которые непосредственно являются узлами Tor или находятся недалеко от них. NetFlow-запись содержит следующую информацию и практически деанонимизирует клиента:

  • номер версии протокола;
  • номер записи;
  • входящий и исходящий сетевой интерфейс;
  • время начала и конца потока;
  • количество байтов и пакетов в потоке;
  • адрес источника и назначения;
  • порт источника и назначения;
  • номер протокола IP;
  • значение Type of Service;
  • для TCP-соединений — все наблюдаемые в течение соединения флаги;
  • адрес шлюза;
  • маски подсети источника и назначения.
Деанонимизация Tor-клиента на основе анализа трафика
Деанонимизация Tor-клиента на основе анализа трафика

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

Пассивная система мониторинга

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


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

Пассивная система в процессе сбора пролетающих данных
Пассивная система в процессе сбора пролетающих данных

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

Активная система мониторинга

Чтобы узнать какую-либо информацию о резиденте даркнета, нужно спровоцировать его отдать какие-либо данные о своем окружении. Другими словами, необходима активная система сбора данных.
Ярким примером активной системы мониторинга, развернутой в полевых условиях, служит множество exit-нод, которые были обнаружены экспертом компании Leviathan Security. Эти ноды отличались от прочих выходных нод тем, что инжектировали вредоносный код в пролетающие бинарные файлы. Пока клиент выкачивал какой-либо файл из интернета, используя Tor в качестве средства обеспечения анонимности, вредоносная exit-node проворачивала MITM-атаку и патчила скачиваемый бинарный файл.

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

 

Начнем с чистого листа

HTML5 принес с собой интересный тег canvas, который предназначен для создания растрового изображения при помощи JavaScript. У данного тега есть особенность отрисовки шрифтов. Их рендеринг каждый браузер осуществляет по-разному в зависимости от различных факторов:

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

Все эти факторы влияют на рендеринг шрифтов и, как результат, позволяют при помощи JavaScript-функции measureText() получить их уникальный размер.

Используем measureText() для получения размера шрифта, уникального для данной ОС
Используем measureText() для получения размера шрифта, уникального для данной ОС

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

Официальный ответ разработчиков Tor на проблему рендеринга шрифтов
Официальный ответ разработчиков Tor на проблему рендеринга шрифтов

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

Я узнаю тебя по шрифтам

Для доказательства этой концепции мы подготовили следующий тестовый стенд: веб-приложение (мой блог, размещенный на отдельном домене), которое имеет определенную целевую аудиторию (специалисты по ИБ и IT-специалисты). Согласно статистике моей сети доставки контента (Content Delivery Network, CDN), за одну неделю главную страницу моего блога посещает 128 Tor-пользователей (моя CDN вежливо помечает посетителей из даркнета как угрозу и просит ввести капчу прежде, чем отдать контент главной страницы).

В качестве пациента — мой блог, который за неделю посетили 128 пользователей даркнета
В качестве пациента — мой блог, который за неделю посетили 128 пользователей даркнета

Соответственно, на данную страницу мы внедрили JavaScript, который использует функцию measureText() для измерения отрендеренных шрифтов в браузере посетителя веб-страницы.

Внедренный в главную страницу JavaScript, который осуществляет fingerprint браузера
Внедренный в главную страницу JavaScript, который осуществляет fingerprint браузера

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

Фрагмент лога веб-сервера, в котором засветился фингерпринт Tor Browser’а
Фрагмент лога веб-сервера, в котором засветился фингерпринт Tor Browser’а

Выходим в поле

Каким образом данная концепция может быть использована в реальных условиях? Описанный выше JS-код может быть установлен на нескольких участниках информационного обмена в даркнете:

  • Exit-node. Реализация MITM-атаки, в ходе которой JS-код внедряется во все веб-страницы, которые посещает во внешней сети резидент даркнета.
  • Внутренние onion-ресурсы и внешние веб-приложения, контролируемые злоумышленником. Например, атакующий поднимает свой дорвей — специально подготовленную веб-страницу под конкретную целевую аудиторию — и устраивает фингерпринт всех посетителей.
  • Уязвимые к XSS (предпочтительно к «хранимым», но не обязательно) внутренние и внешние веб-приложения.
Объекты, которые могут фингерпринтить Tor-пользователя
Объекты, которые могут фингерпринтить Tor-пользователя

Последний пункт особенно интересен. Просканировав на веб-уязвимости примерно 100 onion-ресурсов (которые оказались в логах пассивной системы мониторинга) и отсеяв false positive, мы выяснили, что примерно 30% всех проанализированных ресурсов даркнета подвержены атакам «межсайтового скриптинга».
Все это означает, что атакующий теперь может не ограничиваться поднятием фермы выходных узлов, для того чтобы деанонимизировать пользователя. Теперь злодей может скомпрометировать веб-приложения и поднять дорвеи, разместить там JS-код и составлять базу данных уникальных фингерпринтов. Например, он может выяснить, что пользователь с уникальным фингерпринтом c2c91d5b3c4fecd9109afe0e был замечен на сайтах sdfsdfsdfdrugs.onion (основная тематика — наркотики), gunsdfsdf.onion (основная тематика — оружие), linkedin.com/vasya и так далее. Результат: конкретная личность и ее психологический портрет.

Процесс денонимизации Tor-юзера
Процесс денонимизации Tor-юзера
 

Как себя обезопасить?

Описанная техника фингерпринтинга позволяет выделять конкретные браузеры, которые также используются для серфинга исключительно onion-ресурсов и не ходят во внешний «веб». Чтобы обезопасить себя от подобной слежки, нужно задать себе вопрос: «Так ли мне необходим JavaScript в даркнете?» И сделать то, чего не до сих пор не сделали разработчики Tor Browser, — отключить JS.

Благодарность

Огромное спасибо Марии Гарнаевой, антивирусному эксперту «Лаборатории Касперского», за непосредственное участие в данном исследовании и тщательный анализ результатов. Спасибо!

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии