Event ID 4738: Учетная запись пользователя изменена - Аудит AD
Архитектура аудита учетных записей (Account Management)
Событие 4738 логируется в журнале Security при любом изменении атрибутов учетной записи пользователя в Active Directory или локальной базе SAM. Это событие — главный инструмент контроля за действиями администраторов (IAM). Оно фиксирует: смену пароля, изменение сроков действия, добавление SPN-записей, изменение профиля RDS и скриптов входа.
Таблица критических атрибутов 4738
Чтобы понять, что именно изменилось, нужно изучить текст события. Измененные атрибуты содержат новые значения, а нетронутые — прочерк (-).
| Имя атрибута в логе | Критичность для безопасности |
|---|---|
| User Account Control (UAC) | Критическая. Сюда входят флаги 'Account Disabled', 'Password Never Expires', 'Smartcard Required'. Изменение UAC меняет базовую безопасность объекта. |
| Service Principal Names (SPN) | Высокая. Добавление SPN делает учетную запись уязвимой для атаки Kerberoasting (оффлайн перебор пароля). |
| Account Expires | Средняя. Продление срока жизни аккаунта уволенного или временного сотрудника. |
| Logon Hours | Средняя. Изменение разрешенных часов входа. |
Пошаговое дерево решений (Мониторинг изменений)
Сценарий 1: Аудит модификаций учетных записей (SIEM)
Изменение атрибутов топ-менеджеров или сервисных учеток должно сверяться с заявками в ITSM-системе. Особое внимание — снятию галочек безопасности.
Скрипт мониторинга изменений (PowerShell):# Поиск изменений атрибутов (исключаем системные службы и машинные учетки)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4738; StartTime=(Get-Date).AddDays(-1)} |
Where-Object {$_.Properties[4].Value -notmatch 'SYSTEM|\$'} |
Select-Object TimeCreated,
@{N='TargetUser';E={$_.Properties[0].Value}},
@{N='AdminWhoChanged';E={$_.Properties[4].Value}} | Format-Table -AutoSizeСценарий 2: Защита от 'Password Never Expires' (Бэкдоры)
Инсайдеры или хакеры часто устанавливают флаг «Пароль никогда не истекает» для скомпрометированных учеток, чтобы сохранить доступ к сети навсегда. Отфильтруйте событие 4738, где поле User Account Control содержит старое значение 0x200 (Normal Account) и новое 0x10200 (Normal + Dont Expire Password). Настройте на этот паттерн жесткий Email-алерт.
Сценарий 3: Делегирование прав и аудит
Если в домене слишком много пользователей с правами Account Operators, управлять безопасностью невозможно. Внедрите ролевую модель (RBAC). Запретите первой линии поддержки (HelpDesk) менять критические атрибуты (SPN, Logon Hours) через расширенные списки контроля доступа (ACL) в AD.
Типовые ошибки администраторов
- Спам от SYSTEM: Контроллеры домена регулярно обновляют системные атрибуты пользователей (например, счетчик
BadPwdCountили время последнего входа). Это генерирует тысячи логов 4738 от имени 'NT AUTHORITY\SYSTEM'. Обязательно исключайте SYSTEM из фильтров вашего SIEM, чтобы не "ослепнуть" от шума.
Хаос в атрибутах Active Directory (IAM) — это открытая дверь для утечек коммерческой тайны. Возьмем ИТ-инфраструктуру на системный аутсорсинг: внедрим систему контроля привилегий (PAM/PIM), настроим SIEM-мониторинг и защитим базу пользователей от инсайдеров.
Частые вопросы (FAQ)
Почему 4738 генерируется при сбросе пароля, если есть событие 4724?
При сбросе пароля в ADUC (dsa.msc), администратор часто ставит галочку 'Требовать смену пароля при следующем входе'. Это действие меняет атрибут 'pwdLastSet' на 0. Любое изменение атрибутов вызывает событие 4738 в довесок к 4724.
Генерируется ли 4738 при изменении членства в группах?
Нет. Добавление и удаление из групп безопасности (MemberOf) логируется отдельными событиями — 4728 (Глобальные), 4732 (Локальные) и 4756 (Универсальные).
Показывает ли 4738 старое и новое значение атрибута?
Частично. Для UserAccountControl оно показывает старый и новый HEX-код. Но для текстовых атрибутов (например, Номер телефона или Отдел) оно ставит прочерк. Для полного аудита 'Старое/Новое' нужно включать аудит Directory Service Changes (событие 5136).
Что означает User Account Control 0x2000?
Это флаг SERVER_TRUST_ACCOUNT. Означает, что была изменена машинная учетная запись контроллера домена. В 4738 это штатное явление при загрузке DC.
Как отследить добавление SPN для Kerberoasting?
В событии 4738 ищите поле 'Service Principal Names'. Если там появилось значение (например, HTTP/web.corp.local), а раньше был прочерк '-', значит кто-то зарегистрировал SPN для пользователя.