РУССКИЙ
РУССКИЙ
ENGLISH
08.11.2019

Ваш выход, граф!

Как мы не нашли хороший сетевой граф и создали свой
Дмитрий Волков,
CTO Group-IB и глава направления киберразведки
Расследуя дела, связанные с фишингом, бот-сетями, псевдонимами, мошенническими транзакциями и преступными хакерскими группами, эксперты Group-IB уже много лет используют графовый анализ для выявления разного рода связей. В разных кейсах существуют свои массивы данных, свои алгоритмы выявления связей и интерфейсы, заточенные под конкретные задачи. Все эти инструменты являлись внутренней разработкой Group-IB и были доступны только нашим сотрудникам.

Графовый анализ сетевой инфраструктуры (сетевой граф) стал первым внутренним инструментом, который мы встроили во все публичные продукты компании. Прежде чем создавать свой сетевой граф, мы проанализировали многие подобные разработки на рынке и не нашли ни одного продукта, который бы удовлетворял нашим собственным потребностям. В этой статье мы расскажем о том, как мы создавали сетевой граф, как его используем и с какими трудностями столкнулись.
Что умеет сетевой граф
Group-IB?
Расследования
С момента основания Group-IB в 2003 году и по настоящее время идентификация, деанон и привлечение киберпреступников к ответственности являются главным приоритетом в нашей работе. Ни одно расследование кибератаки не обходилось без анализа сетевой инфраструктуры атакующих. В самом начале нашего пути это была довольно кропотливая «ручная работа» по поиску взаимосвязей, которые могли помочь в идентификации преступников: информация о доменных именах, IP-адресах, цифровых отпечатках серверов и др.

Большинство атакующих стараются действовать максимально анонимно в сети. Однако, как и все люди, они допускают ошибки. Основная задача такого анализа — найти «белый» или «серый» исторические проекты злоумышленников, которые имеют пересечения с вредоносной инфраструктурой, используемой в актуальном инциденте, который мы расследуем. Если удается обнаружить «белые проекты», то найти атакующего, как правило, становится тривиальной задачей. В случае с «серыми» на поиск уходит больше времени и усилий, так как их владельцы стараются анонимизировать или скрыть регистрационные данные, однако шансы остаются достаточно высокими. Как правило, в начале своей преступной деятельности атакующие уделяют меньше внимания собственной безопасности и делают больше ошибок, поэтому чем глубже мы сможем погрузиться в историю, тем выше шансы на успешное расследование. Именно поэтому сетевой граф с хорошей историей – крайне важный элемент такого расследования. Проще говоря, чем более глубокими историческими данными обладает компания, тем качественнее ее граф. Допустим, история в 5 лет может помочь раскрыть, условно, 1-2 из 10 преступлений, а история за 15 лет дает шансы на раскрытие всех десяти.
Выявление фишинга и мошенничества

Каждый раз, когда мы получаем подозрительную ссылку на фишинг, мошеннический или пиратский ресурсы, мы автоматически строим граф связанных сетевых ресурсов и проверяем все найденные хосты на наличие аналогичного контента. Это позволяет находить как старые фишинговые сайты, которые были активны, но неизвестны, так и абсолютно новые, которые заготовлены для будущих атак, но еще не используются. Элементарный пример, который встречается достаточно часто: мы нашли фишинговый сайт на сервере, где всего 5 сайтов. Проверяя каждый из них, мы находим фишинговый контент и на остальных сайтах, а значит можем заблокировать 5 вместо 1.
Поиск бэкендов
Этот процесс необходим, чтобы установить, где реально находится вредоносный сервер.
99% кардшопов, хакерских форумов, множество фишинговых ресурсов и других вредоносных серверов скрываются как за собственными прокси-серверами, так и за прокси легитимных сервисов, например, Cloudflare. Знание о реальном бэкенде очень важно для расследований: становится известен хостинг-провайдер, у которого можно изъять сервер, появляется возможность построить связи с другими вредоносными проектами.

Например, у вас есть фишинговый сайт для сбора данных банковских карт, который резолвится в IP-адрес 11.11.11.11, и адрес кардшопа, который резолвится в IP-адрес 22.22.22.22. В ходе анализа может выясниться, что и у фишингового сайта, и у кардшопа общий IP-адрес бэкенда, например, 33.33.33.33. Эти знания позволяют построить связь между фишинговыми атаками и кардшопом, на котором, возможно, продают данные банковских карт.
Корреляция событий
Когда у вас есть две разные сработки (допустим, на IDS) с разным вредоносным ПО и разными серверами для управления атакой, вы будете рассматривать их как два независимых события. Но если есть хорошая связь между вредоносными инфраструктурами, то становится очевидно, что это не разные атаки, а этапы одной, более сложной многоступенчатой атаки. А если одно из событий уже атрибутировано до какой-либо группы атакующих, то и второе тоже можно атрибутировать до этой же группы. Конечно, процесс атрибуции значительно более сложный, поэтому относитесь к написанному как к простому примеру.
Обогащение индикаторов
Не будем уделять этому много внимания, поскольку это самый распространенный сценарий использования графов в кибербезопасности: даешь на вход один индикатор, а на выходе получаешь массив связанных индикаторов.
Выявление паттернов
Выявление паттернов необходимо для эффективного хантинга. Графы позволяют не только находить связанные элементы, но и выявлять общие свойства, которые присущи определенной группе хакеров. Знание таких уникальных признаков позволяет распознавать инфраструктуру атакующих еще на этапе подготовки и без свидетельств, подтверждающих атаку, таких как фишинговые письма или вредоносные программы.
Почему мы создали свой сетевой граф?

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

Как работает наш граф
Чтобы начать использовать сетевой граф, нужно ввести в поисковую строку домен, IP-адрес, email или отпечаток SSL-сертификата. Есть три условия, которыми может управлять аналитик: время, глубина шагов и очистка.
Время
Время – дата или интервал, когда искомый элемент использовался для вредоносных целей. Если не указать этот параметр, то система сама определит последний интервал владения этим ресурсом. Например, 11 июля компания Eset опубликовала отчет о том, как Buhtrap использует для кибершпионажа 0-day эксплоит. В конце отчета есть 6 индикаторов. Один из них secure-telemetry[.]net был заново зарегистрирован 16 июля. Поэтому если вы будете строить граф после 16 июля, то будете получать нерелевантные результаты. Но если указать, что этот домен использовался до этой даты, то на граф попадают 126 новых доменов, 69 IP-адресов, которые не указаны в отчете Eset:
  • ukrfreshnews[.]com
  • unian-search[.]com
  • vesti-world[.]info
  • runewsmeta[.]com
  • foxnewsmeta[.]biz
  • sobesednik-meta[.]info
  • rian-ua[.]net
  • и др.

Кроме сетевых индикаторов, мы сразу находим связи с вредоносными файлами, которые имели связи с этой инфраструктурой и тэгами, которые подсказывают нам, что использовались Meterpreter, AZORult.

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

Возьмем пример, не связанный с APT и 0-day эксплойтами. Недавно на Хабре описывали интересный кейс с мошенничеством, связанный с криптовалютами. В отчете упоминается домен — themcx[.]co, используемый мошенниками для хостинга сайта якобы обменника Miner Coin Exchange и phone-lookup[.]xyz, для привлечения трафика.

Из описания понятно, что схема требует достаточно большой инфраструктуры для привлечения трафика на мошеннические ресурсы. Мы решили посмотреть на эту инфраструктуру, построив граф в 4 шага. На выходе получили граф с 230 доменами и 39 IP-адресами. Далее разбиваем домены на 2 категории: те, что похожи на сервисы работы с криптовалютами и те, что предназначены для нагона трафика через сервисы проверки телефонов:
Очистка
По умолчанию опция "Очистка графа" включена и все нерелевантные элементы будут удаляться с графа. К слову, она использовалась и во всех предыдущих примерах. Предвижу естественный вопрос: а как же сделать так, чтоб не удалилось что-то важное? Отвечу: для аналитиков, которые любят строить графы руками, автоматизированную очистку можно отключить и выбрать количество шагов = 1. Далее аналитик сможет достраивать граф от нужных ему элементов и удалять нерелевантные поставленной задаче элементы с графа.

Уже на графе аналитику становятся доступны история изменений whois, DNS, а также открытых портов и запущенных на них сервисов.
Финансовый фишинг

Мы исследовали действия одной APT- группы, которая на протяжении нескольких лет проводила фишинговые атаки против клиентов различных банков в разных регионах. Характерной чертой этой группы была регистрация доменов, очень похожих на названия реальных банков, а большая часть фишинговых сайтов имела одинаковый дизайн, отличия были только в названии банков и их логотипах.
В данном случае нам очень помог автоматизированный графовый анализ. Взяв один из их доменов — lloydsbnk-uk[.]com, мы через несколько секунд построили граф с глубиной в 3 шага, который выявил более 250 вредоносных доменов, которые были использованы этой группой с 2015 года и продолжают использоваться. Некоторые из этих доменов уже выкуплены банками, но по историческим записям видно, что ранее они были зарегистрированы на атакующих.

Для наглядности на рисунке показан граф с глубиной в 2 шага.

Примечательно, что уже в 2019 году атакующие несколько изменили тактику и начали регистрировать не только домены банков для хостинга веб-фишинга, но и домены различных консалтинговых компаний для отправки фишинговых писем. Например, домены swift-department[.]com, saudconsultancy[.]com, vbgrigoryanpartners[.]com.
Атака Cobalt gang
В декабре 2018 года хакерская группа Cobalt, специализирующаяся на целенаправленных атаках на банки, провела рассылку от имени Национального банка Казахстана.
В письмах были ссылки на hXXps://nationalbank[.]bz/Doc/Prikaz.doc. Скачиваемый документ содержал макрос, запускающий powershell, который попытается загрузить и исполнить файл с hXXp://wateroilclub[.]com/file/dwm.exe в %Temp%\einmrmdmy.exe. Файл %Temp%\einmrmdmy.exe aka dwm.exe — CobInt stager, настроенный на взаимодействие с сервером hXXp://admvmsopp[.]com/rilruietguadvtoefmuy.

Представьте, что у вас нет возможности получить эти фишинговые письма и провести полный анализ вредоносных файлов. Граф по вредоносному домену nationalbank[.]bz сразу показывает связи с другими вредоносными доменами, атрибутирует это до группы и показывает какие файлы использовались в атаке.
Возьмем из этого графа IP-адрес 46.173.219[.]152 и построим по нему граф в один проход и выключим очистку. С ним связано 40 доменов, например, bl0ckchain[.]ug
paypal.co.uk.qlg6[.]pw
cryptoelips[.]com
Судя по именам доменов, похоже что они используются в мошеннических схемах, но алгоритм очистки понял, что к этой атаке они не имеют отношения и не вынес их на граф, что сильно упрощает процесс анализа и атрибуции.
Если заново построить граф по nationalbank[.]bz, но отключив алгоритм очистки графа, то на него попадает более 500 элементов и большая часть из которых не имеет отношения ни к группе Cobalt, ни к их атакам. Пример, как выглядит такой граф приведен ниже:
Заключение
После нескольких лет тонкой настройки, тестирований в реальных расследованиях, исследований угроз и охоты за атакующими нам удалось не только создать уникальный инструмент, но и изменить отношение к нему экспертов внутри компании. Вначале технические эксперты хотят полного контроля над процессом построения графа. Убедить их в том, что автоматическое построение графа сможет делать это лучше, чем человек с многолетним опытом, было крайне сложно. Все решило время и многократные "ручные" проверки результатов того, что выдавал граф. Теперь наши эксперты не просто доверяют системе, но и используют полученные ею результаты в ежедневной работе. Эта технология работает внутри каждой из наших систем и позволяет лучше выявлять угрозы любого типа. Интерфейс для ручного анализа графа встроен во все продукты Group-IB и значительно расширяет возможности для хантинга за киберпреступностью. Это подтверждают отзывы аналитиков со стороны наших клиентов. А мы, в свою очередь, продолжаем обогащать граф данными и работать над новыми алгоритмами, использующими искусственный интеллект, для максимально точного сетевого графа.