Event ID 4688: Создание нового процесса (Process Creation) - Аудит ИБ
Архитектура аудита процессов (Process Tracking)
Событие 4688 фиксирует запуск любой программы (создание процесса) в системе. Это абсолютный фундамент любой системы безопасности (SIEM/EDR). С его помощью выявляют запуск шифровальщиков, выполнение вредоносных скриптов (powershell.exe) и активность хакеров. По умолчанию этот аудит выключен, так как генерирует тысячи событий в минуту.
Ключевые атрибуты события 4688
| Имя поля (Attribute) | Что означает для аналитика ИБ |
|---|---|
| New Process Name | Полный путь к запущенному исполняемому файлу (например, C:\Windows\System32\cmd.exe). |
| Creator Process Name | Родительский процесс (кто именно запустил эту программу). Ключевой маркер аномалий. |
| Process Command Line | Точные аргументы запуска. Включается отдельной политикой. Показывает, КАКОЙ ИМЕННО скрипт был запущен (например, powershell.exe -enc JABz...). |
| Token Elevation Type | Был ли процесс запущен от имени Администратора (UAC Elevation). Значение Type 1 (Full) означает полные права. |
Пошаговое дерево решений (Настройка и Threat Hunting)
Сценарий 1: Включение аудита процессов и командной строки (GPO)
Без включения Command Line аудит 4688 практически бесполезен, так как вы увидите только запуск powershell.exe, но не увидите, что именно он выполнил.
- Откройте
gpmc.mscи создайте политику для серверов/ПК. - Перейдите:
Конфигурация компьютера -> Параметры безопасности -> Расширенная политика аудита -> Подробное отслеживание (Detailed Tracking). - Включите Аудит создания процессов (Audit Process Creation) для Успехов (Success).
- Перейдите:
Конфигурация компьютера -> Адм. шаблоны -> Система -> Аудит создания процессов. - Включите Включать командную строку в события создания процессов (Include command line in process creation events).
- Обновите политики:
gpupdate /force.
Сценарий 2: Threat Hunting (Поиск подозрительных команд)
Атакующие используют обфускацию (Base64) в PowerShell, чтобы скрыть скачивание вирусов (Payload).
Скрипт поиска вредоносных аргументов PowerShell:# Поиск подозрительных запусков PowerShell с шифрованием или обходом политик
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4688} |
Where-Object {$_.Properties[8].Value -match "-enc|-ExecutionPolicy Bypass|-WindowStyle Hidden|-nop"} |
Select-Object TimeCreated,
@{N="Creator";E={$_.Properties[13].Value}},
@{N="CommandLine";E={$_.Properties[8].Value}} | Format-ListСценарий 3: Выявление аномалий родительских процессов (Parent-Child)
В Windows есть строгая иерархия процессов. Если Microsoft Word (winword.exe) запускает Командную строку (cmd.exe), это 100% срабатывание макроса-вируса (Phishing/Malware). Настройте алерты в SIEM на связки winword.exe -> cmd.exe, excel.exe -> powershell.exe, w3wp.exe -> cmd.exe (признак Web-Shell на IIS).
Типовые ошибки администраторов
- Отказ от сбора логов 4688: Журнал Security перезапишется за 10 минут, если размер по умолчанию (20 МБ). При включении 4688 вы обязаны увеличить размер журнала Security минимум до 1-4 ГБ или настроить отправку логов на центральный сервер (Windows Event Forwarding - WEF).
Внедрение EDR и сбор логов процессов требует глубокой ИБ-квалификации. Передайте сервера на аутсорсинг ИБ-инженерам ITSTM: мы защитим Active Directory, настроим SIEM, закроем уязвимости 'нулевого дня' и будем мониторить безопасность сети 24/7.
Частые вопросы (FAQ)
Почему поле Process Command Line пустое, хотя аудит процессов включен?
По умолчанию ОС скрывает командную строку, так как администраторы могут передавать в ней пароли (например, `net use * /user:admin password`). Для отображения аргументов вы обязаны включить вторую политику 'Include command line in process creation events'.
Можно ли фильтровать спам от системных программ (svchost.exe)?
Средствами Windows — нет, ОС пишет всё. Фильтрацию легитимных системных процессов (whitelisting) нужно настраивать на уровне агентов SIEM (например, Winlogbeat или Splunk Universal Forwarder) перед отправкой логов по сети.