Понедельник, 9:15 утра. EDR генерирует алерт: обращение к процессу lsass.exe через comsvcs.dll на рабочей станции бухгалтерии. Аналитик L1 подтверждает true positive, изолирует хост. Тикет закрыт, все довольны. Но атакующий-то начал за 40 минут до срабатывания. По данным CrowdStrike Global Threat Report 2025, среднее время breakout - перехода к lateral movement после initial access - составило 62 минуты в 2024 году. Рекордный случай - 51 секунда. За те 40 минут злоумышленник мог оказаться на трёх-четырёх соседних машинах, а SOC празднует победу над одним хостом. Threat hunting lateral movement начинается именно здесь: не «заблокирован ли первый хост», а «найдены ли все остальные точки присутствия». Разница между этими двумя вопросами - разница между закрытым тикетом и закрытым инцидентом.
Карта техник: что именно ищем при threat hunting lateral movement
Прежде чем открывать консоль SIEM, определяем конкретный набор техник, которые оставляют следы в логах. Каждая техника MITRE ATT&CK - это отдельный тип артефактов, и искать их нужно по-разному.| Техника | MITRE ID | Ключевые артефакты | Типичный сценарий |
|---|---|---|---|
| SMB/Windows Admin Shares | T1021.002, Lateral Movement | EventID 5145, 7045, файл от System PID 4 | PsExec, копирование payload на C$/ADMIN$ |
| Remote Desktop Protocol | T1021.001, Lateral Movement | EventID 4624 Type 10, 1149 (TerminalServices) | Интерактивная сессия на сервере |
| Pass the Hash | T1550.002, Lateral Movement | EventID 4624 Type 3 с NTLM без предшествующего 4776 | Переиспользование NTLM-хеша |
| Pass the Ticket | T1550.003, Lateral Movement | EventID 4769, аномальный encryption type | Golden/Silver Ticket через Mimikatz |
| Scheduled Tasks (удалённые) | T1053.005 (Execution, Persistence) | EventID 4698, сетевое подключение svchost по DCE/RPC | Отложенное выполнение на целевом хосте |
| LSASS Memory | T1003.001, Credential Access | Sysmon EventID 10 (ProcessAccess к lsass) | Дамп credentials перед перемещением |
| Valid Accounts | T1078, Initial Access / Persistence / Privilege Escalation / Defense Evasion | EventID 4624 с нетипичного source на нетипичный dest | Использование украденных credentials |
| Clear Windows Event Logs | T1070.001, Defense Evasion | EventID 1102 (Security Log Cleared) | Зачистка следов после перемещения |
Decision tree для выбора направления поиска:
- Алерт на credential access (T1003.001) - ищем Logon Type 3 и Type 10 с source IP скомпрометированного хоста на все остальные машины в окне от момента компрометации
- Обнаружен новый сервис на удалённом хосте (EventID 7045) - проверяем предшествующий EventID 4624 с нетипичного source
- Аномальный Kerberos-тикет - фильтруем EventID 4769 по Encryption Type 0x17 (RC4-HMAC), который указывает на Pass-the-Hash или Overpass-the-Hash при включённом AES в домене
- Нетипичная пара src-dst в RDP-сессиях - сравниваем с baseline за 30 дней
Требования к окружению
| Компонент | Минимальная конфигурация | Рекомендация |
|---|---|---|
| Windows Event Forwarding | Security Log: 4624, 4625, 4648, 4672, 4776, 5145, 7045 | Добавить 4698, 4769, 1102 |
| Sysmon | Версия 14+, конфиг SwiftOnSecurity | EventID 1, 3, 10, 11 - минимальный набор |
| SIEM | Splunk 9.x (SPL) / Elastic 8.x (EQL) / Microsoft Sentinel (KQL) | Retention от 90 дней для ретроспективного анализа |
| Сеть | NetFlow или Zeek для корреляции хостовых и сетевых событий | Зеркалирование межсегментного трафика |
| Права доступа | Read-доступ к индексам Security, System, Sysmon в SIEM | Возможность создания ad-hoc scheduled searches |
Запросы ниже - в SPL (Splunk). Адаптация под KQL или EQL требует замены синтаксиса, но логика корреляции та же.
SIEM-запросы для обнаружения бокового перемещения
PsExec и SMB Admin Shares (T1021.002)
PsExec - один из самых частых инструментов lateral movement. И у пентестеров, и у реальных групп. Любят его за простоту: скопировал бинарь через ADMIN$, создал сервис, получил шелл. По исследованию Elastic Security Labs, при копировании файла через SMB на целевой машине событие file creation генерируется виртуальным процессом System (PID 4). Обычные пользовательские процессы файлы от имени ядра не создают - это и есть ключевой артефакт.Что ищем:
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Индикаторы компрометации IOC: от статических хешей к поведению
79% атак в 2024 году обошлись без malware (CrowdStrike) - атакующие работают hands-on-keyboard, используя встроенные инструменты ОС: PowerShell, WMI, net.exe. Файловых IOC нет. Хешировать нечего. Threat hunting lateral movement в malware-free сценариях строится исключительно на поведенческих индикаторах.Поведенческие IOC для lateral movement:
- Один source IP генерирует Logon Type 3 на 5+ хостов за 10 минут - характерный паттерн credential spraying или массового перемещения
- Учётная запись впервые аутентифицируется на сервере, к которому не обращалась за 90 дней baseline - Valid Accounts (T1078)
- EventID 4648 (Explicit Credentials) - пользователь явно указывает другие credentials при подключении (
runas /netonlyили аналогичная техника) - EventID 1102 (Security Log Cleared) на хосте, который фигурировал как target в цепочке аномальных аутентификаций - Clear Windows Event Logs (T1070.001)
- Remote System Discovery (T1018): выполнение
net view,nltest /dclist:,dsquery,arp -aна скомпрометированном хосте перед следующим прыжком
Скомпрометированный легитимный хост - слепая зона SOC
Сценарий, который большинство SOC пропускают: lateral movement от хоста, который не был предметом начального алерта. Атакующий скомпрометировал рабочую станцию A, получил credentials, перешёл на хост B - и дальше все действия идут с B, которого нет в поле зрения. Хост A изолирован, тикет закрыт, а злоумышленник сидит на B и посмеивается.По данным Mandiant M-Trends 2025, медианное время обнаружения составило 11 дней в 2024 году. 57% организаций узнали об инциденте от внешней стороны. Атакующий провёл почти две недели в сети, перемещаясь между хостами, - внутренние средства его не заметили. С учётом оборотных штрафов за утечку персональных данных в российском законодательстве, каждый пропущенный день dwell time - это рост не только технического, но и финансового ущерба.
Методика поиска скомпрометированных легитимных хостов:
- Pivot от известного хоста. Все EventID 4624 Type 3 и Type 10, где source IP = скомпрометированный хост. Каждый destination - потенциальная точка присутствия.
- Рекурсивный обратный pivot. Для каждого найденного destination - куда дальше аутентифицировался этот хост. Минимум 2-3 уровня глубины. Да, это муторно. Но без этого вы найдёте только первый хоп.
- Аномалии Valid Accounts (T1078). Учётная запись атакующего могла аутентифицироваться на хостах вне обычного baseline. Запрос:
EventCode=4624 Account_Name=<compromised> | stats values(dest) | diff baseline_hosts. - Следы разведки (T1018). На каждом подозрительном хосте ищем выполнение
net view,nltest,arp -a- разведка предшествует следующему прыжку.
Detection-чеклист: корреляционные правила для lateral movement
Готовый набор правил для имплементации в SIEM как saved searches или scheduled alerts.| Правило | Источник | Логика корреляции | MITRE ID | Приоритет |
|---|---|---|---|---|
| Mass logon spray | Security 4624 Type 3 | Один src - 5+ уникальных dest за 10 мин | T1021.002 | Высокий |
| RC4 Kerberos anomaly | Security 4769 | Encryption Type 0x17 при AES-домене | T1550.003 | Высокий |
| Remote service install | System 7045 + Security 4624 | 7045 в пределах 10 сек после 4624 Type 3 с нетипичного src | T1021.002 | Критический |
| LSASS access chain | Sysmon 10 + Security 4624 | ProcessAccess к lsass, затем Type 3 от того же хоста | T1003.001 | Критический |
| Remote task creation | Security 4698 + 4624 | Task create + network logon от внешнего IP в окне 60 сек | T1053.005 | Высокий |
| Log wipe on target | Security 1102 | Очистка Security Log на хосте из scope инцидента | T1070.001 | Критический |
| First-time src-dst pair | Security 4624 | Logon от пары, отсутствующей в 90-дневном baseline | T1078 | Средний |
| Explicit cred switch | Security 4648 | Явная подстановка credentials, не совпадающих с текущим пользователем | T1078 | Средний |
| RDP from non-admin host | Security 4624 Type 10 | RDP-вход с рабочей станции, не входящей в список jump-серверов | T1021.001 | Средний |
Каждое правило требует baseline. Без baseline - поток ложных срабатываний, от которого аналитики L1 выгорают за неделю. Начните с
stats dc(dest) by src за 30 дней - это буквально один запрос.Из расследований lateral movement, в которых я участвовал за последние два года, в каждом втором проблема была не в отсутствии логов, а в том, что никто не знал, как выглядит «нормально». Аналитик видит EventID 4624 Type 3 от одного хоста к другому и не может сказать: это штатная работа бэкап-агента или атакующий переместился. IBM X-Force фиксирует, что в dark web ежедневно появляется порядка 6000 свежих пар учётных данных. При таком потоке украденных credentials единственный способ отличить легитимное использование от злоумышленного - знать, что было нормой вчера.
И вот в чём системная проблема: команды вкладываются в новые SIEM-лицензии, покупают threat intelligence фиды, нанимают threat hunter-ов - но не выделяют двух недель на построение baseline аутентификаций и типичных сетевых потоков. Без этого фундамента даже лучшие запросы из этой статьи утонут в шуме. Возьмите любое правило из таблицы выше, запустите без baseline - получите сотни срабатываний в день. Запустите с baseline - получите 5-10 событий, каждое из которых стоит внимания. Кто хочет разобрать Sigma-правила и корреляции под конкретный стек детекции lateral movement - тематический тред с playbook'ом по этой группе TTP есть на yg140.servegame.com.