Аудит файлов в Windows 2008
Среда, сентября 09, 2015 | Автор:

Я думаю, многие сталкивались с задачей, когда к Вам приходят и спрашивают: «У нас тут файл пропал на общем ресурсе, был и не стало, похоже кто-то удалил, Вы можете проверить кто это сделал?» В лучшем случае вы говорите, что у вас нет времени, в худшем пытаетесь найти в логах упоминание данного файла. А уж когда включен файловый аудит на файловом сервере, логи там, мягко говоря «ну очень большие», и найти что-то там — нереально.

Для начала включим к групповых политиках возможность аудита доступа к файлам и папкам.
Локальные политики безопасности->Конфигурация расширенной политики безопасности->Доступ к объектам. Включим «Аудит файловой системы» на успех и отказ. После этого на необходимые нам папки необходимо настроить аудит.
Проходим в свойства папки общего доступа на файловом сервере, переходим в закладку «Безопасность», жмем «Дополнительно», переходим в закладку «Аудит», жмем «Изменить» и «Добавить». Выбираем пользователей для которых вести аудит. Рекомендую выбрать «Все», иначе бессмысленно. Уровень применения «Для этой папки и ее подпапок и файлов».
Выбираем действия над которыми мы хотим вести аудит. «Создание файлов/дозапись данных» Успех/Отказ, «Создание папок/дозапись данных» Успех/отказ, Удаление подпапок и файлов и просто удаление, так же на Успех/Отказ.
После этого в журнале событий безопасности, будет появляться очень много событий доступа к файлам и папкам. Количество событий пропорционально зависит от количества работающих пользователей с общим ресурсом, и, конечно же, от активности использования.

При удалении файлов создаются 2 события с ID 4660 (DELETE) 4663 (доступ к файлу) с одинаковым кодом дискриптора. Внимание! Такие же id получаются при переименовании файлов.

Есть 2 варианта выборки

1. Подходит к файловым серверам с небольшой активностью или примерным знанием времени доступа к файлу. Запускаем PS и даём команду

Get-EventLog security -message «*Имя учетной записи:?{ИМЯ ПОЛЬЗОВАТЕЛЯ}*» -after (Get-date -hour 0 -minute 0 -second 0) | ?{$_.eventid -eq 4660} |Export-Csv -Encoding UTF8 -UseCulture Delete4660.csv

Скрипт отрабатывает все события с ID 4660 за текущую дату и экспортирует их в csv-файл delete4660.csv. Далее по колонкам Message и TimeWritten находим код дискриптора и запускаем новый скрипт PS

Get-EventLog security -message » -after (Get-date -hour 0 -minute 0 -second 0) | ?{$_.eventid -eq 4663} |Export-Csv -Encoding UTF8 -UseCulture Delete4663.csv

Сравниваем 2 файла и находим нужного нам человека.

2. C помощью  Просмотра событий.

Заходим в Настраиваемые представления -> Создать настраиваемое представление.

Выбираем интервал просмотра, Уровень события «всё», Журнал «Безопасность»,  код событий «4660,4463». ОК.

Останется только найти события 4660 и ближлежащие к ним 4663 с одинаковым дискриптором.

P.S. писалось для себя, чтобы не искать команды.