Аудит создания и удаления файлов в Windows 2008, 2012 и 2016

1.       Включение механизма аудита

Оптимальный инструмент — групповые политики (применять к OU отслеживаемых серверов). Возможно использование аналогичных локальных политик для каждого сервера

«Computer Settings \ Windows Settings \ Security Settings \ Advanced audit policy configuration \ system audit policies \ object access \ audit file system» => «audit events: success» enabled.

fs-audit01

Весьма маловероятен сценарий, когда вам будет необходимо мониторить неудачные попытки доступа к файлам. Не отрицаю, что возможен. Но чаще нужно узнать кто удалил (или выложил) файл.

2.       Настройка аудита на конкретных папках

Далее непосредственно на серверах, которые хранят данные, используя проводник, зайдя в свойства папки, которую нужно мониторить, включить настройки аудита для группы, которую хотим мониторить. Например, Everyone, если мы хотим отслеживать любые изменения любыми возможными пользователями и сервисами:

«Delete subfolders and file — Successful»

«Delete — Successful»

“Create files / write data — Successful”

“Create folders / append data — Successful”

fs-audit02

3.       Мониторинг событий

После этого в логах сервера (на котором хранятся файлы) в Security Event Log будут появляться события при создании и удалении файлов и поддиректорий из указанных выше папок.

Отследить конкретных участников операции можно с помощью двух событий:

Event ID: 4660
Description: An object was deleted.

  •  Сообщает, что файл был удалён.
  • Содержит аккаунт того, кто выполнил операцию удаления
  • Не содержит имени файла. Только его Handle ID

Event ID:      4663
Description:An attempt was made to access an object.

  • Сообщает о какой-либо попытке доступа к файлу.
  • Содержит аккаунт того, кто выполнил операцию.
  • Содержит Handle ID и имя файла (Object Name)
  • Access mask – маска доступа – определяет для каких целей была попытка доступа к файлу

Виды масок доступа:

Тип доступа Hex Описание
ReadData (or ListDirectory) 0x1 ReadData – чтение данных из файла или объекта директории.ListDirectory – просмотр содержимого директории.
WriteData (or AddFile) 0x2 WriteData – запись данных в файл.AddFile – создание файла в директории.
AppendData (or AddSubdirectory or CreatePipeInstance) 0x4 AppendData – дописывание данных в файл. Не перезаписывает существующие данные, если дополнительно не содержит флага WriteData.AddSubdirectory – создание поддиректорий.
DELETE 0x10000 Удаление объекта.

 

Ключевой источник информации – события 4663:

Раздел Subject содержит информацию об аккаунте, из-под которого производились операции над объектом.

Object – информация о файле (путь, имя, handle)

Process Information содержит информацию о том, какой процесс производил операции с файлом.

В разделе Access Request Information размещена информация о типе доступа и маске доступа.

fs-audit03

При создании файла в указанной папке, в Security Event Log появляется пара событий с ID 4663, первое с маской 0х2, второе с маской 0х4.

При удалении файла появляется событие с ID 4663 и маской доступа 0х10000, а также событие 4660. Определить какой именно файл был удалён по событию 4660 можно найдя предваряющее его событие 4663, имеющее идентичный handle.


Для анализа логов можно использовать инструмент LogParser https://www.microsoft.com/en-us/download/details.aspx?id=24659 и, например, такой запрос:

LogParser.exe -i:evt «SELECT  TimeGenerated, EventID, Extract_Token(Strings, 1,’|’) AS User, Extract_Token(Strings, 6, ‘|’) AS File, Extract_Token(Strings, 7, ‘|’) AS HandleID INTO 111.docx.txt FROM ‘C:\<all exported security logs>\*.evtx’ WHERE (STRCNT( Strings, ‘111.docx’ ) >0) ORDER BY TimeGenerated DESC»

Где «111.docx» — искомая строка, а C:\<all exported security logs>\*.evtx – путь к лог-файлам, выгруженным в формате EVTX. LogParser понимает и другие форматы.