Как включить аудит доступа. Для контроллеров домена или с рабочей станции с установленным пакетом средств администрирования. Настройка детальной политики аудита

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

Контроль на двух уровнях

Чтобы следить за доступом к объектам, необходимо организовать аудит Windows 2000 как на уровне системы, так и на уровне объектов. Сначала следует активизировать категорию Audit object access для успешных и неудачных событий. (Подробнее о том, как использовать системную политику аудита, рассказано в статье «Контроль событий регистрации в Windows 2000». Полный список статей этого автора о журналах безопасности Windows 2000 и Windows NT приведен во врезке «В предыдущих выпусках» - прим. ред.) Затем необходимо обеспечить аудит контролируемого объекта. Каждый объект имеет два ACL (список управления доступом): разграничительный ACL (DACL) и системный ACL (SACL).

Экран 1. Упрощенный вид DACL объекта.

Список DACL. В списке DACL перечислены пользователи, имеющие право доступа к объекту, и способы доступа. (Часто вместо DACL используется термин ACL.) Чтобы открыть DACL объекта из Windows Explorer (для папок и файлов) или в окне Printers (для принтеров), следует щелкнуть на объекте правой кнопкой мыши, выбрать пункт Properties и перейти к закладке Security (см Экран 1). На этой закладке дан упрощенный вид списка DACL, т. е. показаны разрешения только для одного пользователя или группы. Чтобы просмотреть полный список DACL, нужно щелкнуть на кнопке Advanced. Откроется диалоговое окно Access Control Settings объекта, показанное на Экране 2.

Список SACL. В списке SACL перечислены действия над объектом, подлежащие аудиту Windows 2000. SACL объекта состоит из элементов управления доступом (ACE). Элемент ACE точно определяет типы доступа, регистрируемые в журнале безопасности Windows 2000, когда конкретный пользователь или группа обращается к объекту. Специальный флаг каждого ACE показывает, к успешным или неудачным попыткам доступа относится данный элемент. Чтобы обратиться к SACL объекта, следует открыть диалоговое окно Access Control Settings и перейти к закладке Auditing. Каждый элемент в разделе Auditing Entries - это ACE. Из приведенного на Экране 3 списка SACL для файла примера (payroll.xls) видно, что Windows 2000 будет проверять успешные попытки записи и неудачные попытки чтения, предпринятые членами группы Everyone.


Экран 3. SACL объекта.

Контроль попыток доступа к объекту

Windows 2000 производит аудит доступа в тот момент, когда пользователь пытается получить доступ к объекту через прикладную программу. Когда пользователь обращается к объекту из приложения, программа запрашивает у Windows 2000 дескриптор (handle) объекта. С помощью дескриптора приложение выполняет операции над объектом. Прежде чем предоставить дескриптор, Windows 2000 сопоставляет DACL объекта с учетной записью пользователя, запустившего прикладную программу, и типами доступа (например, запись или чтение), запрошенными приложением. Затем Windows 2000 определяет, предусмотрена ли системной политикой аудита запись результатов этого сравнения в журнал. Например, если попытка доступа неудачна, система выясняет, активизирована ли политика аудита для регистрации неудачных обращений к объектам.

Если системной политикой аудита предусмотрена запись результата в журнал, то Windows 2000 обрабатывает SACL объекта. Система исследует каждый элемент ACE, имеющий отношение к результату, и определяет, какие из элементов идентифицируют учетную запись пользователя, запустившего приложение, и все группы, к которым он принадлежит. Затем Windows 2000 исследует типы доступа, указанные в этих ACE. Если хотя бы один тип доступа в ACE совпадает с любым из типов доступа, запрошенных приложением, то Windows 2000 генерирует событие с ID 560 «объект открыт» с соответствующим типом события (Failure Audit или Success Audit). В оснастке Event Viewer консоли Microsoft Management Console (MMC) сообщения о неудачном завершении какой-либо операции отмечены пиктограммой замка, а записи об успешном завершении операции - изображением ключа.

Предположим, что пользователь Гарольд работает с Microsoft Excel и пытается открыть файл payroll.xls. Excel запрашивает у Windows 2000 дескриптор для payroll.xls. Windows 2000 сравнивает DACL файла с учетной записью Гарольда и запросом на чтение, поступившим от Excel; согласно DACL, у Гарольда нет права на чтение payroll.xls. Как показано на Экране 2, доступ к payroll.xls имеют только Administrators и группа HR, а Гарольд не является членом ни одной из этих групп. Windows 2000 выясняет, что системной политикой аудита предусмотрена регистрация неудачных попыток обращения к объекту, поэтому она просматривает SACL файла payroll.xls и исследует каждый элемент ACE, контролирующий неудачные попытки доступа. Windows 2000 определяет, какие из этих элементов ACE указывают на учетную запись Гарольда или группу, к которой он принадлежит. Как показано на Экране 3, SACL объекта содержит ACE, который относит неудавшуюся операцию чтения к группе Everyone, поэтому Windows 2000 регистрирует событие с ID 560 (см. Экран 4).

Экран 4. Событие с ID 560 неудачной попытки доступа.

Предположим, что пользователь Салли также пытается открыть файл payroll.xls из Excel. Поскольку Салли является членом группы HR, она имеет право выполнять операции чтения и записи в файле payroll.xls. Системная политика аудита настроена на регистрацию успешных попыток доступа к объектам, и SACL файла содержит ACE, относящийся к успешным операциям записи и группе Everyone, поэтому Windows 2000 регистрирует событие с ID 560 (см. Экран 5).

Экран 5. Событие с ID 560 успешного доступа.

Разобраться в полях события с ID 560 нетрудно. Значение параметра Object Server всегда Security. В поле Object Type идентифицируется объект аудита - файл, папка, раздел реестра, принтер или служба. Windows 2000 заполняет поле New Handle ID лишь в том случае, если доступ к объекту был предоставлен. Если пользователь не имеет соответствующих полномочий, то доступ не предоставляется, и Windows 2000 не создает ID дескриптора. Operation ID - просто число, которое увеличивается на единицу для каждой операции, выполняемой в Active Directory (AD).

Теоретически, с помощью поля Process ID можно вычислить приложение, через которое пользователь открыл объект. Однако соответствующее событие с ID 592 (новый процесс), генерируемое категорией Audit process tracking, показывает ID процесса в другом формате, нежели все остальные события Windows 2000. По некоторым сведениям, разработчики Microsoft устранят эту проблему в версиях Windows XP и Windows Server - известных под названием Whistler. Для событий, отображающих непрямой доступ к объектам, Process ID идентифицирует серверное приложение, а не клиентскую программу, через которую пользователь открыл объект. Если пользователь открывает файл в каталоге общего доступа, то Process ID указывает на процесс System как на программу, открывшую объект. Чтобы проверить эту информацию, можно открыть Task Manager, перейти к закладке Processes и посмотреть идентификатор процесса в столбце PID.

Поля Primary User Name и Primary Domain идентифицируют учетную запись пользователя, напрямую обратившегося к объекту. Когда пользователь обращается к объекту со своего локального компьютера через настольное приложение, такое, как Microsoft Word или Excel, то Primary User Name и Primary Domain показывают учетную запись компьютера, а поля Client User Name и Client Domain - учетную запись пользователя. Например, на Экране 6 показано событие с ID 560, которое было зарегистрировано, когда пользователь Джон подключился к сетевому диску на файл-сервере Tecra и открыл документ budget.doc. Тогда в поле Primary User Name стоит имя TECRA$, соответствующее учетной записи файл-сервера в домене. Client User Name идентифицирует Джона как пользователя, работающего на клиентской стороне.

Экран 6. Событие с ID 560 непрямого доступа.

Поля Primary Logon ID и Client Logon ID содержат идентификатор logon ID, присваиваемый при регистрации с учетной записью пользователя, обратившегося к объекту. Чтобы определить, в каком сеансе был произведен доступ, следует посмотреть на событие с ID 540 (удаленная регистрация) или с ID 528 (все другие виды регистрации) с этим идентификатором (подробнее эти события описаны в статье «Контроль событий регистрации в Windows 2000».) Если пользователь напрямую открывает объект на своей локальной машине, то Primary Logon ID события с ID 560 соответствует Logon ID события с ID 528, зафиксированного Windows 2000 при регистрации пользователя в системе; поле Client Logon ID остается пустым. Если пользователь обращается к файлу на удаленной машине, то поле Primary Logon ID события с ID 560 идентифицирует сеанс, связанный с учетной записью локального компьютера, а поле Client Logon ID события с ID 528 соответствует Primary Logon ID.

В поле Accesses указаны типы доступа, запрошенные приложением. Одни типы доступа специфичны для определенного класса объектов, другие применимы к любому объекту. В Таблице 1 перечислены и описаны самые распространенные типы доступа.

Когда пользователь открывает файл или папку, в поле Accesses отмечаются предоставленные пользователю типы доступа, специфичные для данной папки или файла. Эти типы доступа соответствуют специальным разрешениям, приведенным в DACL файла. Параметры ReadAttributes и WriteAttributes указывают, что пользователь открыл файл с возможностью изменения его свойств (только чтение, архивный, скрытый, системный). ReadEA и WriteEA применяются к расширенным атрибутам файла, определяемым конкретными приложениями. Чтобы увидеть расширенные атрибуты файла, нужно открыть Windows Explorer и щелкнуть на файле правой кнопкой мыши. Выбрав Properties, следует перейти к закладке Custom, а затем к закладке Summary.

Тип AppendData означает, что пользователь имеет право добавить данные в открытый файл. ReadData и WriteData означают, что пользователь, открывший файл, имеет возможность прочитать или изменить его данные. Если задан режим аудита запуска исполняемых файлов, то Windows 2000 регистрирует доступ типа Execute при каждом запуске программы.

Те же типы доступа - с небольшими отличиями - используются Windows 2000 для контроля работы с папками. AppendData указывает, что пользователь создал в папке подпапку. Windows 2000 регистрирует тип WriteData, если в папке создается новый файл. Чтобы определить имя нового файла или подпапки, нужно посмотреть на последующее событие с ID 560, соответствующее новому дочернему объекту. Windows 2000 регистрирует тип ReadData, если пользователь просматривает содержимое папки (например, командой Dir или через Windows Explorer).

Завершение работы с объектом

Когда пользователь открывает объект из приложения, Windows 2000 регистрирует событие с ID 560, а при закрытии объекта операционная система регистрирует событие с ID 562 (дескриптор закрыт). Поля события с ID 562 частично совпадают с полями события с ID 560.

Экран 7. Событие с ID 562.

Следует обратить внимание на поле New Handle ID события с ID 560 (см. Экран 5) и поле Handle ID события с ID 562 (см. Экран 7). Windows 2000 генерирует различные Handle ID для каждого открытого объекта. Таким образом, связав событие с ID 560 и событие с ID 562 с одинаковыми Hand-le ID, можно определить, как долго объект оставался открытым. Из оснастки Event Viewer следует открыть событие с ID 560 и запомнить Handle ID события. Затем нужно щелкнуть правой кнопкой мыши на журнале Security и выбрать функции View, Find. В поле Event ID следует ввести значение 562, а в поле Description - значение Handle ID. Если Event Viewer показывает сначала новые объекты, то следует изменить направление поиска на Up, а затем щелкнуть Find Next.

Не только файлы

Категория Audit object class используется не только для контроля доступа к файлам. Например, с помощью программы regedt32 можно запустить аудит разделов реестра и затем контролировать доступ к разделам и элементам реестра. Элементы реестра не имеют собственных списков DACL и SACL; как и операции управления доступом, операции аудита проводятся через родительский раздел реестра. Windows 2000 регистрирует типы доступа, соответствующие разрешениям в списке DACL раздела, и описывает разрешения, указанные в событии с ID 560. Если обращение к разделу реестра вызывает событие с ID 560, то Windows 2000 указывает в поле Object Type значение Key. Значение в поле Object Name начинается с REGISTRY, за которым следует ветвь и остальной путь к разделу. Например, подраздел HKEY_LOCAL_MACHI-NESOFTWAREAcme отображается как REGISTRYMACHINESOFT-WAREAcme.

Из меню Settings, Printers можно получить доступ к спискам SACL принтеров и реестра. Для этого достаточно выполнить те же операции, что и при доступе к SACL файла или папки, но отправной точкой будет служить не Windows Explorer, а меню Settings, Printers.

В статье Microsoft «Monitoring and Auditing for End Systems» (http://www.microsoft.com/technet/ security/monito.asp ) говорится, что можно выполнять аудит системных служб, но в действительности это не так. Даже если в SACL службы режим аудита включен (с помощью политик Group Policy через ComputerConfiguration, Windows Settings, Security Settings, System Services), Windows 2000 не заносит в журнал безопасности сведений о запуске, остановке и отключении службы. Идентификаторы событий документированы для некоторых других операций (например, удаления объекта), но этот механизм пока не функционирует.

Наследование SACL

В Windows 2000 схема наследования SACL повторяет схему DACL. По умолчанию, элементы SACL автоматически переходят от родительских папок и разделов реестра к дочерним объектам. Например, если разрешить аудит неудачных операций записи в папку, то все файлы и подпапки наследуют этот элемент SACL. Существует несколько уровней настройки наследования SACL.

Дочерний уровень. Чтобы блокировать передачу элементов родительского SACL дочернему объекту, следует открыть окно Access Control Settings (параметры управления доступом) дочернего объекта, перейти к закладке Auditing и снять флажок Allow inheritable auditing entries from parent to propagate to this object. Затем нужно щелкнуть OK или Apply. Если к моменту сброса флажка какие-то наследуемые элементы SACL уже были переданы объекту-потомку, Windows 2000 потребует подтвердить необходимость их удаления или создать их копии без наследования.

Родительский уровень. Чтобы разблокировать наследование в дочерних объектах, следует открыть диалоговое окно Access Control Settings родительского объекта, показанное на Экране 8, перейти к закладке Auditing и установить флажок Reset auditing on all child objects and enable propagation of inheritable auditing entries. После щелчка на кнопке OK или Apply операционная система отменяет аудит на всех дочерних объектах и сбрасывает флажок, чтобы администратор мог выборочно блокировать наследование на дочерних объектах. Данная функция сброса полезна, если администратор не знает, какой режим наследования установлен в системе, и хочет начать все сначала.

Можно также контролировать глубину наследования и указать последний дочерний объект, на который распространяется действие каждого элемента SACL. Чтобы отредактировать отдельный элемент SACL, нужно открыть диалоговое окно Access Control Settings родительского объекта, перейти к закладке Auditing, выбрать элемент и открыть окно Auditing Entry щелчком на кнопке View/Edit, как показано на Экране 9. В данном диалоговом окне предусмотрено два способа реализации наследования дочерними объектами. Раскрывающийся список Apply onto определяет типы объектов, которым передается запись об аудите. По умолчанию из списка выбирается значение This folder, subfolders and files (данная папка, подпапки и файлы), но пользователь может выбрать любое сочетание этих объектов. (На Экране 9 выбран режим аудита неудачных операций чтения только файлов, но не папок.) С помощью флажка Apply these auditing entries to objects and/or containers within this container можно определить, передаст ли Windows 2000 запись объектам, расположенным непосредственно в папке, или рекурсивно распространит эту запись на все дочерние уровни ниже данной точки.

Как лучше провести аудит

Какую стратегию избрать для аудита объектов? Во-первых, если требуется проверить определенный каталог или раздел реестра на нескольких машинах, нужно использовать групповые политики. Например, чтобы исследовать неудачные попытки записи в каталоге \%systemroot% на всех компьютерах домена, следует открыть оснастку MMC Active Directory Users and Computers и щелкнуть правой кнопкой мыши на корневом домене. Затем, выбрав Properties, необходимо перейти к закладке Group Policy. Отметив пункт Default Domain Policy Group Object (GPO), следует щелкнуть на кнопке Edit и пройти по Computer Configuration, Windows Settings, Security Settings, File System. Щелкнув правой кнопкой мыши на File System, нужно выбрать пункт Add File. Затем введите с клавиатуры

%systemroot%

и щелкните OK. На экране появится диалоговое окно разрешений, похожее на то, которое показано на Экране 1. Чтобы запустить процесс аудит объекта, следует повторить описанную ранее последовательность действий. При этом нужно внимательно отнестись к определению области аудита. Не рекомендуется ограничивать круг проверяемых лиц, так как взломщики часто используют чужие пароли. Поэтому в списке управления следует указать аудитом группу Everyone, чтобы охватить всех пользователей. Однако желательно ограничить подлежащие аудиту типы доступа и объекты. В процессе аудита объектов генерируется большой объем данных. Чтобы журнал безопасности не наполнялся бесполезными сведениями, лучше остановиться на небольшом числе типов доступа к немногим объектам.

Неопытным администраторам может показаться, что на самом деле активность системы не столь велика, как можно предположить исходя из событий Audit object access. Следует помнить, что Windows 2000 не выполняет аудит собственно операций (например, чтения и записи) над объектами; вместо этого проверяются запросы на доступ к объектам, поступающие из приложений. Поэтому в поле Accesses события с ID 560 указывается только тип доступа, который мог получить пользователь, но не сам факт выполнения пользователем каких-либо операций. Проблема усугубляется прикладными программами, которые автоматически запрашивают все типы доступа, независимо от того, нужны ли они пользователю. Представители Microsoft заявляют, что в конечном итоге в Windows 2000 может быть реализован аудит действительных операций, а не возможностей доступа.

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

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

В процессе аудита используются три средства управления: политика аудита, параметры аудита в объектах, а также журнал «Безопасность» , куда заносятся события, связанные с безопасностью, такие как вход/выход из системы, использование привилегий и обращение к ресурсам. В этой статье мы рассмотрим именно политики аудита и последующий анализ событий в журнале «Безопасность» .

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

Политика аудита настраивает в системе определенного пользователя и группы аудит активности. Для того чтобы отконфигурировать политики аудита, в редакторе управления групповыми политиками вы должны открыть узел Конфигурация компьютера/Конфигурация Windows/Параметры безопасности/Локальные политики/Политика аудита . Необходимо помнить, что по умолчанию параметр политики аудита, для рабочих станций установлен на «Не определено» . В общей сложности, вы можете настраивать девять политик аудита, которые изображены на следующей иллюстрации:

Рис. 1. Узел «Политика аудита»

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

Рис. 2. Свойства политики аудита «Аудит доступа к службе каталогов»

После настройки политики аудита события будут заноситься в журнал безопасности. Просмотреть эти события можно в журнале безопасности. Рассмотрим подробно каждую политику аудита:

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

Аудит доступа к объектам . Данная политика безопасности выполняет аудит попыток доступа пользователей к объектам, которые не имеют отношения к Active Directory. К таким объектам можно отнести файлы, папки, принтеры, разделы системного реестра, которые задаются собственными списками в системном списке управления доступом (SACL). Аудит создается только для объектов, для которых указаны списки управления доступом, при условии, что запрашиваемый тип доступа и учетная запись, выполняющая запрос, соответствуют параметрам в данных списках.

Аудит доступа к службе каталогов . При помощи этой политики безопасности вы можете определить, будет ли выполняться аудит событий, указанных в системном списке контроля доступа (SACL), который можно редактировать в диалоговом окне «Дополнительные параметры безопасности» свойств объекта Active Directory. Аудит создается только для объектов, для которых указан системный список управления доступом, при условии, что запрашиваемый тип доступа и учетная запись, выполняющая запрос, соответствуют параметрам в данном списке. Данная политика в какой-то степени похожа на политику «Аудит доступа к объектам» . Аудит успехов означает создание записи аудита при каждом успешном доступе пользователя к объекту Active Directory, для которого определена таблица SACL. Аудит отказов означает создание записи аудита при каждой неудачной попытке доступа пользователя к объекту Active Directory, для которого определена таблица SACL.

Аудит изменения политики . Эта политика аудита указывает, будет ли операционная система выполнять аудит каждой попытки изменения политики назначения прав пользователям, аудита, учетной записи или доверия. Аудит успехов означает создание записи аудита при каждом успешном изменении политик назначения прав пользователей, политик аудита или политик доверительных отношений. Аудит отказов означает создание записи аудита при каждой неудачной попытке изменения политик назначения прав пользователей, политик аудита или политик доверительных отношений.

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

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

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

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

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

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

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

Допустим, у нас есть домен testdomain.com, в котором есть пользователь с учетной записью DImaN.Vista. в данном примере мы применим для этого пользователя политику и увидим, какие события записываются в журнал безопасности при попытке несанкционированного доступа в систему. Для воспроизведения подобной ситуации выполните следующие действия:

Заключение

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

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

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

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

Благодаря наличию БД с информацией обо всех удаленных файлах администратор сможет дать ответы на вопросы:

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

В первую очередь на файловом сервере Windows нужно включить аудит событий, обеспечивающий запись информации об удалении файлов в журнал системы. Эту процедуру мы уже рассматривали в статье .

Аудит может быть включен через общую политику Audit Object Access в разделе политик Security Settings -> Local Policy -> Audit Policy

Или (предпочтительнее) через в GPO: Security Settings -> Advanced Audit Policy Configuration -> Object Access -> Audit File System .

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

В свойствах общей сетевой папки (Security -> Advanced -> Auditing), удаление файлов в котором мы хотим отслеживать, для группы Everyone включим аудит событий удаления папок и файлов (Delete subfolders and files ).

Совет . Аудит удаления файлов в конкретной папке можно включить и через 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

При успешном удалении файла в журнале безопасности системы появляется событие Event ID 4663 от источника Microsoft Windows security auditing . В описании события есть информация об имени удаленного файла, учетной записи из-под которой было выполнено удаление и имени процесса.

Итак, интересующие нас события пишутся в журнал, настала пора создать на сервере 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));

Скрипт сбора информации из журнала событий. Мы фильтруем журнал по событию с ID 4663 за текущий день



$event = $_.ToXml()
if($event)
{




}
}

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




$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 = $_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%m-%d %H:%M:%S"
$File = $event.Event.EventData.Data."#text"

$File = $File.Replace(‘\’,’|’)
$User = $event.Event.EventData.Data."#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 = @{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)
{
write-host "User:" $DataSet.user_name "at:" $DataSet.dt_time
}
$Connection.Close()

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

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

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

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

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

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

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

Цель работы: Приобрести практические навыки при работе с аудитом доступа к ресурсам.

Объём работы:

    Аудит событий.

    Параметры аудита для объектов.

    Выбор объектов для применения элементов аудита.

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

    Просмотр журнала событий.

Теоретические сведения. Аудит: обзор

Аудит – отслеживание действий пользователей путем регистрации событий определенных типов в журнале безопасности сервера или рабочей станции.

Аудит определённых компьютеров, пользователей и событий операционной системы является необходимой частью администрирования сети. Установка параметров аудита возможна в окне свойств файлов, папок, общих папок, принтеров и объектов службы каталогов Active Directory. Аудит позволяет отслеживать и записывать события, связанные с безопасностью, такие как попытки доступа пользователей к защищенным файлам и папкам. После включения аудита в журнал безопасности Windows 2000 заносятся записи при любой попытке доступа к этому объекту. При этом определяется объект аудита, действия, подвергаемые аудиту, и точные типы действий для аудита. После установки аудита можно отслеживать доступ пользователей к определенным объектам и анализировать недостатки системы безопасности. Записи аудита показывают, кто выполнял какие-либо действия и кто пытался выполнить какие-либо неразрешенные действия.

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

Аудит событий.

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

Установка параметров аудита возможна только для файлов и папок, расположенных на диске, использующем файловую систему NTFS.

события

Описание

Аудит входа

в систему

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

Аудит доступа

к объектам

Активизируется, когда происходит доступ к объекту.

Аудит доступа к службе каталогов

Активизируется, когда происходит доступ к объекту Active Directory.

Аудит изменения

политики

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

использования

привилегий

Активизируется, когда какое-либо право пользователя используется для выполнения какой-либо операции.

отслеживания

процессов

Активизируется, когда приложение выполняет операцию, для которой запущено отслеживание.

Аудит системных событий

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

Аудит событий входа в систему

Активизируется, когда пользователь выполняет вход в систему или выход из системы.

управления

учётными

записями

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

Всем привет!

Продолжаем публиковать шпаргалки по настройке аудита различных систем, в прошлый раз мы говорили об AD habrahabr.ru/company/netwrix/blog/140569 , сегодня обсудим файловые серверы. Надо сказать, что чаще всего мы выполняем именно настройки аудита файловых серверов – в ходе пилотных инсталляций у заказчиков. Ничего сложного в этой задаче нет, всего лишь три простых шага:

  • Настроить аудит на файловых ресурсах (file shares)
  • Настроить и применить общую и детальную политики аудита
  • Изменить настройки журналов событий
Если у вас большое количество файловых шар, доступ к которым часто требуется сотрудникам – рекомендуем контролировать только изменения объектов аудита. Отслеживание всех событий может привести к тому, что в журналы будет попадать большой объем избыточных данных, которые не представляют особой важности.

Настройка аудита на файловых ресурсах

Настройка общей политики аудита

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

Настройка детальной политики аудита

Настройка журналов событий

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

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

Перед запуском скрипта нужно отредактировать строчку 19 - вписать вместо «your_ou_name» и «your_domain» необходимые значения. Скрипт необходимо выполнять от имени учетной записи, имеющей права администратора домена.

Получить скрипт можно в нашей базе знаний или сохранить в файл.ps1 следующий текст:

#import-module activedirectory #$path = $args; # \\fileserver\share\folder $account = "Everyone" # $args; $flavor = "Success,Failure" #$args; $flags = " ReadData, WriteData, AppendData, WriteExtendedAttributes, DeleteSubdirectoriesAndFiles, WriteAttributes, Delete, ChangePermissions, TakeOwnership " $inheritance = "ContainerInherit, ObjectInherit" $propagation = "None" $comps = Get-ADComputer -Filter * -SearchBase "OU=your_ou_name,DC=your_domain,DC=your_domain" | select -exp DNSHostName foreach ($comp in $comps) { $shares = get-wmiobject -class win32_share -computername $comp -filter "type=0 AND name like "%[^$]"" | select -exp name foreach ($share in $shares) { $path = "\\"+$comp+"\"+$share $path $acl = (Get-Item $path).GetAccessControl("Access,Audit") $ace = new-object System.Security.AccessControl.FileSystemAuditRule($account, $flags, $inheritance, $propagation, $flavor) $acl.AddAuditRule($ace) set-acl -path $path -AclObject $acl } }



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: