Фрагменты печатных плат соединены медными проводками в подобие графа связей на антистатическом коврике, в центре — дисплей с данными атрибуции APT. Тёплый свет лампы и бирюзовое свечение мониторов...


Вот реальная ситуация из инфраструктурной атрибуции: при разборе фишинговой кампании на финансовый сектор несколько доменов удаётся связать с одной операционной группой - общий WHOIS-регистратор, близкие даты регистрации, идентичные JARM-отпечатки TLS-стека. Ни один из этих доменов не фигурирует в публичных фидах. Атрибуция строится исключительно на анализе паттернов закупки инфраструктуры.

Русскоязычные материалы по OSINT-деанонимизации крутятся вокруг пробива физлиц: корреляция никнеймов, email-цепочки, EXIF. Деанонимизация инфраструктуры угроз - другая дисциплина, с другим набором артефактов и методов. Ниже - методология, которую я применяю на практике, с конкретными модулями SpiderFoot, категориями OSINT Framework и скриптами для автоматизации.

Бизнес-логика инфраструктурной атрибуции APT группировок​

Зачем атрибутировать инфраструктуру атакующего, если достаточно заблокировать выявленные IoC? Вопрос масштаба и скорости. По данным CrowdStrike Global Threat Report 2025, среднее время lateral movement после initial access - 62 минуты (рекорд - 51 секунда). Блокировка одного C2-домена ничего не решает, если у группы развёрнуто ещё 20. Инфраструктурная атрибуция позволяет обнаружить их до активации.

Согласно методологии Unit 42 (Palo Alto Networks), инфраструктурный анализ - один из основных компонентов атрибуции наряду с TTP-анализом, victimology и temporal analysis. Он работает на нескольких уровнях: activity clusters, temporary threat groups, named threat actors. В модели Diamond Model of Intrusion Analysis инфраструктура - одна из четырёх вершин (adversary, capability, infrastructure, victim). Связь между инфраструктурой и противником устойчивее прочих: TTP можно адаптировать, малварь перекомпилировать, а привычки закупки доменов и хостинга меняются медленно.

Это и есть trade-паттерн - операционная привычка, которую атакующий не осознаёт как уязвимость. Деанонимизация инфраструктуры угроз OSINT-методами строится именно на выявлении таких привычек.

Артефакты для деанонимизации инфраструктуры атакующих​

В академических обзорах атрибуции APT артефакты делят на технические и нетехнические. Для инфраструктурной деанонимизации ключевые - сетевые и инфраструктурные.

WHOIS-история и поиск паттернов регистрации доменов APT​

WHOIS-история - первый слой анализа. Даже при использовании Privacy Protection паттерны вылезают наружу:
  • Выбор регистратора. Группы часто используют один регистратор для десятков доменов - не потому что он лучший, а потому что однажды настроенный процесс закупки повторяется. Привычка.
  • Временное окно регистрации. Массовая регистрация 5–20 доменов за 24–72 часа - типичный индикатор подготовки к кампании.
  • Паттерны именования. Повторяющиеся конструкции: комбинации «сервис + регион» (update-eu, cdn-asia), однотипные TLD (.xyz, .top, .club).
  • Контактная информация. Повторяющийся nameserver, одинаковая страна в WHOIS-записях - даже при включённой privacy-защите.
Инструменты OSINT для аналитика ИБ: DomainTools (историческая WHOIS-база), SecurityTrails (пассивный DNS + WHOIS), SpiderFoot (автоматизация через модуль sfp_whois).

Техника T1593 (Search Open Websites/Domains, Reconnaissance) из MITRE ATT&CK описывает действия атакующего по разведке, но те же источники работают в обратном направлении - для атрибуции.

SSL/TLS-сертификаты и JARM-отпечатки​

SSL-сертификаты - второй устойчивый артефакт. Три вектора анализа:

Certificate Transparency (CT) логи. Публичные логи (crt.sh, Censys) содержат все выпущенные сертификаты. Поиск по организации, email или паттерну имени выявляет связанные домены, которых нет в passive DNS.

SHA-256 хэш сертификата. Один самоподписанный сертификат на нескольких серверах - сильный индикатор принадлежности к одной группе. Атакующие переиспользуют self-signed сертификаты чаще, чем кажется: генерация нового - лишний шаг в операционном процессе, и его пропускают.

JARM-хэши. JARM - активный fingerprinting TLS-стека. Генерирует 62-символьный хэш на основе ответов сервера на 10 специально сформированных TLS Client Hello. Одинаковый JARM на разных IP указывает на идентичную конфигурацию TLS и, часто, на одну инфраструктуру развёртывания.

Ограничение, о котором забывают: JARM совпадает у всех серверов с дефолтной конфигурацией одного хостинг-провайдера. Без дополнительной корреляции JARM-совпадение - слабый индикатор. На практике JARM полезен только в комбинации с WHOIS и DNS-данными.

Passive DNS и корреляция C2 серверов​

Passive DNS фиксирует исторические связи «домен - IP-адрес». Что это даёт для выявления связей между вредоносными доменами:
  • Обнаружение доменов, резолвившихся на один IP в разное время (shared infrastructure).
  • Выявление «парковки» - доменов, мигрировавших на один IP непосредственно перед кампанией.
  • Расширение графа: IP-адреса известных C2-доменов → другие домены на тех же IP → их WHOIS и SSL.
Техника T1596 (Search Open Technical Databases, Reconnaissance) описывает поиск в Shodan, Censys, WHOIS - для атрибуции мы используем те же базы, но для построения графа связей атакующего.

Trade-паттерны: что выдаёт инфраструктуру command and control​

Trade-паттерн - устойчивая поведенческая характеристика закупки и развёртывания атакующей инфраструктуры. В отличие от IoC, которые меняются после каждой кампании, trade-паттерны стабильны. Они отражают не технику, а привычку.

Паттерн закупки. Один регистратор, один хостинг-провайдер, однотипный процесс оплаты. Группа, привыкшая работать через конкретного регистратора с оплатой криптовалютой, не переходит на другого без веской причины. Каждая миграция - перестройка операционного процесса, а люди ленивы (даже APT-операторы).

Паттерн развёртывания. Одинаковый стек серверного ПО, однотипные TLS-конфигурации, характерные HTTP-заголовки. Серверы с одним и тем же Malleable C2 Profile дают устойчивый JARM-хэш + паттерн HTTP-ответов.

Временной паттерн. Регистрация доменов за 2–4 недели до кампании. Обновление DNS-записей в определённые часы - коррелирует с часовым поясом оператора. Если группа стабильно обновляет A-записи в узком временном окне, скажем утренние часы по определённому часовому поясу, это сужает географию до нескольких стран.

Паттерн эволюции. Переход с одного C2-фреймворка на другой при сохранении инфраструктурных привычек. Группа сменила C2-инструментарий, но продолжает использовать тот же VPS-провайдер, те же TLD и тот же временной паттерн регистрации. Инструменты новые - руки те же.

Когда trade-паттерн НЕ работает: если группа использует инфраструктуру через посредника (Initial Access Broker). По данным Mandiant M-Trends 2025, exploits - наиболее распространённый вектор initial access (38%). Mandiant не приводит данных о доле IAB в этом векторе - связь с IAB здесь моё предположение, а не вывод отчёта. В этом случае инфраструктура принадлежит посреднику, и trade-паттерн ведёт к нему, а не к конечному атакующему.

SpiderFoot для threat intelligence: практический workflow

SpiderFoot - open-source OSINT-фреймворк с модульной архитектурой. Для инфраструктурной атрибуции он ценен не как «ещё один сканер», а как корреляционный движок: каждый модуль генерирует события, которые становятся входными данными для других модулей.

Требования к окружению​

  • ОС: Linux (Debian/Ubuntu 20.04+), macOS, Windows (WSL рекомендуется)
  • Python: 3.8+
  • RAM: 4 ГБ минимум, 8 ГБ при сканировании с полным набором модулей
  • API-ключи: Shodan, VirusTotal, SecurityTrails, Censys - без ключей SpiderFoot работает, но корреляция ограничена публичными источниками

Модули и автоматическая корреляция​

Для trade pattern анализа инфраструктуры угроз критичны:

КатегорияМодулиАртефакт
DNS / Passive DNSsfp_dnsresolve, sfp_passivednsИсторическая связь домен - IP
WHOISsfp_whois, sfp_domaintoolsРегистрационные данные, история
SSL/TLSsfp_sslcertСертификаты, CT-логи
Сетевая разведкаsfp_shodan, sfp_censysОткрытые порты, баннеры
Репутацияsfp_virustotalСвязи с вредоносной активностью
Bash:
# SpiderFoot CLI - сканирование домена с инфраструктурными модулями
python3 sf.py -s suspicious-domain.xyz \
  -m sfp_dnsresolve,sfp_whois,sfp_sslcert,sfp_shodan,sfp_passivedns \
  -o csv -q
# Результат: CSV с корреляцией DNS, WHOIS, SSL, Shodan
# Веб-интерфейс: python3 sf.py -l 127.0.0.1:5001
Ключевой принцип: не запускать полный набор модулей. Избыточные данные создают шум, а API-лимиты бесплатных ключей исчерпываются за один полный скан. Я обычно начинаю с DNS + WHOIS + SSL, и только если граф показывает что-то интересное - подключаю Shodan и VirusTotal.

Ограничение SpiderFoot для threat intelligence: корреляционный движок работает на уровне совпадения строковых значений (email, IP, домен). Он не распознаёт семантику trade-паттернов - не видит, что два домена зарегистрированы с интервалом в 4 часа через одного регистратора. Эту аналитику приходится делать вручную или скриптовать отдельно.

OSINT Framework для пентеста: навигация по инфраструктурным источникам

OSINT Framework (osintframework.com) - не инструмент, а структурированный каталог источников данных. Для инфраструктурного анализа релевантны категории:
  • Domain Name → WHOIS Records - сервисы исторического WHOIS (DomainTools, SecurityTrails)
  • Domain Name → Subdomains - перечисление поддоменов для расширения поверхности анализа
  • IP Address → Geolocation / Reputation - привязка IP к хостинг-провайдерам и AS
  • Digital Certificates - поиск по CT-логам (crt.sh, Censys)
  • Threat Intelligence - агрегаторы фидов (AlienVault OTX, MISP)
На практике OSINT Framework полезен как отправная точка для аналитика, который строит инфраструктурный граф впервые и не знает, какие источники существуют для конкретного типа артефакта. Опытные исследователи чаще работают напрямую с API сервисов - каталог к тому моменту уже в голове.

Связка инструментов: OSINT Framework помогает выбрать источники данных, SpiderFoot автоматизирует сбор и первичную корреляцию, итоговый анализ trade-паттернов - ручная или скриптовая работа на стороне аналитика.

Уровни атрибуции APT группировок: от кластера к именованному актору​

Согласно методологии Unit 42, атрибуция проходит несколько уровней. На каждом инфраструктурный анализ работает по-разному.

Уровень 1: Activity Cluster. Два и более связанных события группируются в кластер. На инфраструктурном уровне: общие IoC (один C2-домен, один SHA-256 хэш) или таргетинг одной отрасли. Кластерам присваиваются имена по мотивации - CL-STA-nnnn (state-sponsored), CL-CRI-nnnn (crime-motivated), CL-UNK-nnnn (unknown). Конкретная схема именования может варьироваться. Здесь высокая уверенность в атрибуции не нужна - достаточно обоснованной группировки связанных событий.

Уровень 2: Temporary Threat Group. Кластер повышается после минимум 6 месяцев наблюдения с подтверждением единого актора. Инфраструктурная атрибуция здесь - ключевой аргумент: повторяющиеся trade-паттерны закупки доменов, переиспользование SSL-сертификатов, стабильный хостинг-провайдер. Именование, предположительно: TGR-STA-nnnn.

Уровень 3: Named Threat Actor. Полная идентификация с высокой уверенностью. В threat intelligence применяется Admiralty System (NATO System) для оценки каждого доказательства по двум осям: reliability (надёжность источника) и credibility (подтверждаемость другими источниками). Ряд вендоров, включая Unit 42, описывают её использование в своих методологиях. WHOIS-данные из DomainTools - высокая reliability и credibility (верифицируемы через альтернативные WHOIS-сервисы). Анонимный отчёт на paste-сайте - низкая reliability, неверифицируемый.

Переход между уровнями происходит по мере накопления trade-паттернов: один совпавший регистратор - совпадение. Один регистратор + одинаковый временной паттерн + характерный JARM - кластер. Устойчивое повторение через несколько кампаний - основание для temporary group.

Автоматизация OSINT разведки в SOC: Python-пайплайн корреляции

Ручной анализ trade-паттернов не масштабируется при работе с сотнями доменов. Ниже - концептуальный скрипт для корреляции WHOIS-данных:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Ограничения скрипта: WHOIS rate limiting (30–50 запросов в час у большинства серверов), отсутствие нормализации (формат дат варьируется между TLD), Privacy Protection не учитывается. Для промышленного использования нужна интеграция с SecurityTrails API или DomainTools API - они дают нормализованные исторические данные.

Ограничения инфраструктурной атрибуции: когда деанонимизация не работает

Вот где метод ломается:

False flags. Продвинутые группы намеренно имитируют инфраструктурные привычки других акторов - используют тот же регистратор, похожие naming conventions, разворачивают C2 на инфраструктуре, ассоциированной с другой группой. Отличить false flag от подлинного trade-паттерна без дополнительного контекста (TTP, victimology) невозможно.

Shared tools. C2-фреймворки используются десятками групп. JARM-хэш дефолтной конфигурации одинаков у всех операторов, которые не кастомизировали профиль. По данным CrowdStrike (GTR 2025), 75% вторжений используют действительные учётные данные. Отдельно от этой статистики - по моему мнению, не подтверждённому данными CrowdStrike, - часть таких данных может закупаться через общих IAB, что потенциально размывает инфраструктурную границу между группами.

Bulletproof hosting. Некоторые хостинг-провайдеры обслуживают десятки групп одновременно. Совпадение AS и подсети - слабый индикатор, если провайдер специализируется на abuse-устойчивом хостинге.

Правовые ограничения. Активное сканирование (JARM, port scanning) подозрительных серверов может нарушать законодательство. Passive-методы (CT-логи, passive DNS, публичный WHOIS) правовых рисков не несут, но дают менее полную картину. Вопрос применимости ФЗ-152 к сбору данных из открытых технических источников (WHOIS, DNS, CT-логи) неоднозначен: согласно ст. 3 ФЗ-152, персональными данными считается любая информация, относящаяся к идентифицируемому физическому лицу, и WHOIS-записи регистрантов-физлиц могут подпадать под это определение уже на этапе сбора. Каждый случай требует отдельной юридической оценки.

Анонимизация. Tor, VPN, цепочки прокси между оператором и C2-сервером. Инфраструктурный анализ показывает, что C2-сервер стоит у определённого хостера - но кто его арендовал, из пассивных данных не следует. Разрыв между «чья инфраструктура» и «кто за ней стоит» - фундаментальное ограничение метода.

Автоматизированная атрибуция APT - тема, которую активно развивают в академической среде: десятки публикаций про ML-модели, якобы определяющие threat actor по набору IoC с точностью 95%. На практике я не встречал случая, когда ML-модель дала бы атрибуцию, которую опытный аналитик не сделал бы быстрее и точнее, опираясь на trade-паттерны и ручную корреляцию. Проблема не в алгоритмах - проблема в данных. Публичных датасетов для обучения атрибуционных моделей практически нет (нехватка структурированных данных регулярно упоминается в литературе как один из открытых вызовов). Те датасеты, что существуют, содержат синтетические или устаревшие данные.

Реальная деанонимизация инфраструктуры угроз - это 80% рутинной корреляции WHOIS-записей, SSL-сертификатов и passive DNS. 15% - проверка гипотез через Admiralty System (reliability + credibility каждого факта по методологии Unit 42). И 5% - распознавание аномалий, построенное на сотнях предыдущих разборов. False flags целенаправленно обманывают именно автоматические системы, потому что ML-модели обучены на паттернах, а false flag - это паттерн, созданный для обмана. Единственная защита - мультимодальная проверка: инфраструктурный trade-паттерн должен подтверждаться TTP-анализом, victimology и временной корреляцией. Без этого пересечения любая атрибуция - гипотеза, а не факт.

Попробуйте взять 5–10 доменов из свежего фида (AlienVault OTX, MISP) и прогнать через скрипт выше + SpiderFoot. Если увидите два домена с одним регистратором, зарегистрированных с разницей в пару часов - это уже след. Дальше копайте SSL и passive DNS. Если и там совпадения - у вас activity cluster.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab