Event ID 4670: Изменены разрешения для объекта (NTFS Permissions)
Архитектура дескрипторов безопасности (SDDL) и аудит
Событие 4670 логируется в журнале Security, когда администратор или владелец файла изменяет права доступа (Security Descriptor / ACL) для объекта файловой системы (файла/папки), реестра или объекта ядра. В отличие от события 5144 (которое следит за правами сетевой шары), 4670 следит за изменениями физических прав NTFS. Это событие жизненно необходимо для предотвращения кражи данных: инсайдер может выдать себе полные права на папку директора, скачать данные и вернуть права обратно.
Структура события (Original и New Security Descriptor)
Уникальность события 4670 в том, что оно показывает состояние прав ДО и ПОСЛЕ изменения в формате SDDL (Security Descriptor Definition Language):
- D: (DACL) — список контроля доступа. Определяет, кто имеет права на файл.
- S: (SACL) — список аудита. Определяет, какие действия будут писаться в журнал Security.
- O: (Owner) — владелец объекта.
- G: (Primary Group) — первичная группа.
Пошаговое дерево решений (Мониторинг NTFS прав)
Сценарий 1: Аудит выдачи прав "Все" (Everyone)
Если кто-то выдал полные права на конфиденциальную папку группе 'Все' (В SDDL это обозначается аббревиатурой WD - World), это критический инцидент ИБ.
Скрипт поиска опасных изменений прав (PowerShell):# Ищем изменения NTFS-прав, где фигурирует группа Everyone (WD)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4670; StartTime=(Get-Date).AddDays(-7)} |
Where-Object {$_.Properties[5].Value -match 'WD'} |
Select-Object TimeCreated,
@{N='UserWhoChanged';E={$_.Properties[1].Value}},
@{N='ObjectName';E={$_.Properties[4].Value}} | Format-Table -AutoSizeСценарий 2: Изменение аудита (SACL Evasion)
Хитрые хакеры перед тем, как украсть файлы, отключают на них аудит (SACL), чтобы не генерировать события чтения (4663). Событие 4670 зафиксирует это! Сравнивайте поля Original Security Descriptor и New Security Descriptor. Если секция S: исчезла в новом дескрипторе — хакер 'ослепил' систему аудита.
Сценарий 3: Защита критических папок (GPO и FSRM)
Чтобы запретить ручное изменение прав на серверах:
- Используйте File Server Resource Manager (FSRM) для блокировки смены владельца.
- Разверните политику GPO:
Конфигурация компьютера -> Политики -> Конфигурация Windows -> Параметры безопасности -> Файловая система. Задайте эталонные права на критические папки. GPO будет перезаписывать (возвращать) права каждые 90 минут, отменяя действия инсайдеров.
Типовые ошибки администраторов
- Включение аудита на диск C: целиком: Событие 4670 генерируется при любых обновлениях ОС, когда TrustedInstaller меняет права на DLL-файлы ядра. Если вы включите аудит на весь диск C:, сервер задохнется от логов (High I/O). Включайте SACL только на папке `D:\CorpData`.
Траблшутинг прав NTFS и аудит инсайдеров — сложная задача. Делегируйте обслуживание файловых серверов инженерам ITSTM: мы внедрим строгую ролевую модель (RBAC), настроим Access-Based Enumeration (ABE) и защитим коммерческую тайну от утечек с помощью SIEM-мониторинга.
Частые вопросы (FAQ)
Почему 4670 не показывает человеческие имена групп, а только SDDL?
Ядро Windows работает на низком уровне SID (Security Identifier). SDDL — это машинный язык ядра. Для перевода SDDL в читаемый вид (Например, 'Everyone: Full Control') используйте PowerShell командлет ConvertFrom-SddlString.
Генерируется ли 4670, если файл просто переименовали?
Нет. Переименование файла генерирует событие 4663 (Access Mask 0x10000 - Delete) для старого имени и 4663 (Write) для нового. 4670 касается строго вкладки 'Безопасность'.
Как включить событие 4670?
Вам нужны два шага. Первый: в GPO включите Advanced Audit Policy -> Object Access -> Audit File System (Success/Failure). Второй: в свойствах целевой папки на вкладке Аудит добавьте группу Everyone с типом 'Смена разрешений' (Change permissions).
В чем отличие 4670 от 5144?
5144 (Share Modified) фиксирует изменение прав на саму сетевую Шару (Share Permissions). 4670 (Permissions Changed) фиксирует изменение прав на физическом уровне диска NTFS, даже если изменение делал локальный админ без сети.
Можно ли по 4670 узнать, какой был старый владелец файла?
Да. В блоке 'Original Security Descriptor' найдите секцию 'O:' (Owner). Там будет указан SID старого владельца (например, O:S-1-5-21-XXX).