APT29 (Nobelium) использует методы обхода Windows Defender (отключение защиты, модификация политик, обфускация payload'ов), что затрудняет детекцию по стандартным событиям.
Причины:
- Использование легитимных инструментов (PowerShell, WMI, BITSAdmin) для загрузки и выполнения.
- Манипуляции с реестром для отключения Defender (`DisableAntiSpyware`, `DisableRealtimeMonitoring`).
- Применение обфусцированных скриптов и DLL-инъекций, не дающих статическую сигнатуру.
- Очистка логов Defender через `MpCmdRun.exe -RemoveDefinitions -All` или удаление событий.
Решение:
1. Включить расширенное логирование (через GPO или PowerShell):
powershell
Set-MpPreference -DisableRealtimeMonitoring $false -EnableNetworkProtection Enabled -PUAProtection Enabled
Set-MpPreference -DisableBehaviorMonitoring $false -DisableBlockAtFirstSeen $false
Set-MpPreference -SignatureFallbackToCaching $false -EnableFullScanOnMappedDrives $trueВключить аудит событий Windows: `Advanced Audit Policy -> Object Access -> Audit Detailed File Share`.
2. Мониторить критичные Event ID (Windows Defender/Operational и System):
- 1116/1117/1119 – обнаружение и исправление угроз. Анализировать `Detection ID`, `ProcessName`, `FilePath`.
- 5001 – отключение защиты в реальном времени (индикатор атаки).
- 5007 – изменение конфигурации Defender (например, добавление папки в исключения).
- 1124 – карантин файлов – сопоставлять с хэшами известных бэкдоров APT29 (SIESTAGRAPH, TEARDROP).
- 4688 (Security) – создание процессов: искать `MpCmdRun.exe -RemoveDefinitions`, `powershell -enc `, `bitsadmin /transfer`.
- 4104 (PowerShell ScriptBlock) – блоки с обфускацией, обращением к C2-доменам APT29 (например, `vtime.`, `azureedge.`).
3. Пример парсинга логов PowerShell (события 4104 с признаками APT29):
powershell
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; ID=4104} |
Where-Object { $_.Message -match "(Add-Type|Invoke-Expression|Start-Process).(http|byte[])" } |
Select-Object TimeCreated, @{n='Script'; e={$_.Message}} |
Export-Csv -Path apt29_ps_scripts.csv -NoTypeInformation4. Поиск отключения Defender через реестр (событие 4657 Security – изменение ключа):
powershell
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4657} |
Where-Object { $_.Message -match "HKLM\\SOFTWARE\\Policies\\Microsoft\\Windows Defender\\DisableAntiSpyware" }5. Сопоставление сетевых индикаторов: в логах Windows Defender (событие 1125) и Event ID 5156 (Security) – искать дропперы, загружающие файлы с IP/доменов, ассоциированных с APT29 (список: `redcanary.com/threat-detection-report/apt29`, MITRE ATT&CK G0016).
6. Автоматизированный анализ** с помощью `LogParser`, `Kusto` (Azure Sentinel) или `Sigma`-правил (пример: `process_creation_win_mimikatz_commandline.yml` адаптировать под APT29).