Пивотинг в киберразведке: как один индикатор компрометации раскрывает всю инфраструктуру злоумышленников

information security

Индикатор компрометации - это не всегда ценная находка. Часто к моменту, когда аналитик получает в работу очередной адрес или домен, сервер уже выключен, домен разделегирован, запись в блок-листах появилась раньше, чем тикет в очереди. Однако такой индикатор фиксирует не только факт атаки, но и точку в инфраструктуре, которую кто-то проектировал, разворачивал и почти всегда - переиспользовал. Зачастую процессы упрощаются ради ускорения: домены регистрируются у одного регистратора и в одно время, серверы поднимаются по единому шаблону, поверх кладутся типовые SSL-сертификаты и С2-фреймворки (командно-контрольные серверы) с одинаковыми настройками. Каждое такое повторение оставляет след, который переживет сам хост, - он остается в пассивных и исторических данных еще долго после того, как узел уходит в офлайн.

Описание

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

С какими данными работают аналитики, когда берутся за пивотинг?

В фокусе находятся домены, IP-адреса, TLS-сертификаты, порты и баннеры, контентные и криптографические отпечатки. Файловые и хостовые артефакты - хеши, конфигурации, YARA-правила, поведение в песочнице - являются вспомогательными, но не основными целями. Весь процесс строится на инструментах, которые позволяют обращаться к историческим записям и перекрёстно проверять данные.

Сетевые сканеры - такие сервисы, как Shodan или Censys, непрерывно обходят весь адресный диапазон интернета и индексируют все, что отвечает: открытые порты, баннеры сервисов, TLS-сертификаты, заголовки HTTP-ответов, контент страниц. Ключевое свойство для пивотинга: поиск работает в обратную сторону. Можно взять любой атрибут известного хоста и спросить, где ещё в интернете встречается то же самое. Нетипичная комбинация портов, кастомный баннер, самоподписанный сертификат с конкретным Subject - все это становится поисковым запросом.

Пассивный DNS (PDNS) накапливает историю резолвов. В отличие от живого DNS-запроса, PDNS показывает прошлое. Домен может быть давно разделегирован, сервер выключен - но история сохранится, и по ней можно восстановить, с какими адресами была связана инфраструктура. Обратный запрос работает аналогично: по IP-адресу можно получить все домены, которые на него резолвились.

WHOIS и исторические WHOIS - при регистрации домена контактные данные (имейл, имя, организация) после введения GDPR-приватности чаще всего обезличены. Из полезной информации на данный момент доступны NS-сервера домена, дата регистрации, регистратор и сведения об организации, если домен зарегистрирован не частным лицом.

Certificate Transparency - все публично доверенные TLS-сертификаты обязаны попадать в открытые CT-логи. Через crt.sh можно искать по домену, wildcard-маске или организации и видеть весь исторический срез выпущенных сертификатов. Самоподписанные сертификаты в CT не попадают, но они индексируются сетевыми сканерами.

Онлайн-песочницы и URL-сканеры фиксируют все сетевые обращения образца: домены, IP, URL, паттерны запросов. Песочница даёт индикаторы, которых нет в статических артефактах. URLScan.io сканирует URL как браузер и сохраняет снапшот - заголовки ответа, контент, сетевые запросы страницы.

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

Поисковые системы могут выдать технические блоги, публичные отчёты с упоминанием индикатора, базы данных угроз, записи об образцах в песочницах, которые обращались на этот адрес. Этот метод не даёт структурированного результата, но может указать на дополнительные источники контекста.

DNS-утилиты - например, DNSChecker проверяет резолвинг с разных точек мира. Возможна ситуация, когда домен отдаёт разные A-записи для разных регионов, в том числе для одного конкретного, на который направлена атака.

Как эти инструменты работают на практике, показывают три кейса, составленных на вымышленных (экранированных) индикаторах.

Кейс 1. "Мертвый" домен

Домен из конфига вредоносного образца - update-service-cdn[.]net - уже не резолвится. Проверка DNS возвращает NXDOMAIN. В анализе первого кейса используем пассивный DNS для истории A-записей. Выявлены два исторических IP: один - устаревший, второй - 198.19.21[.]93 - был активен за две недели до того, как домен перестал отвечать. В MX-записи находим другой домен - mx.serviceupdater[.]io. Поиск по такой же MX-записи даёт схожие домены: telemetry-gateway[.]org, cdn-static-assets[.]com, ms-update-check[.]net. Проверка этих доменов через сетевые сканеры показывает одинаковые открытые порты (22, 443, 8808, 9091) и одинаковый самоподписанный сертификат на порту 9091. Запрос в Censys по комбинации портов и отпечатку сертификата обнаруживает дополнительные адреса, часть из которых ещё не была замечена в атаках. Так индикатор позволяет выявить инфраструктуру, находящуюся в стадии развёртывания.

Кейс 2. Фишинг, которого нет

Домен phish-login[.]example приходит из фида блокировок с пометкой "фишинг", но при открытии отдаёт 403 или 404. Контент исчез, но кампания, скорее всего, переехала. Задача - восстановить страницу и найти действующие зеркала. Прогоняем домен через поисковые системы - находим снимок в URL-сканере и упоминание в разборе кампании. Идём в Web Archive - если домен заархивирован, получаем оригинальную вёрстку: форму ввода учётных данных. В снапшоте URLScan.io ищем уникальные строки, привязанные к оператору: токен телеграм-бота, адрес для приёма учётных записей, нестандартный путь к обработчику. Такие строки почти не меняются. Снимаем с хоста фавикон-хеш и хеш баннера (если фавикон не стандартный) и ищем через сетевые сканеры хосты с тем же фавиконом и баннером. Параллельно проверяем подсеть через пассивный DNS: найденный IP 198.51.100[.]47, просматриваем соседние адреса (сеть /29) и находим secure-login-verify[.]example, account-update-portal[.]example и id-confirm-bank[.]example. Два из них имеют другую вёрстку, поэтому не были найдены на первом этапе. Используя их как новую точку, можно повторить процесс. Кроме того, WHIOS показывает, что эти домены зарегистрированы в один день, одним регистратором и в одной зоне - по этим признакам можно найти оставшиеся домены, ещё не задействованные в атаках.

Кейс 3. C2 за занавесом

Адрес lasdjfpafsp[.]malwaredomain[.]example приходит с активного инцидента. Домен резолвится, но при открытии - 404. Задача - пробиться к панели управления. Берём родительский домен malwaredomain[.]example и ищем поддомены. Среди них находим control[.]malwaredomain[.]example - не DGA-домен (не сгенерирован алгоритмом), осмысленное слово, имеет A-запись. При входе возвращает 403. Резолвим через сервис, опрашивающий резолверы из разных стран: на одни резолверы отдаётся IP с заглушкой, на другие - другой A-record (233.252.0[.]183), за которым расположена живая веб-панель C2. Снимаем с неё фавикон-хеш и хеш баннера, прогоняем по сетевым сканерам (FOFA) и находим ещё несколько адресов с той же панелью, но с другими доменами - это вторая ветка инфраструктуры того же оператора, не связанная DNS. Параллельно через пассивный DNS находим DGA-поддомены, используемые в образцах как C2, и добавляем их в списки блокировок. Поисковые сервисы подтверждают принадлежность найденных индикаторов к известной группировке.

Главные выводы для практики

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

Важно помнить про IP-адреса хостингов, на которых сайты нескольких пользователей живут на одном адресе, - такой IP-адрес не принадлежит злоумышленнику. Аналогично нужно отбрасывать адреса Anti-DDoS-сервисов и CDN, чтобы случайно не задеть легитимные ресурсы. Дефолтные фавиконы и дефолтные баннеры (например, 404 у nginx) - слабые признаки сами по себе. Они работают только в связке с нетипичным портом или TLS-сертификатом. Один совпавший признак - это гипотеза, но не связь. Артефакты в киберпространстве легко подделать, особенно если у атакующих есть задача провести операцию под чужим флагом. Неправильная атрибуция может снизить доверие к киберразведке и эффективность защитных мер. Автоматизированные средства упрощают жизнь аналитику, но их результаты желательно перепроверять.

Индикаторы компрометации

IPv4

  • 198.19.21.93
  • 198.51.100.47
  • 233.252.0.183
  • 233.252.139.120

Domain

  • cdn-static-assets.com
  • ms-update-check.net
  • mx.serviceupdater.io
  • telemetry-gateway.org
  • update-service-cdn.net

SHA256

  • 004b73abc7082568a07182924623a26973fb7f4ab4ed30a5f022c3fa17c355eb

Комментарии: 0