Включить аудит событий windows 10

Политики аудита файловой системы Windows позволяют отслеживать все события доступа к определенным файлам и папкам на диске. С помощью политик аудита вы можете выявить события создания, чтения, изменения, удаления файлов и папок на файловой системе NTFS в Windows. Чаще всего аудит файловой используется для контроля доступа и изменений в общих сетевых папках, к которым одновременно могут обращаться несколько пользователей.

Содержание:

  • Включить политику аудита доступа к объектам файловой системы Windows
  • Настройка аудита событий на файлах и папках Windows
  • Просмотр событий аудита доступа к файлам и папкам в Windows

Включить политику аудита доступа к объектам файловой системы Windows

По умолчанию в Windows отключен аудит событий доступа к файлам и папкам. Включить аудит можно с помощью групповой политики. На отдельностоящем сервере для настройки политика аудита используется консоль редактора локальной групповой политики (
gpedit.msc
). Если вам нужно включить аудит сразу на множестве компьютеров в домене AD, используйте консоль управления доменными GPO (
gpmc.msc
).

  1. Откройте редактор GPO и перейдите в раздел Windows Settings -> Security Settings -> Advanced Audit Policy Configuration -> System Audit Policies -> Object Access;
  2. Откройте политику Audit File System и укажите, что вы хотите сохранять в журнал только успешные события доступа к объектам файловой системы (Configure the following audit events -> Success);
    Включить политику аудита в Windows

  3. Сохраните изменения и обновите настройки локальной групповой политики с помощью команды
    gpupdate /force
    .

Можно включить локальную политику аудита файловой системы из командной строки. Вывести доступные категории аудита:

AuditPol.exe /list /subcategory:*

Включить аудит успешных событий доступа к объектам файловой системы:

AuditPol.exe /set /subcategory:"File System" /success:enable

Вывести настройки категории аудита:

AuditPol.exe /get /category:"Object Access"

AuditPol.exe включить аудит доступа к файловой системе

Настройка аудита событий на файлах и папках Windows

Несмотря на то, что в Windows включена политика аудита доступа к файлам и папкам, фактически событий в Event Viewer еще не попадают. Администратор должен вручную настроить параметры аудита на файлах и папках, которые нужно отслеживать.

К примеру, вы хотите отслеживать события чтения, изменения и создания файлов в каталоге C:\Docs.

  1. Откройте свойства папки и перейдите на вкладку Security -> Advanced -> Auditing;
    Настройка аудита папки в Windows

  2. Нажмите кнопку Add и в поле Principal выберите пользователя или группы, чью события доступа нужно отслеживать. Если нужно отслеживать доступ для всех пользователей, выберите Users (или Everyone, если нужно контролировать доступ системных процессов);
  3. В списке Type укажите, что нужно отслеживать только успешные событий (
    Success
    );
  4. В Applies to можно указать, нужно ли применить аудит для папки, файлов, вложенных объектов (по умолчанию выбрано This folder, subfolders and files);
  5. В списке Advanced permissions выберите только те действия с файлами и папками, которые вы хотите отправлять в журнал аудита. Например: события чтения (List folder/read data) и изменения файлов (Create files or folders / write or append data)
  6. Сохраните настройки аудита.

При настройке политик аудита файловой системы старайтесь включать аудит только для тех папок и файлов, которые вам нужны. Включайте аудит только для тех файлов и событий, который вам нужны. Большое количество объектов аудита файловой системы приводит к значительному росту журнала событий Event Viewer.

Можно включить аудит для каталога с помощью PowerShell:

$Path = "C:\Docs"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule('BUILTIN\Users', 'Delete,DeleteSubdirectoriesAndFiles', 'none', 'none', 'Success')
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl

Настройки аудита папки можно вывести с помощью PowerShell:

(Get-Acl "C:\Docs\" -Audit).Audit

Чтобы рекурсивно просканировать все каталоги и найти папки, на которых включен аудит файловой системы, воспользуйтесь таким скриптом:

$folders=Get-ChildItem "c:\docs" -Recurse |Where-Object {$_.PSIsContainer}
foreach ($folder in $folders)
{
$auditacl=(Get-Acl $folder.FullName -Audit).audit
if ($auditacl -ne "") {write-host $folder.FullName}
}

Просмотр событий аудита доступа к файлам и папкам в Windows

Теперь, если с файлами в указанной папке выполняются какие-то действия, политика аудита записывает их в Event Viewer. Чтобы просмотреть события:

    1. Запустите консоль Event Viewer (
      eventvwr.msc
      );
    2. Перейдите в раздел Windows Logs -> Security и отфильтруйте лог по источнику:
      Microsoft Windows security auditing
      , Task Category:
      File System
      ;

      Фильтр журнала Event Viewer

      .

    3. Откройте содержимое любого события. Например в событии с EventID 4663 (
      An attempt was made to access an object
      ) содержится информация:О пользователе, который произвел действие над фалйов:
      Subject: Account Name:

      Имя файла:
      Object Name:

      Тип операции (изменение файла в этом случае):
      Accesses: WriteData (or AddFile)

      Событие редактирование файла на файловой системе

Однако из за ограниченных возможностей фильтрации и поиска в событиях Event Viewer, использовать эту консоль для поиска всех операции с определенным файлом довольно неудобно.

Для вывода всех событий, связанных с определенным объектом лучше использовть PowerShell. Следующий PowerShell скрипт выведет все события доступа, связанные с указанным файлом (для получения списка событий исопльзуется производительный командлет Get-WinEvent):

$fileName = "C:\\docs\\13131.txt"
$results = Get-WinEvent -FilterHashtable @{logname='Security'; id=4663,4659} |`
Where-Object { $_.message -match $fileName -and $_.message -notmatch "Account Name:\s*machine$*"}`
foreach ($result in $results) {
    $Account = $result.properties[1].Value
    $objectName = $result.properties[6].Value
    $accessMask = $result.properties[8].Value
    if ( $accessMask -like "*00000000-*") { $accessMask=$result.properties[9].Value}  
    $accessMask2 = $result.properties[9].Value
        $fileOperation = ""
        switch -Wildcard ($accessMask) {
            "*%%1538*" { $fileOperation = "READ_CONTROL" }
            "*%%4416*" { $fileOperation = "ReadData (or ListDirectory)" }
            "*%%4417*" { $fileOperation = "WriteData (or AddFile)" }
            "*%%4418*" { $fileOperation = "AppendData (or AddSubdirectory or CreatePipeInstance)" }
            "*%%4419*" { $fileOperation = "ReadEA" }
            "*%%4420*" { $fileOperation = "WriteEA" }
            "*%%4423*" { $fileOperation = "ReadAttributes" }
            "*%%4424*" { $fileOperation = "WriteAttributes" }
            "*%%4426*" { $fileOperation = "Delete" }
            "*%%4428*" { $fileOperation = "ReadControl" }
            "*%%4429*" { $fileOperation = "WriteDAC" }
            "*%%4430*" { $fileOperation = "WriteOwner" }
            "*%%4432*" { $fileOperation = "Synchronize" }
            "*%%4433*" { $fileOperation = "AccessSystemSecurity" }
            "*%%4434*" { $fileOperation = "MaximumAllowed" }
            "*%%4436*" { $fileOperation = "GenericAll" }
            "*%%4437*" { $fileOperation = "GenericExecute" }
            "*%%4438*" { $fileOperation = "GenericWrite" }
            "*%%4439*" { $fileOperation = "GenericRead" }
            "*%%1537*" { $fileOperation = "DELETE" }
            default { $fileOperation = "Unknown" }
        }
        Write-Host   $result.Id  $result.TimeCreated  $Account $objectName $fileOperation  
} 

PowerShell скрипт для поиска всех действий с файлом в журнале аудита

Вы можете отправлять собранные события аудита в вашу систему сбора логов, базу данных, текстовый лог файл или отправлять email уведомление через Send-MailMessage при доступе/модификации отслеживаемого файла.

С помощью аудита событий доступа к объектам файловой системы вы можете определить конкретного пользователя, который создал, удалил или изменил определенный файл. В этой статье мы покажем, как настроить аудит событий удаления объектов в общей сетевой папке на Windows Server 2016. После настройки аудита, вы можете с помощью информации в журнале событий найти пользователя, который удалил на файловом сервере.

При удалении файла из сетевой папки, он удаляется сразу, а не отправляется в корзину пользователя. Список открытых по сети файлов в сетевой папке можно получить так.

Содержание:

  • Включаем политику аудита доступа к файлам и папкам в Windows
  • Настройка аудита событий удаления файлов из конкретной папки
  • Запись событий удаления файлов в SQL базу (MySQL/MSSQL)
  • Запись информации о событиях удаления файлов в текстовый файл

Включаем политику аудита доступа к файлам и папкам в Windows

По умолчанию в Windows Server не включен аудит событий доступа к объектам на файловой системе. Вы можете включить и настроить аудит событий с помощью групповой политики. Если нужно включить политики аудита на нескольких серверах или компьютера, можно использовать доменные GPO (настраиваются с помощью консоли управления gpmc.msc). Если нужно настроить аудит только на одном сервере, можно воспользоваться локальной групповой политикой.

  1. Запустите консоль редактора локальной политики –
    gpedit.msc
    ;
  2. Перейдитевраздел GPO срасширенными политиками аудита Windows Settings -> Security Settings -> Advanced Audit Policy Configuration -> Object Access;
  3. Откройте политику Audit File System и укажите, что вы хотите сохранять в журнал только успешные события доступа к объектам файловой системы (Configure the following audit events -> Success);

    Также можно включить аудит доступа к локальным объектам с помощью политики Audit Object Access в разделе Windows Settings -> Security Settings -> Local Policy -> Audit Policy. Однако использование политики Audit File System предпочтительнее, поскольку она отслеживает только события NTFS.

    включить политику аудита доступа к сетевым папкам в windows server

  4. Сохраните изменения и обновите настройки локальной групповой политики с помощью команды
    gpupdate /force
    .

Настройка аудита событий удаления файлов из конкретной папки

Теперь нужно настроить аудит в свойствах общей сетевой папки, доступ к которой вы хотите отслеживать. Запустите проводник и откройте свойства общей папки. Перейдите на вкладку Security. Нажмите кнопку Advanced -> вкладка Auditing.

Если появится сообщение You must be an administrator or have been given the appropriate privileges to view the audit properties of this object, нажмите кнопку Continue.

настройка аудита доступа к сетевой папке в windows

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

Затем нужно указать использование каких разрешений доступа к объекту нужно записывать в лог. Чтобы сохранять в Event Log только события удаления файлов, нажмите кнопку Show advanced permissions. В списке событий оставьте аудит только для событий удаления папок и файлов — Delete и Delete subfolders and files.

Совет. Включение аудита доступа к объектам Windows накладывает дополнительные расходы на ресурсы системы. Всегда старайтесь минимизировать количество объектов и событий аудита, которые нужно отслеживать.

отслеживание удаления файлов в сетевой папке

Совет. Вы можете настроить аудит удаления файлов в папке с помощью через PowerShell:

$Path = "D:\Public"
$AuditChangesRules = New-Object System.Security.AccessControl.FileSystemAuditRule('Everyone', 'Delete,DeleteSubdirectoriesAndFiles', 'none', 'none', 'Success')
$Acl = Get-Acl -Path $Path
$Acl.AddAuditRule($AuditChangesRules)
Set-Acl -Path $Path -AclObject $Acl

Теперь, если пользователь удалит любой файл или папку в сетевой папке, в журнале безопасности системы появляется событие File System -> Audit Succes c Event ID 4663 от источника Microsoft Windows security auditing.

Откройте mmc консоль Event Viewer (
eventvwr.msc
), разверните секцию Windows Logs -> Security. Включите фильтр событий по EventID 4663.

событие с кодом 4663 - удаление файла

Откройте любой их оставшихся событий в Event Viewer. Как вы видите, в нем есть информация об имени удаленного файла и учетной записи пользователя, который удалил файл.

An attempt was made to access an object.
Subject:
Security ID:                            CORP\aaivanov
Account Name:                     aaivanov
 Account Domain:                  CORP
Logon ID:                               0x61B71716
Object:
Object Server:                        Security
Object Type:                          File
Object Name:                        E:\Distr\Backup.rar
Handle ID:                              0x7bc4
Resource Attributes:            S:AI
Process Information:
Process ID:                             0x4
Process Name:
Access Request Information:
Accesses:                               DELETE
Access Mask:                         0x10000

кто удалил общий файл в сетевой папке

После настройки аудита, найдите в журнале Security вы сможете найти с:

  • Кто и когда удалил файл в сетевой папке;
  • Из какого приложения удален файл;
  • На какой момент времени нужно восстанавливать бэкап данного каталога.

Запись событий удаления файлов в SQL базу (MySQL/MSSQL)

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

Вы можете записывать все нужные событий в отдельную SQL базу данных. Для хранения событий можно использовать Microsoft SQL Server, Elasticsearch или MySQL/MariaDB.

В этом примере мы покажем, как записывать события аудита в отдельную таблицу БД на сервере MySQL. Формат таблицы:

  • Имя сервера;
  • Имя удаленного файла
  • Время удаления;
  • Имя пользователя, удалившего файл.

MySQL запрос на создание такой таблицы будет выглядеть так:

CREATE TABLE track_del (id INT NOT NULL AUTO_INCREMENT, server VARCHAR(100), file_name VARCHAR(255), dt_time  DATETIME, user_name VARCHAR(100),  PRIMARY KEY (ID));

Для получения событий с EventID 4663 из журнала Security за текущий день можно использовать такой PowerShell скрипт:

$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$File = $event.Event.EventData.Data[6]."#text"
$User = $event.Event.EventData.Data[1]."#text"
$Computer = $event.Event.System.computer
}
}

Имеющиеся данные в событии удаления файла

Следующий PowerShell скрипт запишет полученные данные в БД MySQL на удаленном сервере:

Set-ExecutionPolicy RemoteSigned
Add-Type –Path ‘C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'
$Connection = [MySql.Data.MySqlClient.MySqlConnection]@{ConnectionString='server=10.7.7.13;uid=posh;pwd=P@ssw0rd;database=aduser'}
$Connection.Open()
$sql = New-Object MySql.Data.MySqlClient.MySqlCommand
$sql.Connection = $Connection
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$File = $event.Event.EventData.Data[6]."#text"

$File = $File.Replace(‘\’,’|’)
$User = $event.Event.EventData.Data[1]."#text"
$Computer = $event.Event.System.computer
$sql.CommandText = "INSERT INTO track_del  (server,file_name,dt_time,user_name ) VALUES ('$Computer','$File','$Time','$User')"
$sql.ExecuteNonQuery()
}
}
$Reader.Close()
$Connection.Close()

После сохранения событий во внешнюю базу данных, этот журнал можно очистить.

Теперь, чтобы узнать, кто удалил файл «document1 — Copy.DOC». Достаточно в консоли PowerShell выполнить следующий скрипт.

$DeletedFile = "%document1 - Copy.DOC%"
Set-ExecutionPolicy RemoteSigned
Add-Type –Path ‘C:\Program Files (x86)\MySQL\MySQL Connector Net 6.9.8\Assemblies\v4.5\MySql.Data.dll'
$Connection = [MySql.Data.MySqlClient.MySqlConnection]@{ConnectionString='server=10.7.7.13;uid=posh;pwd=P@ssw0rd;database=aduser'}
$Connection.Open()
$MYSQLCommand = New-Object MySql.Data.MySqlClient.MySqlCommand
$MYSQLDataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter
$MYSQLDataSet = New-Object System.Data.DataSet
$MYSQLCommand.Connection=$Connection
$MYSQLCommand.CommandText="SELECT user_name,dt_time    from  track_del where file_name LIKE '$DeletedFile'"
$MYSQLDataAdapter.SelectCommand=$MYSQLCommand
$NumberOfDataSets=$MYSQLDataAdapter.Fill($MYSQLDataSet, "data")
foreach($DataSet in $MYSQLDataSet.tables[0])
{
write-host "User:" $DataSet.user_name "at:" $DataSet.dt_time
}
$Connection.Close()

В результате в консоли PS появится имя пользователя и время удаления файла.

Запрос PowerShell к mysql БД для получении инфомации о пользователе, удалившем файл

Примечание. Была обнаружена проблема — символ «\» не записывается в БД, поэтому мы заменили его на «|». Соответственно если нужно вывести полный путь к файлу, при выборке из базы можно выполнить обратную замену:
$DataSet.file_name.Replace(‘|’,’\’)
. Спасибо Alex Kornev за замечание!

Скрипт сброса данных из журнала в БД можно выполнять один раз в конце дня по планировщику или повесить триггер на событие удаления (On Event), что более ресурсоемко. Все зависит от требования к системе.

Совет. Нужно убедиться, что вы указали достаточно большой максимальный размер для журнала безопасности, чтобы в него помещались все события за день. Иначе придется запускать задания сброса данных из журнала в базу чаще, чем 1 раз в день, или вообще по триггеру. Для рабочих станция Maximum Log Size как правило стоит задать не менее 64 Мб, на северах – 262 Мб. Опцию перезаписи старых событий нужно оставить включенной (Overwrite events as needed).

Можно создать реагировать простую веб страницу на php для получения информации о событиях удаления файлов в более удобном виде. Задача решается силами любого php программиста за 1-2 часа.

Важный совет. При наличии в журнале информации об удалении файла пользователем не спешите однозначно интерпретировать его как преднамеренное или даже злонамеренное. Многие программы (особенно этим грешат программы пакета MS Office), при сохранении изменений, сначала создается временный файл, данные записываются в него, а старая версия файла удаляется. В этом случае имеет смысл дополнительной записи в БД имени процесса, которым было выполнено удаление файла (поле ProcessName события), и вести анализ событий удаления файлов с учетом этого факта. Либо можно фильтровать события от некоторых процессов, например, winword.exe, excel.exe и пр.

Запись информации о событиях удаления файлов в текстовый файл

Если вы не хотите вести отдельную БД, можно сохранять события аудита удалений файлов в текстовый лог файл. Воспользуйтесь таким PowerShell скриптом:

$Outfile = "C:\ps\delete-file-log.txt"
$today = get-date -DisplayHint date -UFormat %Y-%m-%d
Get-WinEvent -FilterHashTable @{LogName="Security";starttime="$today";id=4663} | Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$File = $event.Event.EventData.Data[6]."#text"
$User = $event.Event.EventData.Data[1]."#text"
$strLog = $Computer + " " + $File + " " +  $Time + " " +  $User
$strLog  | out-file $Outfile –append
}
}

лог со списком удаленных файлов в windows

[/alert]

Итак, мы предложили идею и некий общий каркас системы аудита и хранения информации об удаленных файлах в сетевых шарах, при желании ее с лёгкостью можно будет модифицировать под ваши нужды.

Опубликовано:

Запускаем редактор групповых политик

Для этого в Windows 10 или Server 2012 R2 кликаем правой кнопкой мыши по Пуск и нажимаем Панель управления:

В более ранних версиях Windows кликаем по Пуск и выбираем Панель управления:

Открываем панель управления в Windows 2008 R2 или 7

Теперь открываем Система и безопасность:

Администрирование:

И выбираем Локальная политика безопасности:

* Совет: редактор групповых политик можно открыть через командную строку командой gpedit.msc.

* Нюанс: в доменной среде с сервером Active Directory необходимо открывать групповые политики на стороне контроллера домена и применять их к серверам или компьютерам компании.

Настраиваем политику

Раскрываем Конфигурация компьютераКонфигурация WindowsПараметры безопасностиЛокальные политикиПолитика аудита:

В окне справа кликаем дважды по Аудит доступа к объектам:

Открываем аудит доступа к объектам в групповых политиках

В открывшемся окне ставим галочки на Успех и Отказ:

Нажимаем OK и закрываем редактор управления групповыми политиками.

Настраиваем аудит для файлов и папок

Кликаем правой кнопкой мыши по папке, для которой нужно настроить аудит и выбираем Свойства:

Переходим на вкладку Безопасность:

Нажимаем по Дополнительно:

В открывшемся окне переходим на вкладку Аудит и нажимаем Продолжить:

Кликаем Добавить:

Кликаем по Выберите субьект:

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

Выбираем всех пользователей

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

Нажимаем OK три раза.

Была ли полезна вам эта инструкция?

Да            Нет

Иногда бывает необходимо понять кто удалил/изменил/переименовал конкретный файл или папку. В ОС Windows для этого используется аудит доступа к объектам.

Аудит — это запись в специальные журналы информации об определенных событиях (источник, код события, успешность, объект и т.д. ). Объектом аудита может являться как любой файл или папка, так и определенное событие, например вход в систему или выход из нее, то есть можно записывать все события происходящие с конкретным файлом или папкой — чтение, запись, удаление и т.д., можно события входа в систему и т.д.

Необходимо понимать, что аудит забирает на себя.

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

В случае локальных политик необходимо запустить оснастку “Локальная политика безопасности”, для этого необходимо нажать комбинацию клавиш Win+R, в открывшееся поле ввести secpol.msc и нажать клавишу Enter.

Запуск локальной политики безопасности

В открывшейся оснастке в дереве слева необходимо перейти в раздел “Локальные политики” — “Политика аудита”.

Политика аудита

Далее необходимо выбрать необходимую нам политику — в данном случае это “Аудит доступа к объектам”. Именно этой политикой регулируется доступ к объектам файловой системы (файлам и папкам) и раскрыть ее двойным щелчком мыши. В открывшемся окне необходимо выбрать какие именно типы событий будут регистрироваться — “Успех” (разрешение на операцию получено) и/или “Отказ” — запрет операции и проставить соответствующие галочки, после чего нажать “Ок”.

Выбор политики

Теперь когда включена возможность ведения аудита интересующих нас событий и их тип можно переходить к настройке самих объектов — в нашем случае файлов и папок.

Для этого необходимо открыть свойства файла или папки, перейти на вкладку “Безопасность”, нажать “Дополнительно” и “Аудит”.

Аудит

Нажимаем “Добавить” и начинаем настраивать аудит.

Настройка аудита

Сначала выбираем субъект — это чьи действия будут аудироваться (записываться в журнал аудита).

Выбор субъекта

Можно вписать туда имя пользователя или группы, если имя заранее неизвестно, то можно воспользоваться кнопкой “Дополнительно” которая открывает форму поиска где можно выбрать интересующих нас пользователей и группы. Чтобы контролировались действия всех пользователей необходимо выбрать группу “Все”.

Пользовательские группы

Далее необходимо настроить тип аудируемых событий (Успех, Отказ, Все), также область область применения для аудита папок — только эта папка, папка с подпапками, только подпапки. только файлы и т.д., а также сами события аудита.

Для папок поля такие:

Типы событий для папок

А такие для файлов:

Типы событий для файлов

После этого начнется сбор данных аудита. Все события аудита пишутся в журнал “Безопасность”. Открыть его проще всего через оснастку “Управление компьютером” compmgmt.msc.

Сбор данных аудита

В дереве слева выбрать “Просмотр событий” — “Журналы Windows” — “Безопасность”.

Просмотр событий

Каждое событие ОС Windows имеет свой код события. Список событий достаточно обширен и доступен на сайте Microsoft либо в интернете.

Попробуем например найти событие удаления файла, для этого удалим файл на котором предварительно настроен аудит (если это не тестовые файл, то не забываем сделать его копию, так как аудит это всего лишь информация о действиях, а не разрешение/запрет этих действий). Нам нужно событие с кодом 4663 — получение доступа к объекту, у которого в поле Операции доступа Написано “DELETE” . Поиск событий в журналах Windows достаточно сложен, поэтому обычно используются специализированные средства анализа — системы мониторинга, скрипты и т.д.

Вручную можно, например, задать например такой фильтр:

Фильтры

Далее в отфильтрованных событиях необходимо найти интересующее нас по имени объекта.

Поиск нужного объекта

Открыть его двойным щелчком мыши и увидеть кто удалил данный файл в поле субъект.

Информация о файле

На этом демонстрация аудита доступа к файлам и папкам Windows на примере Windows server 2012R2 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Windows, а если вы ищете надежный виртуальный сервер под управлением Windows, обратите внимания на нашу услугу — Аренда виртуального сервера Windows.

 

Время на прочтение11 мин

Количество просмотров154K

Аудит доменных служб Active Directory в Windows Server 2008 R2

ИТ среда не является статичной. Ежеминутно в системах происходят тысячи изменений, которые требуется отследить и запротоколировать. Чем больше размер и сложность структуры, тем выше вероятность появления ошибок в администрировании и раскрытия данных. Без постоянного анализа изменений (удачных или неудачных) нельзя построить действительно безопасную среду. Администратор всегда должен ответить, кто, когда и что изменил, кому делегированы права, что произошло в случае изменений (удачных или неудачных), каковы значения старых и новых параметров, кто смог или не смог зайти в систему или получить доступ к ресурсу, кто удалил данные и так далее. Аудит изменений стал неотъемлемой частью управления ИТ инфраструктурой, но в организациях не всегда уделяют внимание аудиту, часто из-за технических проблем. Ведь не совсем понятно, что и как нужно отслеживать, да и документация в этом вопросе не всегда помогает. Количество событий, которые необходимо отслеживать, уже само по себе сложность, объемы данных велики, а штатные инструменты не отличаются удобством и способностью упрощать задачу отслеживания. Специалист должен самостоятельно настроить аудит, задав оптимальные параметры аудита, кроме того, на его плечи ложится анализ результатов и построение отчетов по выбранным событиям. Учитывая, что в сети запущено нескольких служб – Active Directory/GPO, Exchange Server, MS SQL Server, виртуальные машины и так далее, генерирующих очень большое количество событий, отобрать из них действительно необходимые, следуя лишь описаниям, очень тяжело.
Как результат, администраторы считают достаточными мероприятия резервного копирования, предпочитая в случае возникновения проблем просто произвести откат к старым настройкам. Решение о внедрении аудита часто принимается только после серьезных происшествий. Далее рассмотрим процесс настройки аудита Active Directory на примере Windows Server 2008 R2.

Аудит Active Directory штатными средствами

В Windows Server 2008 по сравнению с предыдущей Windows Server 2003 обновлены возможности подсистемы аудита, настраиваемые через политики безопасности, а количество отслеживаемых параметров увеличено на 53. В Windows Server 2003 существовала только политика Аудит доступа к службе каталогов, контролировавшая включение и отключение аудита событий службы каталогов. Теперь управлять аудитом можно на уровне категорий. Например, политики аудита Active Directory разделены на 4 категории, в каждой из которых настраиваются специфические параметры:

Directory Service Access (доступ к службе каталогов);
Directory Service Changes (изменения службы каталогов);
Directory Service Replication (репликация службы каталогов);
Detailed Directory Service Replication (подробная репликация службы каталогов).

При включении глобальной политики аудита Аудит доступа к службе каталогов автоматически активируются все подкатегории политики служб каталогов.
Система аудита в Windows Server 2008 отслеживает все попытки создания, изменения, перемещения и восстановление объектов. В журнал записывается предыдущее и текущее значения измененного атрибута и учетная запись пользователя, выполнившего операцию. Но если при создании объектов для атрибутов использовались параметры по умолчанию, их значения в журнал не заносятся.

ПРИМЕЧАНИЕ: В Windows Server 2003 аудит регистрировал только имя измененного атрибута.

В Windows Server 2008 R2 аудит внедряется при помощи:

— глобальной политики аудита (Global Audit Policy, GAP);
— списка управления доступом (System access control list, SACL) — определяет операции, для которых будет производиться аудит;
— схемы – используется для окончательного формирования списка событий.

По умолчанию для клиентских систем аудит отключен, для серверных активна подкатегория Доступ к службе каталогов Active Directory, остальные отключены. Для включения глобальной политики “Аудит доступа к службе каталогов” (Audit directory service access) необходимо вызвать Редактор управления групповыми политиками перейти в ветку Параметры безопасности/Локальные политики/Политика аудита, где активировать политику и установить контролируемые события (успех, отказ).

Рис.1 Включение политики аудита Directory Service Access

Второй путь — использовать для настройки утилиту командной строки auditpol, получить полный список GAP с установленными параметрами. При помощи auditpol достаточно ввести команду:
> auditpol /list /subcategory:*

Рис.2 Получаем список установок при помощи auditpol

Активируем политику “directory service access”:

> auditpol /set /subcategory:"directory service changes" /success:enable

ПРИМЕЧАНИЕ: Подробные сведения о команде можно получить, запустив ее в виде
auditpol /h

Чтобы не ждать, обновим политику контролера домена:

> gpupdate

Подкатегория политики аудита Доступ к службе каталогов формирует события в журнале безопасности с кодом 4662, которые можно просмотреть при помощи консоли Просмотр событий (Event Viewer) вкладка Журналы Windows – Безопасность.

Рис.3 Просмотр событий при помощи Event Viewer

В качестве альтернативного варианта просмотра событий можно использовать командлет Get-EventLog оболочки PowerShell. Например:

PS> Get-EventLog security | ?{$_.eventid -eq 4662}

ПРИМЕЧАНИЕ: Командлет Get-EventLog может принимать 14 параметров, позволяющих отфильтровать события по определенным критериям: After, AsBaseObject, AsString, Before, ComputerName, EntryType, Index, InstanceID, List, LogName, Message, Newest, Source и UserName.

Рис.4 Получаем список событий при помощи Get-EventLog

Кроме этого, регистрируется ряд других событий 5136 (изменение атрибута), 5137 (создание атрибута), 5138 (отмена удаления атрибута) и 5139 (перемещение атрибута).
Для удобства отбора определенных событий в консоли Просмотр событий используют фильтры и настраиваемые представления, а также подписку, позволяющую собирать данные журналов и с других серверов.

Таблица 1. Список событий аудита событий Active Directory в Windows Server 2008

Проверка учетных данных
ИДЕНТИФИКАТОР Сообщение
4774 Учетная запись была сопоставлена для входа в систему.
4775 Не удалось сопоставить учетную запись для входа в систему.
4776 Предпринята попытка проверить учетные данные для учетной записи контроллера домена.
4777 Не удается проверить учетные данные для учетной записи контроллера домена.

Управление учетной записью компьютера
ИДЕНТИФИКАТОР Сообщение
4741 Создана учетная запись компьютера.
4742 Изменена учетная запись компьютера.
4743 Удалена учетная запись компьютера.

Управление группами рассылки
ИДЕНТИФИКАТОР Сообщение
4744 Создана локальная группа с отключенной проверкой безопасности.
4745 Изменена локальная группа с отключенной проверкой безопасности.
4746 Добавлен пользователь к локальной группе с отключенной проверкой безопасности.
4747 Удален пользователь из локальной группы с отключенной проверкой безопасности.
4748 Удалена локальная группа с отключенной проверкой безопасности.
4749 Создана глобальная группа с отключенной проверкой безопасности.
4750 Изменена глобальная группа с отключенной проверкой безопасности.
4751 Добавлен пользователь к глобальной группе с отключенной проверкой безопасности.
4752 Удален пользователь из глобальной группы с отключенной проверкой безопасности.
4753 Удалена глобальная группа с отключенной проверкой безопасности.
4759 Создана универсальная группа с отключенной проверкой безопасности.
4760 Изменена универсальная группа с отключенной проверкой безопасности.
4761 Член добавлен к универсальной группы с отключенной проверкой безопасности.
4762 Удален пользователь из универсальной группы с отключенной проверкой безопасности.
Другие события управления учетными записями
ИДЕНТИФИКАТОР Сообщение
4739 Изменена политика домена.
4782 Хэш пароля учетной записи доступа к нему.
4793 Был вызван API проверку политики паролей.
Управление группой безопасности
ИДЕНТИФИКАТОР Сообщение
4727 Создана глобальная группа с включенной безопасностью.
4728 Добавлен пользователь к глобальной группе с включенной безопасностью.
4729 Удален пользователь из глобальной группы с включенной безопасностью.
4730 Удалена глобальная группа с включенной безопасностью.
4731 Создана локальная группа с включенной безопасностью.
4732 Добавлен пользователь в локальную группу с включенной безопасностью.
4733 Удален пользователь из локальной группы с включенной безопасностью.
4734 Удалена локальная группа с включенной безопасностью.
4735 Изменена локальная группа с включенной безопасностью.
4737 Изменена глобальная группа с включенной безопасностью.
4754 Создана универсальная группа с включенной безопасностью.
4755 Изменена универсальная группа с включенной безопасностью.
4756 Добавлен пользователь к универсальной группе с включенной безопасностью.
4757 Удален пользователь из универсальной группы с включенной безопасностью.
4758 Удалена универсальная группа с включенной безопасностью.
4764 Изменен тип группы.

Управление учетными записями пользователей
ИДЕНТИФИКАТОР Сообщение
4720 Учетная запись пользователя создана.
4722 Учетная запись пользователя включена.
4723 Изменен пароль учетной записи.
4724 Сброс пароля пользователя.
4725 Учетная запись пользователя отключена.
4726 Учетная запись пользователя удалена.
4738 Изменена учетная запись пользователя.
4740 Учетная запись пользователя заблокирована.
4765 Журнал SID был добавлен к учетной записи.
4766 Не удалось добавить журнал SID учетной записи.
4767 Учетная запись пользователя была разблокирована.
4780 Список управления Доступом был установлен на учетные записи, которые являются членами группы администраторов.
4781 Было изменено имя учетной записи.
4794 Была предпринята попытка задать режим восстановления служб каталогов.
5376 Диспетчер учетных данных: учетные данные были сохранены.
5377 Диспетчер учетных данных: учетные данные были восстановлены из резервной копии.

Другие события
ИДЕНТИФИКАТОР Сообщение
1102 Очищен журнал безопасности
4624 Успешный вход в систему
4625 Не удачный вход в систему

В ветке Политика аудита также активируются и другие возможности (см.рис.1): аудит входа/выхода в систему, аудит управления учетными записями, доступ к объектам, изменения политик и так далее. Например, настроим аудит доступа к объектам на примере папки с общим доступом. Для этого активируем, как рассказано выше, политику Audit object access, затем выбираем папку и вызываем меню Свойства папки, в котором переходим в подпункт Безопасность и нажимаем кнопку Дополнительно. Теперь в открывшемся окне “Дополнительные параметры безопасности для ..” переходим во вкладку Аудит и нажимаем кнопку Изменить и затем Добавить и указываем учетную запись или группу, для которой будет осуществляться аудит. Далее отмечаем отслеживаемые события (выполнение, чтение, создание файлов и др.) и результат (успех или отказ). При помощи списка “Применять” указываем область применения политики аудита. Подтверждаем изменения.

Рис.5 Настраиваем аудит папки с общим доступом

Теперь все указанные операции будут отображаться в журнале безопасности.
Чтобы упростить настройку аудита при большом количестве объектов, следует активировать флажок Наследование параметров от родительского объекта. При этом в поле Унаследовано от будет показан родительский объект, от которого взяты настройки.
Больший контроль событий, записываемых в журнал, достигается применением политики детализированного аудита (Granular Audit Policy), которая настраивается в Параметры безопасности/Локальные политики/Advanced Audit Policy Configuration. Здесь 10 подпунктов:

— Вход учетной записи – аудит проверки учетных данных, службы проверки подлинности Kerberos, операции с билетами службы Kerberos, другие события входа;
— Управление учетными записями – аудит управления группами приложений, учетными записями компьютеров и пользователей, группами безопасности и распространения;
— Подробное отслеживание – событий RPC и DPAPI, создания и завершения процессов;
— Доступ к службе каталогов DS – аудит доступа, изменений, репликации и подробной репликации службы каталогов;
— Вход/выход – аудит блокировки учетных записей, входа и выхода в систему, использования IPSec, сервера политики сети;
— Доступ к объектам – аудит объектов ядра, работы с дескрипторами, событий создаваемых приложениями, служб сертификации, файловой системы, общих папок, платформой фильтрации;
— Изменение политики – изменения политики аудита, проверки подлинности, авторизации, платформы фильтрации, правил службы защиты MPSSVC и другие;
— Использование прав – аудит прав доступа к различным категориям данных;
— Система – аудит целостности системы, изменения и расширения состояния безопасности, драйвера IPSec и других событий;
— Аудит доступа к глобальным объектам – аудит файловой системы и реестра.

Рис.6 Доступные настройки Advanced Audit Policy Configuration
Активация аудита управления учетными записями пользователей позволит отслеживать: создание, изменение, удаление, блокировку, включение и прочие настройки учетных записей, в том числе пароль и разрешения. Посмотрим, как она работает на практике — выбираем подкатегорию User Account Management и активируем. Команда для auditpol выглядит так:
> auditpol /set /subcategory:"User Account Management" /success:enable /failure:enable
> gpudate

Система аудита в консоли Просмотр события сразу покажет событие с номером 4719 Изменение параметров аудита, в котором показаны название политики и новые значения.

Рис.7 Фиксация изменения политики системой аудита

Чтобы создать событие, откроем консоль Active Directory – пользователи и компьютеры и изменим один из параметров любой учетной записи — например, добавим пользователя в группу безопасности. В консоли Просмотра события сразу будут сгенерировано несколько событий: события с номером 4732 и 4735, показывающие изменение состава группы безопасности, и добавление учетной записи новой группы безопасности (на рис.8 выделены фиолетовым).
Создадим новую учетную запись – система генерирует несколько событий: 4720 (создание новой учетной записи), 4724 (попытка сброса пароля учетной записи), несколько событий с кодом 4738 (изменение учетной записи) и, наконец, 4722 (включение новой учетной записи). По данным аудита администратор может отследить старое и новое значение атрибута — например, при создании учетной записи меняется значение UAC.

Рис.8 При создании новой учетной записи система аудита Windows Server 2008 генерирует несколько событий

Недостатки штатной системы аудита

Штатные инструменты операционной системы часто предлагают лишь базовые наборы средств анализа. Официальная документация (http://technet.microsoft.com/ru-ru/library/dd772623(WS.10).aspx) очень подобно расписывает возможности самого инструмента, практически мало помогая в выборе параметров, изменения которых необходимо отслеживать. В итоге решение этой задачи целиком ложится на плечи системного администратора, который должен полностью разбираться в технических аспектах аудита, и зависит от уровня его подготовки, а значит, велика вероятность ошибки. Кроме того, на его плечи ложится анализ результата, построение разнообразных отчетов.
Для удобства выбора определенных событий интерфейс консоли Event Viewer позволяет создавать фильтры и настраиваемые представления. В качестве параметров для отбора данных можно указать: дату, журнал и источник событий, уровень (критическое, предупреждение, ошибка и т.д.), код, пользователя или компьютер и ключевые слова. В организации может быть большое количество пользователей, объединенных в группы и подразделения, для которых аудит необходимо настроить персонально, но данная возможность в интерфейсе не предусмотрена.

Рис. 9 Настройка фильтра событий в консоли Event Viewer

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

Рис.10 Создание задачи в консоли Event Viewer

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

Рис.11 Система аудита Windows Server 2008 только выдает старое и новое значение атрибута, не предоставляя средств для удобного отката

Некоторые стандарты безопасности требуют хранения данных, собранных в процессе аудита, в течение продолжительного времени (например, SOX до 7 лет). Системными средствами реализовать это можно, но очень сложно. Размер журнала безопасности (как и других) ограничен 128 Мб, и при большом количестве событий данные могут быть перезаписаны (т.е. утеряны) уже через несколько часов. Чтобы этого избежать, необходимо вызвать окно свойств журнала в Event Viewer, где увеличить размер журнала и активировать его архивацию, установив флажок в “Архивировать журнал при заполнении. Не перезаписывать события”.

Рис.12 Чтобы не потерять старые события безопасности, следует увеличить размер журнала и включить архивацию

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

***
Данная статья является частью «Полного руководства по аудиту Active Directory в Windows Server 2008 R2» [PDF]. Вы можете скачать его по данной ссылке, заполнив небольшую форму.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Активация windows 10 через командная строка
  • 2966583 windows 7 x64
  • Прокси сервер где находится на компьютере windows 10
  • Windows xp download software free download
  • Pgadmin 4 windows install