Практические статьи 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
- Откройте Active Directory Users and Computers.
- Создайте OU с именем Audit-Test.
- Переместите в неё один тестовый сервер и одну тестовую рабочую станцию.
- Убедитесь, что перенос не нарушает применение обязательных политик безопасности, обновлений и антивирусной защиты.
Если тестовый компьютер нельзя перемещать из текущей OU, допустимо создать отдельную вложенную OU и сохранить наследование существующих политик.
Шаг 2. Создайте GPO без привязки
- Откройте Group Policy Management командой
gpmc.msc. - Перейдите в Group Policy Objects.
- Создайте объект GC-Audit-Windows-Baseline.
- Не связывайте его с OU на этом этапе.
- Откройте созданный объект на редактирование.
Отдельный объект упрощает тестирование, версионирование и откат. Не следует смешивать аудит с политиками паролей, обновлений, сетевых настроек и прикладного ПО.
Шаг 3. Принудительно используйте расширенную политику аудита
Перейдите по пути:
Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security OptionsВключите параметр:
Русское название обычно содержит формулировку о принудительном применении параметров подкатегорий политики аудита. Значение должно быть 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Включите:
После применения в событии 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
- В Group Policy Management выберите OU Audit-Test.
- Выполните Link an Existing GPO.
- Выберите GC-Audit-Windows-Baseline.
- Убедитесь, что Link Enabled включён.
- Не применяйте 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
Как перейти к продуктивному внедрению
- Наблюдайте 3–7 дней. Оцените суточный объём Security и PowerShell/Operational.
- Проверьте приложения. Убедитесь, что в командные строки и скрипты не попадают секреты.
- Разделите роли. Создайте отдельные политики для рабочих станций, серверов и DC.
- Настройте централизованный сбор. Локальные журналы не должны быть единственной копией событий.
- Расширяйте охват поэтапно. Сначала пилотная OU, затем одно подразделение и только после этого весь домен.
- Зафиксируйте версию. Сохраните отчёт 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. До её настройки необходимо убедиться, что нужные события стабильно создаются на источниках и не содержат неконтролируемых чувствительных данных.
Сильная практическая статья — особенно ценно, что автор настаивает на отдельной GPO, тестовой OU и принудительном приоритете расширенных подкатегорий над базовой политикой, потому что без этого половина настроек молча перезаписывается и результат на разных узлах расходится. С одним тезисом поспорю: раздел про «локальные журналы не должны быть единственной копией» справедлив, но не отменяет того, что до настройки WEF нужно быстро уметь читать события прямо на хосте — и вот тут ручной перебор Event ID в Event Viewer плохо масштабируется. Как раз для этого сгодится локальный анализатор вроде SymSentinel: он читает Security, PowerShell и Sysmon за один проход, сам поднимает brute-force, password spraying и цепочки Failure → Success, ловит индикаторы Mimikatz и BloodHound и проверяет состояние каналов Event Log — без облака и агентов
Согласен. При расследовании инцидента программы такого класса действительно заметно упрощают локальный анализ журналов.
Я на них отдельно не акцентировал внимание, поскольку пока рассматриваю прежде всего выполнение требований к СЗИ в информационных системах, где обрабатывается информация, распространение и (или) предоставление которой ограничено.
На практике мне лишь в единичных случаях встречались небольшие ИС — один или несколько АРМ и, например, один сервер, — где развертывание полноценной инфраструктуры централизованного сбора событий ИБ было бы избыточным. В таких случаях, если это допускается применимыми требованиями, централизованный порядок сбора и хранения фиксируется в ЛПА, а журналы периодически выгружаются в единое место вручную либо скриптом.
Так что подобные анализаторы в «аптечку» однозначно кладём: как инструмент быстрого локального анализа и первичного расследования они вполне полезны. В обзорах требований к СЗИ я просто не выделял этот класс инструментов отдельно, поскольку он относится скорее к практике эксплуатации и реагирования на инциденты, чем к реализации самих требований защиты.