Журналы событий Windows
Журналы событий Windows (EVTX) — это официальная летопись системы: входы, запуски процессов, изменения служб. Для расследования это основа реконструкции «кто, что и когда».
Windows Event Log (EVTX) — структурированные журналы событий ОС в бинарном формате, куда система и приложения пишут записи о значимых действиях: аутентификации, процессах, ошибках, изменениях конфигурации.
Разбираем журналы как источник доказательств в рамках легального расследования: на своих системах, по поручению или в лаборатории. Сбор и анализ логов чужих машин без правовых оснований недопустим.
Зачем это знать следователю
Журналы отвечают на ключевые вопросы инцидента: кто вошёл, откуда, что запустил и в какой момент. В отличие от артефактов, которые система пишет «между делом», EVTX — целенаправленная запись с точными метками времени, что делает их незаменимыми для корреляции событий и построения доказательной хронологии.
Есть и важная оговорка, которую профессионал держит в голове: журнал отражает только то, что включён аудит для записи. Если расширенное протоколирование не настроено, многих событий (например, командной строки запускаемых процессов) в логах просто не окажется — отсутствие записи не доказывает отсутствие действия. Поэтому эксперт всегда сверяется с политикой аудита системы и не делает поспешных выводов «раз в логе пусто, ничего и не было». Эта же мысль — мостик к обороне: чем полнее настроен аудит до инцидента, тем больше у следствия материала после; настраивать логирование задним числом поздно.
Где лежат и как устроены
Файлы .evtx хранятся в C:\Windows\System32\winevt\Logs\. Основные журналы:
| Журнал | Что внутри |
Security.evtx | входы/выходы, изменения прав, аудит доступа |
System.evtx | службы, драйверы, перезагрузки |
Application.evtx | события приложений и ошибки |
| Microsoft-Windows-PowerShell/Operational | выполнение PowerShell-скриптов |
Каждая запись содержит Event ID (числовой код типа события), время, источник, уровень и параметры (имя пользователя, IP, путь к процессу). Внутри EVTX устроен как набор «чанков» с бинарно-XML записями.
Ключевые события входа и процессов
Несколько кодов из журнала Security, которые читает каждый следователь:
| Event ID | Смысл |
| 4624 | успешный вход в систему |
| 4625 | неудачный вход (ошибка пароля) |
| 4634 / 4647 | выход / завершение сеанса |
| 4672 | вход с административными привилегиями |
| 4688 | создан новый процесс |
| 4720 / 4724 | создана учётная запись / сброшен пароль |
Важная деталь события 4624 — поле Logon Type: тип 2 (интерактивный, за клавиатурой), тип 3 (сетевой, доступ к ресурсу), тип 10 (удалённый рабочий стол, RDP). Серия 4625 (неудачных входов) с разных адресов, за которой следует 4624, — классический признак подбора пароля.
Обнаружение подозрительной активности
Журналы помогают увидеть то, что атакующий хотел бы скрыть. Тревожные паттерны:
- Много 4625 подряд → подбор пароля (brute force).
- Внезапный 4720 (новая учётка) и 4732 (добавление в группу администраторов) ночью → закрепление атакующего.
- Event ID 1102 «журнал безопасности очищен» → почти всегда попытка замести следы.
- 4688 с запуском
powershell.exeс подозрительными аргументами → возможное выполнение вредоносного скрипта.
Корреляция по времени
Сила метода — в сопоставлении разных журналов и источников по единой шкале времени. Эксперт сводит события Security (вход 4624), System (запуск службы) и PowerShell (выполнение скрипта) в один таймлайн и видит цепочку атаки. Важная тонкость: метки времени бывают в локальном поясе или в UTC, а часы машин расходятся — поэтому при корреляции всё приводят к UTC.
from datetime import datetime, timedelta, timezone
# Логи разных машин: приводим к UTC, чтобы корректно сопоставить.
local_time = datetime(2026, 6, 20, 17, 3, 11) # местное (UTC+3)
offset = timedelta(hours=3)
utc_time = (local_time - offset).replace(tzinfo=timezone.utc)
print("UTC:", utc_time.isoformat())
# Окно атаки: первый неудачный вход и успешный — разница во времени.
first_fail = datetime(2026, 6, 20, 14, 1, 0, tzinfo=timezone.utc)
success = datetime(2026, 6, 20, 14, 3, 11, tzinfo=timezone.utc)
print("подбор занял, c:", int((success - first_fail).total_seconds()))
Вывод:
UTC: 2026-06-20T14:03:11+00:00 подбор занял, c: 131
Как это работает под капотом
Служба EventLog принимает записи от провайдеров (через ETW — Event Tracing for Windows) и складывает их в .evtx блоками-чанками; каждая запись — это бинарный XML по заданному провайдером шаблону. У файла есть «потолок» размера: при переполнении старые события могут затираться по кольцу. Поэтому объём журналов и политику ротации эксперт учитывает заранее — а парсеры (например, библиотека python-evtx или PowerShell Get-WinEvent) умеют читать даже частично повреждённые файлы и поднимать удалённые записи из «хвоста».
Сохранение доказательств
Журналы — лакомая цель для зачистки (Event ID 1102 как раз про это), поэтому их фиксируют как можно раньше: экспортируют .evtx из образа или с живой системы, считают хэш и заносят в цепочку хранения. Сам факт очистки журнала — тоже доказательство (косвенное), а централизованно собранные на сервер логи защищены от локального удаления и служат независимой копией.
Как защититься
Мышление защитника опирается на те же события:
- Включите расширенный аудит (в т.ч. 4688 с командной строкой процесса и логирование блоков PowerShell).
- Пересылайте журналы в централизованный сборщик/SIEM — атакующий не сотрёт то, что уже ушло с машины.
- Настройте оповещения на 1102 (очистка журнала), всплески 4625 и создание новых админ-учёток.
- Увеличьте размер журналов и срок хранения — коротких логов не хватает для расследования.
Итоги
- EVTX-журналы (Security/System/Application и др.) — целенаправленная летопись событий с точными метками времени.
- Ключевые Event ID: 4624/4625 (вход удачный/нет), 4672 (админ-вход), 4688 (новый процесс), 1102 (очистка журнала).
- Logon Type уточняет способ входа (интерактивный, сетевой, RDP); серии 4625 выдают подбор пароля.
- Корреляция нескольких журналов по UTC выстраивает цепочку атаки.
- Журналы фиксируют рано, хэшируют и дублируют в SIEM — это защита и от зачистки, и для доказательной базы.