Event ID 4689: Процесс завершен (Process Termination) - Аудит
Архитектура аудита процессов и завершения работы
Событие 4689 логируется в журнале Security, когда процесс операционной системы или приложение завершает свою работу. Это парное (антонимичное) событие для >4688 (Process Creation). Анализ 4689 критически важен для расчета точного времени (продолжительности) работы скриптов и выявления аварийных падений вредоносного ПО (Malware).
Таблица кодов завершения (Exit Status)
Самое полезное поле в событии 4689 — это Статус завершения (Exit Status). Оно показывает, как именно "умер" процесс:
| Exit Status (HEX) | Что означает | Вывод для инженера |
|---|---|---|
0x0 | Успешное завершение. | Процесс отработал штатно (сценарий выполнен). |
0x1 | Завершен с ошибкой. | Скрипт или программа прервались логической ошибкой. |
0xC0000005 | Access Violation. | Процесс упал с крашем (попытка чтения защищенной памяти). Часто так падают эксплойты. |
0xC000013A | STATUS_CONTROL_C_EXIT | Пользователь нажал Ctrl+C в консоли или убил процесс через Task Manager. |
Сценарии диагностики и форензики (Forensics)
Сценарий 1: Вычисление времени работы подозрительного скрипта
Связав события 4688 (Запуск) и 4689 (Завершение) по уникальному Process ID (PID), можно понять, сколько времени работал скрипт шифровальщика.
# Поиск завершенных процессов PowerShell и их статус-кодов
Get-WinEvent -FilterHashtable @{LogName="Security"; ID=4689; StartTime=(Get-Date).AddDays(-1)} |
Where-Object {$_.Properties[5].Value -match "powershell.exe"} |
Select-Object TimeCreated,
@{N="PID";E={$_.Properties[4].Value}},
@{N="ExitCode";E={$_.Properties[6].Value}}Сценарий 2: Поиск "крашей" скрытого ПО (Malware)
Вредоносное ПО часто работает нестабильно. Если процесс завершается со статусом 0xC0000005 или 0xC0000409 (Stack Buffer Overrun), это повод проверить этот EXE файл антивирусом.
Типовые ошибки администраторов
- Попытка найти аргументы командной строки в 4689: Событие 4689 содержит только имя файла и PID. Полные аргументы командной строки (ключи запуска) хранятся ТОЛЬКО в событии запуска 4688.
События процессов 4688/4689 генерируют миллионы записей в сутки. Делегируйте ИБ-мониторинг экспертам: мы настроим Windows Event Forwarding (WEF), внедрим ELK/Wazuh и автоматизируем поиск аномалий.
Частые вопросы (FAQ)
Включен ли аудит 4689 по умолчанию?
Нет. Его нужно включить в GPO: 'Аудит завершения процессов' (Audit Process Termination) = Success.
Показывает ли 4689, какой именно пользователь убил процесс?
Нет, 4689 показывает учетную запись, под которой работал сам завершенный процесс. Чтобы узнать, кто именно инициировал команду 'Taskkill', нужно искать событие 4656 (Handle Request) к этому процессу.
Почему Exit Status записан в десятичном виде (например, 259)?
Windows Event Viewer часто отображает код в формате Decimal. 259 в десятичной системе — это 0x103 (STILL_ACTIVE). Процесс еще не завершился до конца.
Полезно ли событие 4689 для аудита серверов SQL?
Да, если процесс sqlservr.exe генерирует 4689, значит база данных полностью остановилась (аварийно или штатно).