Статья MITRE ATT&CK на практике: как строить сценарии Red Team и измерять покрытие техник

Оператор за тёмной клавиатурой в свете зелёного терминала. На экране — тепловая карта ATT&CK Navigator с ячейками техник и пометками об обнаружении.


На purple team упражнении в начале 2025 года мы прогнали 47 техник из профиля, построенного по TTP реальной группировки, через инфраструктуру финансовой организации. SOC задетектировал 12. Не 12 из 14 тактик - 12 из 47 конкретных техник. Четверть. По данным Mandiant M-Trends 2025, медианное время обнаружения атакующего в сети - 11 дней, исторический минимум. Но 57% организаций узнали об инциденте от внешней стороны, а не от собственного SOC. Разрыв между «у нас есть покрытие ATT&CK» и «мы реально детектируем угрозы» скрывается именно в этих числах.

Дальше - пошаговый разбор: как строить adversary emulation сценарии по матрице MITRE ATT&CK, прогонять их через Atomic Red Team и измерять покрытие так, чтобы числа в Navigator отражали действительность, а не ожидания security-архитектора.

От threat intel к adversary emulation plan: выбор техник для Red Team сценария​

Типичная ошибка - открыть матрицу ATT&CK и начать «красить» техники, которые хотелось бы задетектировать. Threat-informed defense работает иначе: сначала определяем, кто нас атакует, потом смотрим, как именно эта группировка работает, и только после строим adversary emulation plan. Порядок важен.

Профилирование угроз под конкретную инфраструктуру​

Первый шаг - выбрать threat actor profile, релевантный для отрасли и географии. MITRE ATT&CK содержит описания десятков группировок с привязкой к конкретным тактикам и техникам. По данным CrowdStrike Global Threat Report 2025, рост активности China-nexus группировок составил 150% год к году. Это не абстрактная статистика - профиль угроз смещается и требует пересмотра минимум раз в квартал. Если ваш threat profile не обновлялся с прошлого года, вы тестируете вчерашние атаки.

Decision tree выбора threat profile:

УсловиеРекомендуемый фокус
Финансовый сектор, есть облачная инфраструктура (Azure/AWS/GCP)Техники Cloud Accounts (T1078.004, Initial Access / Persistence / Privilege Escalation / Defense Evasion) и Disable or Modify Cloud Logs (T1562.008, Defense Evasion)
Распределённая Windows-инфраструктура с Active DirectoryExecution через Command and Scripting Interpreter (T1059), Privilege Escalation, Lateral Movement
Компания с публичными веб-активамиReconnaissance через Search Victim-Owned Websites (T1594) + Initial Access
Нет данных о конкретном threat actor - общая оценкаTop-20 техник по частоте наблюдений из ATT&CK, generic adversary emulation plan

Маппинг инструментов на техники ATT&CK​

Каждый инструмент в арсенале Red Team маппится на конкретные техники. Без маппинга невозможно измерить, что именно вы тестируете, и показать синим, какие техники остались за рамками упражнения. Я видел отчёты, где Red Team прогнал 30 тестов и гордо отчитался - а при разборе выяснилось, что 20 из 30 покрывали одну и ту же тактику.

Примеры прямого маппинга:
  • mimikatz → T1003.001 (OS Credential Dumping: LSASS Memory)
  • BloodHound → T1069.002 (Permission Groups Discovery: Domain Groups)
  • Cobalt Strike beacon → T1059 (Command and Scripting Interpreter, Execution) - при доставке payload через скриптовые интерпретаторы
  • Dotnet.exe → T1059 (Command and Scripting Interpreter, Execution) и T1218 (System Binary Proxy Execution, Defense Evasion) - по данным LOLBAS Project, .NET Framework binary, используется для AWL Bypass и Execute
  • Fsi.exe / FsiAnyCpu.exe → T1059 (F# Interpreter из Visual Studio - подписанный Microsoft-бинарь, AWL Bypass)
[Контекст применимости: маппинг выше релевантен для внутреннего пентеста в Windows AD-инфраструктуре. На внешнем пентесте набор инструментов и маппинг будут другими - фокус сместится на Reconnaissance и Initial Access.]

Вот что тут критично для Blue Team: LOLBAS-бинари (Fsi.exe, Dotnet.exe) - легитимные подписанные Microsoft-файлы. Когда атакующий использует их для выполнения произвольного кода, стандартный application whitelisting не сработает. Вы видите в логах вызов dotnet.exe - это разработчик компилирует проект или злоумышленник выполняет payload? Без поведенческого контекста (parent process, аргументы командной строки, время вызова) ответить невозможно.

ATT&CK Navigator: визуализация покрытия техник​

Navigator - open-source инструмент MITRE для визуализации техник в виде heatmap. Создаёте layer-файлы (JSON), каждый описывает набор техник с метаданными (цвет, score, комментарий), накладываете слои друг на друга и получаете карту покрытия. Инструмент простой, но вся ценность - в качестве данных, которые вы в него заливаете.

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

  • Браузер: Chrome или Firefox актуальных версий - Navigator работает как веб-приложение по адресу mitre-attack.github.io/attack-navigator, локальная установка не обязательна
  • Для изолированных сред (без доступа в интернет): клонировать репозиторий attack-navigator с GitHub, запустить локально через npm install && npm start (Node.js 16+, ~2 ГБ RAM)
  • Для автоматизации генерации layer-файлов: Python 3.8+ с библиотекой mitreattack-python
  • Для программной интеграции с SIEM: API ATT&CK через STIX/TAXII (cti-taxii.mitre.org)

Создание и наложение слоёв - рабочий процесс Purple Team​

Слой 1 - Threat Actor Profile. Экспортируется из ATT&CK: для каждой группировки на сайте MITRE есть кнопка «View in Navigator», генерирующая готовый JSON с набором техник.

Слой 2 - Detection Coverage. SOC-команда заполняет вручную или автоматизированно. Для каждой техники указывается score от 0 до 100: 0 = нет детекта, 50 = алерт есть, но высокий false positive или неполное покрытие sub-techniques, 100 = стабильный детект с подтверждённым fidelity. Источник данных - корреляция между существующими Sigma-правилами и реальным потоком логов в SIEM.

Слой 3 - Red Team Results. После adversary emulation Red Team заполняет слой с результатами: какие техники выполнены, какие задетектированы, какие пропущены.

Наложение слоёв даёт heatmap:

ЦветЗначение
КрасныйТехника в профиле угрозы, детект отсутствует - критический gap
ЖёлтыйДетект есть, но low fidelity (высокий FP или покрыта не та sub-technique)
ЗелёныйЗадетектирована с подтверждённым fidelity
БелыйВне текущего threat profile - вне скоупа

Разница между «техника задетектирована» и «техника покрыта с нужным fidelity» - тут и зарыта собака. Если есть Sigma-правило на PowerShell ScriptBlock logging, но ScriptBlock logging не включён на 60% хостов - fidelity равен нулю, несмотря на наличие правила. Правило есть, а детекта нет. На бумаге зелёный, по факту красный.

Atomic Red Team: автоматизация тестирования техник ATT&CK​

Atomic Red Team (репозиторий Red Canary, github.com/redcanaryco/atomic-red-team, активно поддерживается) - библиотека unit-тестов, каждый из которых маппится на конкретную технику ATT&CK. Вместо полноценной adversary emulation операции прогоняются атомарные тесты по отдельным техникам с проверкой: сработал ли детект.

Atomic-тесты vs полная adversary emulation: когда что использовать​

СценарийAtomic Red TeamПолная adversary emulation (Caldera/C2)
Проверка конкретного Sigma-правила после внедренияДостаточенИзбыточно
Ежемесячный regression-тест покрытия SOCДостаточен (Invoke-Atomic в CI/CD)Избыточно
Оценка способности SOC видеть полную kill chainНедостаточен - тесты атомарные, нет цепочкиНеобходимо
Тренировка аналитиков L1/L2Подходит как генератор алертовПодходит для сценарных тренировок

Если коротко: Atomic - для регрессии и точечных проверок. Для проверки, что SOC видит цепочку от initial access до exfiltration, нужен полноценный C2 и живой оператор.

Пример: тестирование T1059.001 (PowerShell) и валидация детекта​

Техника T1059 (Command and Scripting Interpreter, Execution) - одна из самых наблюдаемых в реальных атаках. В SigmaHQ по этому тегу 428 правил детектирования - больше, чем по любой другой отдельной технике. Казалось бы, уж PowerShell-то точно все детектируют. На практике - нет.

Пошаговый процесс валидации:
  1. Убедиться, что на целевом хосте включено логирование PowerShell ScriptBlock (Event ID 4104) и Sysmon (Event ID 1 - Process Creation)
  2. В SIEM проверить появление алерта от соответствующего Sigma-правила - например, posh_pc_remote_powershell_session.yml (удалённые PowerShell-сессии) из SigmaHQ (конкретное правило зависит от sub-technique и вашего набора детектов)
  3. Если алерт не появился - проверить три точки отказа: а) включено ли логирование на хосте, б) доставляются ли логи в SIEM, в) сконвертировано ли Sigma-правило под ваш backend (Elastic, Splunk, MaxPatrol SIEM)
  4. Зафиксировать результат в Navigator layer: score 0, 50 или 100
Три точки отказа - не для красоты. В моей практике примерно в каждом втором упражнении проблема оказывалась именно в пункте «б»: логи просто не доезжают до SIEM.

[Ограничение: Atomic Red Team тесты выполняются без evasion - «в лоб». Реальный атакующий будет обфусцировать PowerShell, применять AMSI bypass, подменять parent process. Если детект ловит только чистый Atomic-тест, но не обфусцированный вариант - fidelity не выше 50. Для проверки evasion-устойчивости нужна полноценная adversary emulation с C2-фреймворком.]

Измерение detection coverage: от Sigma-правил к метрикам SOC​

Покрытие техник ATT&CK - не бинарное «есть/нет». Каждая техника содержит sub-techniques, и покрытие одной не означает покрытие остальных. T1059 включает sub-techniques для PowerShell (.001), Windows Command Shell (.003), Python (.006), JavaScript (.007) и ещё шесть вариантов. Детект на PowerShell ScriptBlock ничего не скажет о выполнении кода через F# Interpreter (Fsi.exe). А Fsi.exe - подписанный Microsoft-бинарь, application whitelisting его пропустит.

Detection-чеклист по критичным техникам​

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

Пайплайн измерения покрытия: от квартального цикла к непрерывному процессу​

ЗадачаПодходИнструментыПериодичность
Начальная оценка покрытия ATT&CKGap analysis в NavigatorNavigator + экспорт техник группировкиПри старте и при смене threat profile
Регрессия после изменений в SIEMAtomic Red TeamInvoke-Atomic + CI/CD pipelineПосле каждого изменения правил
Проверка полной kill chain и реакции SOCAdversary emulation (Red/Purple Team)Caldera / C2-фреймворк + Navigator1-2 раза в год
Тренировка аналитиковPurple Team tabletop + AtomicAtomic Red Team как генератор алертовЕжемесячно
Отчёт руководствуNavigator heatmap + метрики fidelityNavigator layer export в SVG/PNGПо запросу

[Применимо: любая инфраструктура с SIEM. Для организаций без централизованного сбора логов первый шаг - не измерение покрытия ATT&CK, а внедрение log collection pipeline.]

Пайплайн, который работает на практике: threat intel обновляет профиль группировки → Navigator layer пересчитывается → Atomic-тесты прогоняются по новым техникам → SOC получает результаты и фиксирует fidelity score → gap report идёт в security engineering → цикл повторяется. Без этого цикла Navigator heatmap устаревает за месяц и превращается в картинку для аудиторов.

За последние два года я провёл больше двадцати purple team упражнений, и примерно в половине случаев самый критичный gap оказывался не в отсутствии Sigma-правила, а в банальном: логи не доезжают до SIEM. Sysmon установлен, но конфигурация дефолтная и не покрывает нужные Event ID. Облачные логи отключены ради экономии - техника T1562.008 в этом случае даже не требуется, логов и так нет. Контрмера из D3FEND - Configuration Inventory (D3-CI) - звучит тривиально, но именно этот пункт проваливается чаще всего.

Метрика покрытия ATT&CK без проверки, что логи реально собираются и доставляются, - самообман. Числа в Navigator должны отражать то, что аналитик видит в консоли SIEM прямо сейчас, а не то, что security-архитектор нарисовал в документации год назад.

По данным CrowdStrike, 81% интерактивных вторжений за период с июля 2024 по июнь 2025 были malware-free. Сигнатурный подход к детекту мёртв. Поведенческое покрытие по ATT&CK - единственный способ не вслепую ждать оповещение от внешней стороны.

Проверьте прямо сейчас: возьмите свой threat profile, выберите три техники с наивысшим приоритетом и пройдите по чеклисту из семи параметров выше. Если хотя бы по одной из трёх fidelity окажется ниже 50 - у вас та же проблема, что и у тех 57% организаций из отчёта Mandiant. Если выстраиваете процесс измерения покрытия ATT&CK и хотите обменяться layer-файлами Navigator под конкретные threat profile - на yg140.servegame.com есть тред по purple team практикам с примерами маппинга и готовыми шаблонами.
 
Мы в соцсетях:

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

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab