На 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 Directory | Execution через 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 и ExecuteFsi.exe/FsiAnyCpu.exe→ T1059 (F# Interpreter из Visual Studio - подписанный Microsoft-бинарь, AWL Bypass)
Вот что тут критично для 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-то точно все детектируют. На практике - нет.Пошаговый процесс валидации:
- Убедиться, что на целевом хосте включено логирование PowerShell ScriptBlock (Event ID 4104) и Sysmon (Event ID 1 - Process Creation)
- В SIEM проверить появление алерта от соответствующего Sigma-правила - например,
posh_pc_remote_powershell_session.yml(удалённые PowerShell-сессии) из SigmaHQ (конкретное правило зависит от sub-technique и вашего набора детектов) - Если алерт не появился - проверить три точки отказа: а) включено ли логирование на хосте, б) доставляются ли логи в SIEM, в) сконвертировано ли Sigma-правило под ваш backend (Elastic, Splunk, MaxPatrol SIEM)
- Зафиксировать результат в Navigator layer: score 0, 50 или 100
[Ограничение: 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&CK | Gap analysis в Navigator | Navigator + экспорт техник группировки | При старте и при смене threat profile |
| Регрессия после изменений в SIEM | Atomic Red Team | Invoke-Atomic + CI/CD pipeline | После каждого изменения правил |
| Проверка полной kill chain и реакции SOC | Adversary emulation (Red/Purple Team) | Caldera / C2-фреймворк + Navigator | 1-2 раза в год |
| Тренировка аналитиков | Purple Team tabletop + Atomic | Atomic Red Team как генератор алертов | Ежемесячно |
| Отчёт руководству | Navigator heatmap + метрики fidelity | Navigator 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 практикам с примерами маппинга и готовыми шаблонами.