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 10 или Server 2012 R2 кликаем правой кнопкой мыши по Пуск и нажимаем Панель управления:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Да            Нет

Как настроить аудит доступа к папкам в Windows

Статья обновлена: 18 ноября 2022
ID: 15924

Аудит доступа поможет вам отследить изменения в файлах или папках. Для настройки аудита выполните шаги ниже.

Шаг 1. Настройте события аудита в редакторе локальной групповой политики

Шаг 2. Настройте аудит доступа в настройках безопасности папки

Шаг 3. Просмотрите информацию в журнале событий для папки с настроенным аудитом

Спасибо за ваш отзыв, вы помогаете нам становиться лучше!

Спасибо за ваш отзыв, вы помогаете нам становиться лучше!

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

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1690 ₽

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

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

1. Откройте редактор GPO и перейдите в раздел:

Конфигурация Windows > Параметры безопасности > Конфигурация расширенной политики аудита > Политики аудита системы > Доступ к объектам

2. Откройте политику Аудит файловой системы и укажите, что вы хотите сохранять в журнал только успешные события доступа к объектам файловой системы (Настроить следующие события аудита -> Успех).

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

gpupdate /force

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

AuditPol.exe /list /subcategory:*

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

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

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

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

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

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

1. Откройте свойства папки и перейдите на вкладку Безопасность > Дополнительно > Аудит.

2. Нажмите Добавить, в поле Субъект выберите «Пользователя» или «Everyone», чьи события нужно отслеживать.

3. В списке Тип укажите, что нужно отслеживать только успешные события (Успех).

4. В Применяется к выберите, для каких объектов применять аудит (по умолчанию — для этой папки, вложенных объектов и файлов).

5. В Дополнительные разрешения выберите действия, которые хотите отслеживать, например: чтение (Чтение данных/просмотр списка) и изменение файлов (Создание файлов/папок, запись данных).

Можно включить аудит для каталога с помощью 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

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

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

$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. Запустите консоль Просмотр событий (eventvwr.msc).

2. Перейдите в раздел Журналы Windows > Безопасность и отфильтруйте лог по источнику:

Источник событий: Microsoft Windows security audit

Категория задачи: File system

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

Использование PowerShell для вывода событий аудита

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

$fileName = "C:\\docs\\13131.txt"
$results = Get-WinEvent -FilterHashtable @{logname='Security'; id=4663,4659} |`
Where-Object { $_.message -match $fileName -and $_.message -notmatch "Имя учетной записи:\s*машина$*"}`
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 = "Чтение данных (или просмотр каталога)" }
"*%%4417*" { $fileOperation = "Запись данных (или добавление файла)" }
"*%%4418*" { $fileOperation = "Добавление данных (или добавление папки или создание канала)" }
"*%%4419*" { $fileOperation = "Чтение расширенных атрибутов" }
"*%%4420*" { $fileOperation = "Запись расширенных атрибутов" }
"*%%4423*" { $fileOperation = "Чтение атрибутов" }
"*%%4424*" { $fileOperation = "Запись атрибутов" }
"*%%4426*" { $fileOperation = "Удаление" }
"*%%4428*" { $fileOperation = "Чтение разрешений" }
"*%%4429*" { $fileOperation = "Запись DAC" }
"*%%4430*" { $fileOperation = "Запись владельца" }
"*%%4432*" { $fileOperation = "Синхронизация" }
"*%%4433*" { $fileOperation = "Доступ к системной безопасности" }
"*%%4434*" { $fileOperation = "Максимально допустимый доступ" }
"*%%4436*" { $fileOperation = "Полный доступ" }
"*%%4437*" { $fileOperation = "Выполнение" }
"*%%4438*" { $fileOperation = "Запись" }
"*%%4439*" { $fileOperation = "Чтение" }
"*%%1537*" { $fileOperation = "Удаление" }
default { $fileOperation = "Неизвестно" }
}
Write-Host $result.Id $result.TimeCreated $Account $objectName $fileOperation
}

Этот скрипт выведет все действия с указанным файлом, которые были зафиксированы политиками аудита в Windows.

Уровень сложностиСредний

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

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

Журналирование событий информационной безопасности является важным элементом системы защиты информации. Нам необходимо знать какое событие когда произошло, когда какой пользователь пытался зайти в систему, с какого узла, удачно или нет, и так далее. Конечно, некоторые события ИБ сохраняются в журналах ОС при использовании настроек по умолчанию, например, не/удачные входы в систему, изменения прав доступа и т. д. Однако, настроек по умолчанию и локального хранения логов недостаточно для эффективного мониторинга и реагирования на события ИБ.

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

Зачем нужно централизованное хранение

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

Да, при очистке лога будет создано событие ‘1102 Журнал аудита был очищен’, но от этого события тоже можно избавиться, просто заполнив лог большим количеством фиктивных событий. 

Так как, обычно EventLog пишется по принципу циклической записи, более старые события удаляются, и их заменяют более новые.

Ну а создать поддельные события можно с помощью того же PowerShell, используя командлет Write-EventLog.

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

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

Эффективный аудит

Мы разобрались с необходимостью централизованного мониторинга событий. Однако, еще необходимо разобраться с тем, какие именно события должны присутствовать в наших логах. С одной стороны в логах должны присутствовать важные события с точки зрения ИБ, а с другой, в нем не должно быть слишком много неинтересных событий, например постоянных обращений к каким-либо файлам или сообщений о запуске каких-либо процессов, не представляющих никакого интереса для ИБ. Таким образом, чтоб нам не потонуть в большом объеме ненужных событий и не потерять что-то действительно важное, нам необходимо грамотно настроить политики аудита.

 Для настройки откроем Политики аудита (Конфигурация компьютера / Конфигурация Windows / Параметры безопасности / Локальные политики / Политика аудита (Computer Configuration / Windows Settings / Security Settings / Local Policies / Audit Policy).

Также нам потребуются расширенные политики аудита, которые можно открыть здесь: Конфигурация компьютера / Конфигурация Windows / Параметры безопасности / Конфигурация расширенной политики аудита (Computer Configuration / Windows Settings / Security Settings / Advanced Audit Policy Configuration).

Отличием политики расширенного аудита является наличие подкатегорий и теперь мы можем управлять аудитом на уровне не только категорий, но и подкатегорий. Если сравнить Политики аудита и Расширенные политики аудита, то можно заметить, что разделы в обычных политиках в свою очередь разделены на подразделы в расширенных политиках, что позволяет нам настраивать более подробные категории аудита. Так, для группы  Вход учётной записи (Account Logon) мы можем настроить четыре проверки -Аудит проверки учётных данных, Аудит службы проверки подлинности Kerberos, Аудит операций с билетами службы Kerberos,   Аудит других событий входа учётных записей.

Для каждого типа аудита мы можем настроить аудит событий успеха или отказа. С событиями успеха нужно быть аккуратными. Так, для того же аудита входов в систему мы рискуем получить большое количество событий успешного входа, которые по факту не будут представлять никакой ценности. Также, не стоит включать в аудите доступа к объектам, аудит событий «платформы фильтрации Windows», потому что он генерирует крайне большое количество событий (всё сетевое взаимодействие хоста). В результате мы снова рискуем получить большое количество ненужных событий. В результате срабатывания настроек политик аудита, в журнале создаются события, каждое из которых имеет собственный код.

Для эффективного аудита нам необходим сбор следующих типов событий: 4624 (Успешный вход в систему), 4647 (Выход из системы), 4625 (Неудачный вход в систему), 4778/4779 (Соединение/разъединение по RDP), 4800/4801 (Блокировка/Разблокировка рабочей станции) и некоторые другие.

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

Посмотрим типы входа в систему:

2 – интерактивный

3 – сетевой (через сетевой диск)

4 – запуск по расписанию

5 – запуск сервиса

7 – разблокировка экрана

8 – сетевой (Basic Authentication в IIS)

10 – подключение по RDP

11 – вход по закешированным учетным данным

В приведенном ниже скриншоте у нас представлен вход в систему при запуске сервиса

И посмотрим, как мы можем узнать причину неудачного входа в систему

0xC0000064   — такого пользователя не существует

0xC000006A   — неверный пароль

0xC0000234   — пользователь заблокирован

0xC0000072   — пользователь отключен

0xC000006F   — пользователь попытался войти в систему вне установленных для него ограничений по дням недели или времени суток

0xC0000070   — ограничение рабочей станции или нарушение изолированной политики аутентификации (найдите идентификатор события 4820 на контроллере домена)

0xC0000193   — срок действия учетной записи истек

0xC0000071   — истек пароль

0xC0000133   — часы между DC и другим компьютером слишком сильно рассинхронизированы

0xC0000224   — пользователю необходимо сменить пароль при следующем входе в систему

0xc000015b    Пользователю не был предоставлен запрошенный тип входа в систему (он же право входа в систему) на этом компьютере

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

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

В следующей статье мы посмотрим, как средствами PowerShell можно извлекать различные значения из событий и делать обработку логов более “человеко-удобной.

Заключение

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

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

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Драйвер для принтера hp photosmart c4483 для windows 10
  • Error code 0xc00000f windows 10
  • Создание образа windows 7 без драйверов
  • Canon mf4018 драйвер windows 10 64 bit не устанавливается
  • Файл с системными иконками windows 10