В ноябре 2023 года APT29 (Midnight Blizzard) залезли в корпоративную среду Microsoft через password spraying единственного тестового облачного tenant без MFA. Тестовый tenant. Без MFA. В Microsoft. Оттуда - через созданное атакующим вредоносное OAuth-приложение с правами
full_access_as_app к Exchange Online - группировка около двух месяцев спокойно читала почту руководства и юридического отдела, пока инцидент не вскрыли в январе 2024. EDR не выдал ни одного алерта: вся цепочка прошла в identity-плоскости, минуя эндпоинты, по данным Microsoft MSRC (январь 2024).Через полгода кластер UNC5537 (по атрибуции Mandiant; часть данных позднее распространяли ShinyHunters) затронул около 165 организаций - клиентов Snowflake. Снова credentials из инфостилеров, снова без enforced MFA, снова без срабатывания endpoint-агентов. IBM X-Force Threat Intelligence Index 2025 фиксирует рост атак с использованием действительных учётных данных на 71% год к году, а CrowdStrike Global Threat Report 2025 даёт ещё жёстче: 75% вторжений через valid credentials, 79% - вообще без малвари. Для зрелых APT-кластеров эндпоинт стал необязательным звеном в kill chain.
Экономика identity-first атак: зачем APT уходят с эндпоинтов
Перемещение атакующих в identity-плоскость - рациональный выбор, а не модное слово из отчётов. Три фактора делают cloud account compromise APT основным вектором. Подробнее - в нашем подробном разборе атаки на аутентификацию.EDR слепнет по дизайну. Когда атакующий аутентифицируется с валидными учётными данными через Graph API или EWS, он не запускает процесс на хосте, не подгружает DLL, не трогает файловую систему. Для endpoint-агента (CrowdStrike Falcon, SentinelOne, Kaspersky EDR Expert, Elastic 8.x+) это выглядит как легитимная сессия. Компрометация учётных данных в облаке - слепая зона EDR не из-за кривой настройки, а по архитектуре. Агент мониторит хост, а атакующий на хост не заходит.
Масштаб конвейера credentials. По оценке IBM X-Force, ежедневно в dark web появляется порядка 6 000 свежих учётных записей. Инфостилеры VIDAR, REDLINE, LUMMA, RISEPRO, RACOON STEALER и METASTEALER (по данным Push Security, именно эти варианты использовались в кампании против Snowflake) обеспечивают промышленный поток credential-пар. При отсутствии enforced MFA одна пара = доступ к десяткам SaaS-приложений. По данным Verizon DBIR 2025, 38% утечек связаны с credential theft, а 68% - с участием человеческого фактора.
Время обнаружения не в пользу защиты. Mandiant M-Trends 2025 фиксирует медианный dwell time 11 дней - исторический минимум, но для identity-based persistence это оптимистичная оценка. Когда закрепление живёт в OAuth grants или federation trust, SOC с endpoint-центричным фокусом может не обнаружить атакующего месяцами. 57% организаций узнают об инциденте от внешней стороны, а не от собственных систем детекции. Перечитайте эту цифру ещё раз.
Финансовый контекст для Blue Team: медианный выкуп ransomware, по данным Verizon DBIR 2025, - $46 000, максимум в единичном инциденте - $75M. Для государственных APT мотивация не финансовая, но оборотные штрафы за утечки ПДн и прямой ущерб от компрометации почтовой переписки руководства кратно дороже.
Kill chain identity-атаки: от password spray до Golden SAML
Типовая цепочка identity-based атаки APT в облачной инфраструктуре проходит пять этапов. Каждый маппится на конкретную технику MITRE ATT&CK и имеет свой detection-сигнал.Initial Access и Credential Theft (T1078, T1621)
Valid Accounts (T1078, Initial Access / Persistence / Defense Evasion). Фундамент цепочки. Источники credentials: инфостилеры, password spraying, credential stuffing из комболистов. В кейсе Microsoft - password spray против тестового tenant. В кейсе Snowflake - credentials из инфостилеров, попавшие в Telegram-каналы и на dark web-форумы. По данным CrowdStrike, среднее время lateral movement после initial access - 62 минуты, рекорд - 51 секунда. Минута. Не час.Применимость: любая среда с облачным IdP (Entra ID, Okta, Google Workspace). Критично при наличии legacy auth protocols (IMAP/SMTP) - password spray через них обходит MFA, потому что legacy-протоколы не поддерживают MFA-challenge в принципе. На Windows-хостах атакующие используют LOLBAS-утилиту
Cmdkey.exe (cmdkey /list) для перечисления cached credentials - маппинг MITRE: T1078 (Valid Accounts).Detection: корреляция >10 неудачных auth-попыток на >5 различных UPN с одного IP за 10 минут - паттерн password spray. В SigmaHQ по тегу T1078 доступно 116 правил, включая
azure_tap_added.yml (обнаружение добавления Temporary Access Pass) и azure_pim_change_settings.yml (изменение настроек PIM).MFA Fatigue (T1621, Multi-Factor Authentication Request Generation, Credential Access). Если MFA включён через push-уведомления, APT29 применяет MFA fatigue: серия push-запросов в нерабочее время (02:00–04:00). Жертва нажимает «Подтвердить» чтобы прекратить поток - в три часа ночи люди не думают, а реагируют. По данным Unit 42, более трети инцидентов 2024–2025 годов начинались с social engineering, и MFA fatigue - одна из рабочих техник.
Применимость: среда с push-based MFA (Microsoft Authenticator push, Duo Push). Не работает против FIDO2, phishing-resistant MFA, number matching.
Detection: >5 отклонённых MFA-запросов (ResultType 500121 в Entra ID) за 15 минут от одного UPN, за которыми следует успешная аутентификация.
Persistence и Lateral Movement (T1606.002, T1550.001, T1098)
Golden SAML (T1606.002, SAML Tokens, Credential Access). При наличии AD FS в гибридной среде атакующий нацеливается на token-signing certificate. Компрометация сертификата позволяет подделывать SAML-токены для любого пользователя в федерации - включая Global Admin - без повторной аутентификации. По сути, это мастер-ключ от всего.Платформа: azure-ad. В репозитории Atomic Red Team тест Golden SAML для T1606.002 имеет platform: azure-ad - он эмулирует подделку SAML-токенов против Azure AD. Подготовительный этап - извлечение token-signing certificate с AD FS-хоста - в Atomic-репозитории не покрыт и выполняется отдельно через lateral movement в on-prem-сегменте. Техника не применима к организациям, полностью мигрировавшим на cloud-native identity без AD FS.
Detection: SAML-assertions с аномальным NotBefore/NotOnOrAfter (>24 ч), токены для пользователей без AD FS-аутентификации за последние 30 дней, изменения federation metadata. По MITRE D3FEND: D3-CCSA (Credential Compromise Scope Analysis) и D3-CR (Credential Revocation).
Application Access Token (T1550.001, Lateral Movement). После получения доступа к identity-плоскости атакующий перемещается между сервисами через OAuth-токены: Graph API, EWS, SharePoint Online - всё доступно без повторной аутентификации. По данным CloudSEK, persistence APT29 «was maintained primarily within email and collaboration platforms rather than through endpoint-focused intrusion». Никаких бинарей на диске, никаких подозрительных процессов - чистый API.
Account Manipulation (T1098, Persistence / Privilege Escalation). Закрепление: добавление client secret к существующему Service Principal, создание нового federation trust, назначение ролей. В Atomic Red Team для T1098 доступны три теста: Admin Account Manipulate (PowerShell, Windows), Domain Account and Group Manipulate (PowerShell, Windows), AWS group/user creation (sh, AWS).
Detection для T1550.001 и T1098: новый OAuth consent grant с permissions Mail.Read, Mail.ReadWrite, Files.Read.All. Добавление credentials к Service Principal в AuditLogs. По SigmaHQ:
okta_session_impersonation_granted.yml (T1199) - session impersonation как индикатор Trusted Relationship abuse.Insider threat и скомпрометированные легитимные хосты
Вот что по-настоящему головная боль для SOC: скомпрометированная учётная запись неотличима от insider threat средствами стандартного мониторинга. Когда атакующий использует valid credentials реального сотрудника, его действия - чтение почты, скачивание файлов из SharePoint, доступ к Teams - выглядят как нормальная пользовательская активность.Разграничение требует baseline поведения конкретного пользователя: геолокация, время активности, набор приложений, объём скачиваемых данных. Без поведенческого baseline (D3-AM, Access Modeling по MITRE D3FEND) детекция невозможна. Не «затруднена» - невозможна.
Когда какую технику применяют: decision tree для detection engineer
| Условие в инфраструктуре | Техника MITRE ATT&CK | Первичный detection-сигнал | Приоритет |
|---|---|---|---|
| Учётные записи без enforced MFA (включая тестовые, сервисные) | T1078 Valid Accounts | Password spray: >10 fail + >5 UPN с одного IP / 10 мин | Критический |
| MFA через push-уведомления | T1621 MFA Fatigue | >5 отклонённых MFA + успешный вход / 15 мин | Критический |
| AD FS в гибридной среде | T1606.002 Golden SAML | Аномальный SAML NotOnOrAfter, незнакомый signing cert | Критический |
| User consent для OAuth apps разрешён | T1550.001 App Access Token | Новый OAuth grant с Mail.Read / Files.Read.All | Высокий |
| Service Principals без мониторинга | T1098 Account Manipulation | Новый client secret / cert к SP | Критический |
| Edge-устройства с management-интерфейсом | T1190 Exploit Public-Facing App | Auth в management с нетипичного IP / гео | Высокий |
| Cached credentials на рабочих станциях | T1078 (Valid Accounts) | Вызов cmdkey /list от нетипичного процесса | Средний |
Detection engineering: KQL, Sigma и корреляции для identity-атак
Требования к окружению
- SIEM: Microsoft Sentinel (KQL-запросы ниже). Для Splunk, Elastic 8.x+, MaxPatrol SIEM, KUMA - конвертация Sigma-правил через sigma-cli или pySigma
- Источники логов: Entra ID Sign-in Logs, Audit Logs, Microsoft 365 Unified Audit Log. Для Okta: System Log API
- Retention: минимум 90 дней, рекомендуется 180 (identity-атаки имеют dwell time выше среднего)
- Права: Security Reader в Entra ID, доступ к Log Analytics workspace
KQL: обнаружение password spray (T1078)
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Sigma-правила и дополнительные корреляции
Из репозитория SigmaHQ (github.com/SigmaHQ/sigma) для email compromise detection и identity threats наиболее релевантны:azure_tap_added.yml(T1078) - добавление Temporary Access Pass, часто используемого для bypass MFAazure_pim_change_settings.yml(T1078) - изменение настроек Privileged Identity Managementokta_session_impersonation_granted.yml(T1199) - session impersonation в Okta
- Аномальный OAuth consent: новое Application с permissions Mail.Read / Mail.ReadWrite / Files.Read.All от пользователя, который ранее не создавал App Registrations
- Federation trust changes: новые записи в Trusted Domain Objects - индикатор подготовки к Golden SAML
- Service Principal credential rotation: добавление client secret к SP, которому >180 дней не добавлялись credentials
Hardening identity-инфраструктуры: чеклист
Готовый чеклист для передачи инфраструктурной команде. По NIST CSF v2.0 меры маппятся на PR.AA-01 (Identity Management, Authentication, and Access Control) и DE.AE-01 (Adverse Event Analysis). Распечатайте и повесьте над монитором - серьёзно.- Enforce MFA на 100% учётных записей, включая тестовые, сервисные и break-glass. Тип MFA: FIDO2 или certificate-based. Не push-only, не SMS. Тестовый tenant Microsoft без MFA стал entry point для APT29 - это не теория.
- Заблокировать legacy authentication в Entra ID (Conditional Access - Block legacy auth). Password spray через IMAP/SMTP/POP3 обходит MFA.
- Запретить user consent для OAuth-приложений. Разрешить только admin consent workflow. Мониторить AuditLogs на новые consent grants.
- Ротировать AD FS token-signing certificate минимум раз в 90 дней. Private key - в HSM. Мониторить изменения federation metadata.
- Автоматизировать алерт на добавление client secret или certificate к любому Service Principal (событие «Add service principal credentials» в AuditLogs).
- Создать whitelist разрешённых OAuth App IDs. Алертить на появление нового приложения с permissions Mail.Read и выше.
- Conditional Access: location + device compliance + risk level. Не полагаться только на MFA. Каждая аутентификация - через policy stack.
- Retention логов: минимум 180 дней. Identity-based атаки имеют dwell time выше медианных 11 дней (Mandiant M-Trends 2025).
- Аудит cached credentials на рабочих станциях.
cmdkey /listпоказывает сохранённые учётные данные - LOLBAS-вектор для T1078. - Прогон Atomic Red Team ежеквартально: T1098 Account Manipulation - три atomic-теста (Admin Account, Domain Account, AWS group); T1606.002 SAML Tokens - atomic-тест Golden SAML на platform azure-ad. Верифицировать что SIEM генерирует алерт на каждый тест. Если алерт не пришёл - значит, не пришёл бы и при реальной атаке.
75% вторжений через valid credentials по CrowdStrike и +71% рост credential-based атак по IBM X-Force - это не тренд, это смена парадигмы. EDR не сломан - он работает штатно, просто четыре из пяти инцидентов проходят мимо него по дизайну. Организации, которые к середине 2026-го не мониторят OAuth consent grants, federation trust changes и Service Principal credential additions, будут обнаруживать компрометации только после уведомления от CERT или контрагента. С текущими оборотными штрафами за утечки ПДн - дорогое удовольствие.
Прогноз: через год-полтора identity-layer станет primary detection surface для SOC, а endpoint-мониторинг - вторичным. Кто перестроит правила корреляции сейчас - получит преимущество в dwell time на порядок. Если ваш стек детекции отличается от Sentinel - на codeby.net коллеги разбирают адаптацию identity detection правил под Splunk, Elastic и отечественные SIEM.