Журналы событий 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 — это защита и от зачистки, и для доказательной базы.
Проверьте себя
1. Какой Event ID в журнале Security означает успешный вход в систему?
A4625
B4624
C1102
D4688
2. О чём чаще всего сигнализирует Event ID 1102?
AО плановом обновлении Windows
BОб очистке журнала безопасности — типичной попытке замести следы
CОб успешном входе администратора
DО подключении USB-устройства
3. Почему при корреляции журналов с разных машин их метки времени приводят к UTC?
AUTC ускоряет чтение EVTX
BЧасовые пояса и расхождение часов машин искажают порядок событий; единая шкала UTC даёт корректный таймлайн
CВ UTC журналы занимают меньше места
DТолько в UTC видны Event ID