Перейти к содержимому
GUARDCORE Инженерная база знаний Поиск

Инструменты

Настройка расширенного аудита Windows и Active Directory через групповые политики

РазделИнструменты
ФорматПрактический разбор
ЦиклGuardCore
Чтение12 минут

Кратко

Пошаговая настройка Advanced Audit Policy, регистрации командной строки, PowerShell Script Block Logging и проверки событий на Windows и контроллерах домена.

Практические статьи GuardCore

Пошаговая настройка базовой политики журналирования для рабочих станций, серверов и контроллеров домена.

Результат статьи

После выполнения инструкции в домене будет создана отдельная тестируемая GPO, включающая расширенную политику аудита Windows, регистрацию командной строки процессов и PowerShell Script Block Logging. Читатель сможет проверить применение политики, сформировать контрольные события и подготовить воспроизводимые доказательства настройки.

Место статьи в цикле

Предыдущая вводная статья объясняла, какие группы событий информационной безопасности следует учитывать при формировании перечня журналирования. Здесь начинается техническая реализация: настраивается один из основных источников событий – Windows.

Настройка централизованной передачи событий через WEF/WEC будет рассмотрена отдельно. На текущем этапе важно добиться корректного формирования событий на самих компьютерах.

Исходные условия

Инструкция рассчитана на доменную инфраструктуру Active Directory и применима к Windows Server 2019, 2022, 2025, Windows 10 и Windows 11. Названия отдельных пунктов в русской и английской локализациях могут отличаться, но логика и расположение настроек сохраняются.

Для безопасного внедрения используется отдельная тестовая организационная единица. Политика сначала создаётся без привязки, затем связывается только с тестовой OU и проверяется на одном сервере и одной рабочей станции. Контроллеры домена на первом этапе не затрагиваются.

Компонент Пример Назначение
Контроллер домена DC01 Редактирование GPO и последующая проверка доменных событий.
Тестовая OU OU=Audit-Test Изолированное применение политики.
Тестовый сервер SRV-AUDIT01 Проверка серверных событий.
Тестовая рабочая станция WS-AUDIT01 Проверка пользовательских событий.
Административная запись adm.audit Создание и изменение GPO.

Важно: не привязывайте новую политику сразу к корню домена или OU Domain Controllers. Ошибка в политике аудита может резко увеличить объём журнала Security и осложнить эксплуатацию контроллеров домена.

Какую структуру GPO использовать

Для лаборатории допустима одна политика. Для продуктивной среды лучше разделить настройки по ролям, поскольку контроллеры домена формируют дополнительные события Kerberos, управления учётными записями и изменений каталога.

  • GC-Audit-Windows-Baseline – общая политика для рабочих станций и серверов.
  • GC-Audit-Member-Servers – дополнительные настройки серверов и увеличенный размер журналов.
  • GC-Audit-Domain-Controllers – события Kerberos, управления доменными объектами и Directory Service Changes.

В этой инструкции создаётся GC-Audit-Windows-Baseline. После тестирования её можно скопировать и дополнить настройками для серверов и контроллеров домена.

Шаг 1. Создайте тестовую OU

  1. Откройте Active Directory Users and Computers.
  2. Создайте OU с именем Audit-Test.
  3. Переместите в неё один тестовый сервер и одну тестовую рабочую станцию.
  4. Убедитесь, что перенос не нарушает применение обязательных политик безопасности, обновлений и антивирусной защиты.

Если тестовый компьютер нельзя перемещать из текущей OU, допустимо создать отдельную вложенную OU и сохранить наследование существующих политик.

Шаг 2. Создайте GPO без привязки

  1. Откройте Group Policy Management командой gpmc.msc.
  2. Перейдите в Group Policy Objects.
  3. Создайте объект GC-Audit-Windows-Baseline.
  4. Не связывайте его с OU на этом этапе.
  5. Откройте созданный объект на редактирование.

Отдельный объект упрощает тестирование, версионирование и откат. Не следует смешивать аудит с политиками паролей, обновлений, сетевых настроек и прикладного ПО.

Шаг 3. Принудительно используйте расширенную политику аудита

Перейдите по пути:

Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options

Включите параметр:

Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings

Русское название обычно содержит формулировку о принудительном применении параметров подкатегорий политики аудита. Значение должно быть Enabled.

Эта настройка предотвращает ситуацию, когда старая базовая политика аудита перезаписывает более точные подкатегории Advanced Audit Policy.

Шаг 4. Настройте базовые подкатегории аудита

Перейдите по пути:

Computer Configuration → Policies → Windows Settings → Security Settings → Advanced Audit Policy Configuration → Audit Policies

Ниже приведён стартовый набор для рабочих станций и серверов. Он не является универсальным эталоном: после измерения объёма часть настроек можно уточнить по ролям.

Категория Подкатегория Рекомендуемое значение Что даёт
Account Logon Credential Validation Success, Failure Проверка учётных данных, включая NTLM.
Kerberos Authentication Service Success, Failure – для DC Выдача TGT и ошибки Kerberos.
Kerberos Service Ticket Operations Success, Failure – для DC Операции с сервисными билетами.
Other Account Logon Events Success, Failure Дополнительные события проверки учётных данных.
Account Management User Account Management Success, Failure Создание, изменение, блокировка и удаление пользователей.
Computer Account Management Success, Failure Изменение учётных записей компьютеров.
Security Group Management Success, Failure Изменения security-групп и членства.
Application Group Management Success, Failure Управление прикладными группами.
Other Account Management Events Success, Failure Прочие значимые операции с учётными объектами.
Logon/Logoff Logon Success, Failure Интерактивные, сетевые и удалённые входы.
Logoff Success Завершение сеанса.
Account Lockout Failure Попытки входа заблокированной записью.
Special Logon Success Вход с административными привилегиями.
Group Membership Success Состав групп в токене входа.
Other Logon/Logoff Events Success, Failure Дополнительные события сеансов и удалённого доступа.
Detailed Tracking Process Creation Success Создание процессов, Event ID 4688.
Process Termination Success – при необходимости Завершение процессов; увеличивает объём.
Plug and Play Events Success Подключение устройств.
Policy Change Audit Policy Change Success, Failure Изменение параметров аудита.
Authentication Policy Change Success Изменение параметров аутентификации.
Authorization Policy Change Success Изменение правил полномочий.
MPSSVC Rule-Level Policy Change Success, Failure Изменения Windows Defender Firewall.
Filtering Platform Policy Change Success, Failure Изменения платформы фильтрации.
Privilege Use Sensitive Privilege Use Success, Failure Использование чувствительных системных привилегий.
System Security State Change Success Изменение состояния безопасности ОС.
Security System Extension Success, Failure Установка служб и расширений подсистемы безопасности.
System Integrity Success, Failure Ошибки целостности и критичных компонентов.
Other System Events Success, Failure Прочие значимые системные события.
Object Access Removable Storage Success, Failure Доступ к съёмным носителям.
File Share Success, Failure – для файловых серверов Обращения к сетевым ресурсам.
Other Object Access Events Success, Failure В том числе события заданий планировщика.

Не включайте без подготовки: File System, Registry, Directory Service Access и Detailed File Share могут создавать большой поток событий. Они имеют смысл только вместе с правильно настроенными SACL и после тестирования на конкретном сервере.

Шаг 5. Включите командную строку в событии создания процесса

Перейдите по пути:

Computer Configuration → Policies → Administrative Templates → System → Audit Process Creation

Включите:

Include command line in process creation events

После применения в событии 4688 появится поле Process Command Line. Без этой настройки можно увидеть запуск powershell.exe или cmd.exe, но нельзя понять, какая команда была передана процессу.

Командная строка записывается открытым текстом. Перед внедрением необходимо проверить скрипты и задания, чтобы исключить передачу паролей, токенов и других секретов в аргументах.

Шаг 6. Включите PowerShell Script Block Logging

Перейдите по пути:

Computer Configuration → Policies → Administrative Templates → Windows Components → Windows PowerShell

Включите:

  • Turn on PowerShell Script Block Logging – Enabled.
  • Log script block invocation start / stop events – не включать на первом этапе из-за высокого объёма.
  • Turn on Module Logging – включать после определения перечня модулей либо использовать * только в тестовой среде.
  • Turn on PowerShell Transcription – применять отдельно после определения защищённого каталога и прав доступа.

Основное событие Script Block Logging – 4104 в журнале:

Applications and Services Logs → Microsoft → Windows → PowerShell → Operational

Содержимое скриптов также может включать чувствительные данные. Доступ к журналу PowerShell и центральному хранилищу должен быть ограничен.

Шаг 7. Увеличьте размер журнала Security

Перейдите по пути:

Computer Configuration → Policies → Administrative Templates → Windows Components → Event Log Service → Security

Включите Specify the maximum log file size (KB). Для стартовой конфигурации можно использовать:

Тип узла Стартовое значение Комментарий
Рабочая станция 262144 KB 256 MB; уточнить по реальному потоку.
Сервер 524288 KB 512 MB; для нагруженных ролей может потребоваться больше.
Контроллер домена 524288–1048576 KB После измерения потока и настройки WEF.

Microsoft указывает для актуальной базовой конфигурации Windows Server 2025 размер Security не менее 192 MB. Более высокие значения в примере выбраны как практический запас, но должны проверяться по свободному месту и скорости генерации событий.

Шаг 8. Свяжите GPO с тестовой OU

  1. В Group Policy Management выберите OU Audit-Test.
  2. Выполните Link an Existing GPO.
  3. Выберите GC-Audit-Windows-Baseline.
  4. Убедитесь, что Link Enabled включён.
  5. Не применяйте Enforced и не отключайте наследование без отдельной причины.

После привязки подождите обычного обновления политик либо выполните принудительное обновление на тестовых узлах.

Шаг 9. Примените и проверьте политику

На тестовом компьютере откройте командную строку или PowerShell от имени администратора:

gpupdate /force
gpresult /h C:\Temp\gpresult-audit.html
auditpol /get /category:* /r > C:\Temp\auditpol-current.csv

Проверьте:

  • GPO присутствует в разделе Applied Group Policy Objects отчёта gpresult;
  • в выгрузке auditpol отображаются настроенные Success и Failure;
  • команда auditpol /get /subcategory:"Process Creation" показывает Success;
  • параметр командной строки присутствует в реестре политики;
  • журнал Security имеет установленный размер;
  • журнал PowerShell/Operational включён и доступен.

Названия подкатегорий в команде auditpol зависят от языка ОС. Для локализованной системы сначала выполните auditpol /list /subcategory:* и используйте отображаемое название.

Шаг 10. Сформируйте контрольные события

Проверка должна подтверждать, что настройка приводит к созданию ожидаемых событий. Выполняйте действия только на тестовых объектах.

Контрольное действие Ожидаемое событие Где искать
Выполнить успешный вход под тестовым пользователем. 4624; при повышенных правах также 4672. Security на целевом компьютере.
Трижды указать неверный пароль тестовой записи. 4625; дополнительные события на DC зависят от протокола. Security на целевом узле и контроллере домена.
Запустить cmd.exe /c whoami /all. 4688 с заполненным Process Command Line. Security на компьютере.
Выполнить PowerShell-команду Get-Process | Select-Object -First 3. 4104. Microsoft-Windows-PowerShell/Operational.
Создать тестового доменного пользователя. 4720. Security на контроллере домена.
Добавить пользователя в тестовую security-группу. 4728, 4732 или 4756 – зависит от области группы. Security на контроллере домена.
Создать тестовое задание планировщика. 4698. Security на компьютере.
Изменить одну подкатегорию аудита через тестовую GPO и применить. 4719 и события обработки политики. Security на компьютере.

Не тестируйте на продуктивных администраторах. Создайте отдельного пользователя и отдельную группу, зафиксируйте время начала проверки и удалите тестовые объекты после завершения.

Как быстро найти события

В Event Viewer можно использовать фильтр по идентификаторам:

4624,4625,4672,4688,4698,4719,4720,4728,4732,4756

Для проверки через PowerShell:

$ids = 4624,4625,4672,4688,4698,4719,4720,4728,4732,4756

Get-WinEvent -FilterHashtable @{
    LogName   = 'Security'
    Id        = $ids
    StartTime = (Get-Date).AddHours(-2)
} | Select-Object TimeCreated, Id, ProviderName, Message

Для PowerShell Script Block Logging используйте отдельный журнал:

Get-WinEvent -FilterHashtable @{
    LogName   = 'Microsoft-Windows-PowerShell/Operational'
    Id        = 4104
    StartTime = (Get-Date).AddHours(-2)
} | Select-Object TimeCreated, Id, Message

Как перейти к продуктивному внедрению

  1. Наблюдайте 3–7 дней. Оцените суточный объём Security и PowerShell/Operational.
  2. Проверьте приложения. Убедитесь, что в командные строки и скрипты не попадают секреты.
  3. Разделите роли. Создайте отдельные политики для рабочих станций, серверов и DC.
  4. Настройте централизованный сбор. Локальные журналы не должны быть единственной копией событий.
  5. Расширяйте охват поэтапно. Сначала пилотная OU, затем одно подразделение и только после этого весь домен.
  6. Зафиксируйте версию. Сохраните отчёт GPO и дату утверждения базовой конфигурации.

Контроллеры домена следует подключать после проверки базовой политики. Для них дополнительно включаются Kerberos Authentication Service, Kerberos Service Ticket Operations, Directory Service Changes и события управления доменными объектами.

Типичные ошибки

  • Используется старая базовая политика аудита. Настройки подкатегорий частично перезаписываются и результат отличается на разных узлах.
  • GPO сразу привязана ко всему домену. Ошибка обнаруживается уже после роста журналов на сотнях компьютеров.
  • Включён Process Creation, но не командная строка. Событие 4688 существует, однако не показывает фактическую команду.
  • Командные строки включены без проверки секретов. В Security попадают пароли и токены из устаревших сценариев.
  • Включены File System и Registry без SACL. События не появляются либо создают непредсказуемый поток после случайной настройки аудита объектов.
  • Установлен маленький размер Security. Журнал перезаписывается за несколько часов до централизованной передачи.
  • Проверяется только интерфейс GPO. Не выполняются gpresult, auditpol и контрольные действия.
  • PowerShell Logging включён, но журнал не собирается. Важные события остаются только локально.
  • Одинаковая политика применяется ко всем ролям. Рабочие станции получают лишние события DC, а контроллеры домена – недостаточный аудит каталога.

Итоговый чек-лист

  • Создана отдельная GPO для аудита.
  • Настройки сначала применены только к тестовой OU.
  • Расширенные подкатегории имеют приоритет над базовой политикой.
  • Настроены входы, учётные записи, группы, процессы, изменения политик, привилегии и системные события.
  • В событии 4688 присутствует командная строка.
  • В PowerShell/Operational формируется событие 4104.
  • Размер журнала Security достаточен для пилотного объёма.
  • Применение подтверждено через gpresult и auditpol.
  • Контрольные события созданы и найдены в журналах.
  • Проверено отсутствие секретов в командных строках и PowerShell-событиях.
  • Подготовлены скриншоты, CSV, HTML и EVTX.
  • Определён план поэтапного внедрения и централизованного сбора.

Вывод

Расширенная политика аудита Windows должна внедряться как управляемая конфигурация, а не как набор случайно включённых галочек. Отдельная GPO, тестовая OU, измерение объёма и контрольные действия позволяют получить предсказуемый результат без риска перегрузить продуктивную инфраструктуру.

Минимальная полезная конфигурация должна показывать входы, изменения учётных записей и групп, запуск процессов, использование привилегий, изменение политик и состояние подсистемы безопасности. Командная строка в событии 4688 и Script Block Logging дают необходимый контекст для расследования действий через штатные средства Windows.

Следующим шагом станет централизованная передача этих событий на Windows Event Collector через WEF/WEC. До её настройки необходимо убедиться, что нужные события стабильно создаются на источниках и не содержат неконтролируемых чувствительных данных.

Источники

  1. Microsoft: Advanced Audit Policy Configuration.
  2. Microsoft: System Audit Policy recommendations.
  3. Microsoft: Command line process auditing.
  4. Microsoft: PowerShell logging.
  5. Microsoft: auditpol.
  6. Microsoft: Windows Server 2025 security baseline.
Редакция GuardCore

Материал подготовлен на основе указанных в тексте нормативных источников и практических оснований. При существенном обновлении дата актуализации отображается рядом с датой публикации.

2 комментариев

  1. Сильная практическая статья — особенно ценно, что автор настаивает на отдельной GPO, тестовой OU и принудительном приоритете расширенных подкатегорий над базовой политикой, потому что без этого половина настроек молча перезаписывается и результат на разных узлах расходится. С одним тезисом поспорю: раздел про «локальные журналы не должны быть единственной копией» справедлив, но не отменяет того, что до настройки WEF нужно быстро уметь читать события прямо на хосте — и вот тут ручной перебор Event ID в Event Viewer плохо масштабируется. Как раз для этого сгодится локальный анализатор вроде SymSentinel: он читает Security, PowerShell и Sysmon за один проход, сам поднимает brute-force, password spraying и цепочки Failure → Success, ловит индикаторы Mimikatz и BloodHound и проверяет состояние каналов Event Log — без облака и агентов

  2. Согласен. При расследовании инцидента программы такого класса действительно заметно упрощают локальный анализ журналов.
    Я на них отдельно не акцентировал внимание, поскольку пока рассматриваю прежде всего выполнение требований к СЗИ в информационных системах, где обрабатывается информация, распространение и (или) предоставление которой ограничено.
    На практике мне лишь в единичных случаях встречались небольшие ИС — один или несколько АРМ и, например, один сервер, — где развертывание полноценной инфраструктуры централизованного сбора событий ИБ было бы избыточным. В таких случаях, если это допускается применимыми требованиями, централизованный порядок сбора и хранения фиксируется в ЛПА, а журналы периодически выгружаются в единое место вручную либо скриптом.
    Так что подобные анализаторы в «аптечку» однозначно кладём: как инструмент быстрого локального анализа и первичного расследования они вполне полезны. В обзорах требований к СЗИ я просто не выделял этот класс инструментов отдельно, поскольку он относится скорее к практике эксплуатации и реагирования на инциденты, чем к реализации самих требований защиты.

Обсуждение материала

Дополните материал практическим опытом или сообщите о неточности. Комментарий появится после проверки.

Форма защищена от автоматических публикаций. Все комментарии проходят модерацию.