Аудит изменений в Active Directory | Windows для системных администраторов

Аудит изменений в Active Directory

Любой администратор Active Directory рано или поздно сталкивается с необходимостью аудита изменения в Active Directory, и этот вопрос может встать тем острее, чем больше и  сложнее структура Active Directory и чем больше список лиц, кому делегированы права управления в том или ином сайте или контейнере AD. В сферу интересов администратора (или специалиста по ИБ) могут попасть такие вопросы как:

  • кто добавил / удалил пользователя  или группу AD
  • кто включил / заблокировал пользователя
  • с какого адреса был изменен / сброшен пароль пользователя домена
  • кто создал / отредактировал групповую политику и т.д.

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

Примечание. Мы уже касались темы аудита Windows в статье: «Аудит доступа к файлам и папкам в Windows 2008»

Разберем на конкретном примере методику включения аудит изменений параметров пользователей и членства в группах Active Directory (согласно данной методики можно включить отслеживание и других категорий событий).

Расширенные политики аудита Windows


Создадим новый объект GPO (групповую политику) с именем «Audit Changes in AD». Перейдите в раздел редактирования и разверните ветку Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Configuration. В данной ветке групповых политик находятся расширенные политики аудита, который можно активировать в ОС семейства Windows для отслеживания различных событий.  В Windows 7 и Windows Server 2008 R2 количество событий, для которых можно осуществлять аудит увеличено до 53. Эти 53 политики аудита (т.н. гранулярные политики аудита) находятся в ветке Security Settings\Advanced Audit Policy Configuration сгруппированы в 10 категориях:

Расширенные (гранулированные) политики аудита в Windows

  • Account Logon – аудит проверки учетных данных, службы проверки подлинности Kerberos, операций с билетами Kerberos и других события входа
  • Account Management – отслеживание изменений в учетных записей пользователей и компьютеров, а также информации о группах AD и членстве в них
  • Detailed Tracking – аудит активности индивидуальных приложений (RPC, DPAPI)
  • DS Access – расширенный аудит изменений в объектах службы Active Directory Domain Services (AD DS)
  • Logon/Logoff – аудит интерактивных и сетевых попыток входа на компьютеры и сервера домена, а также блокировок учетных записей
  • Object Access – аудит доступа к различным объектам (ядру, файловой системе и общим папкам, реестру, службам сертификации и т.д.)
  • Policy Change – аудит изменений в групповых политиках
  • Privilege Use — аудит прав доступа к различным категориям данных
  • System – изменения в настройках компьютеров, потенциально критичных с точки зрения безопасности
  • Global Object AccessAuditing – позволяют администратору создать собственное списки ACL, отслеживающие изменения в реестре и файловой системой на всех интересующих объектах

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

Настройка аудита изменений учетных записей и групп Active Directory


В данном случае, нас интересует категория Account Management, позволяющая включить аудит изменений в группах Audit Security Group Management)  и аудит учетных записей пользователей (политика Audit User Account Management). Активируем данные политики аудита, задав отслеживание только успешных изменений (Success).

Аудит изменений в AD: отслеживаем изменения в группах

Осталось прилинковать данную политику к контейнеру, содержащему учетные записи контроллеров домена (по умолчанию это OU Domain Controllers) и применить эту политику (выждав 90 минут или выполнив команду gpupdate /force).

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

Лог журнала показывающий кто удалил пользователя из группы AD

По умолчанию журнал отображает все события безопасности, попавшие в лог. Чтобы упростить поиск нужного события, журнал можно отфильтровать по конкретному Event ID. В том случае, если нас интересуюсь только события, например, качающиеся сброса пароля пользователя в домене, необходимо включить фильтр по id 4724.

Фильтрация и поиск по ID события в журнале securiry windows

Ниже приведен список некоторых ID событий, которые могут понадобиться для поиска и фильтрации событий в журнале Security практике:
ID событий, в контексте изменений в группах AD:

4727 : A security-enabled global group was created.
4728 : A member was added to a security-enabled global group.
4729 : A member was removed from a security-enabled global group.
4730 : A security-enabled global group was deleted.
4731 : A security-enabled local group was created.
4732 : A member was added to a security-enabled local group.
4733 : A member was removed from a security-enabled local group.
4734 : A security-enabled local group was deleted.
4735 : A security-enabled local group was changed.
4737 : A security-enabled global group was changed.
4754 : A security-enabled universal group was created.
4755 : A security-enabled universal group was changed.
4756 : A member was added to a security-enabled universal group.
4757 : A member was removed from a security-enabled universal group.
4758 : A security-enabled universal group was deleted.
4764 : A group’s type was changed.

ID событий, в контексте изменений в учетных записей пользователей в AD:

4720 : A user account was created.
4722 : A user account was enabled.
4723 : An attempt was made to change an account’s password.
4724 : An attempt was made to reset an account’s password.
4725 : A user account was disabled.
4726 : A user account was deleted.
4738 : A user account was changed.
4740 : A user account was locked out.
4765 : SID History was added to an account.
4766 : An attempt to add SID History to an account failed.
4767 : A user account was unlocked.
4780 : The ACL was set on accounts which are members of administrators groups.
4781 : The name of an account was changed:
4794 : An attempt was made to set the Directory Services Restore Mode.
5376 : Credential Manager credentials were backed up.
5377 : Credential Manager credentials were restored from a backup.

Основные недостатки встроенной системы аудита Windows

Однако у штатных средств просмотра и анализа логов в Windows есть определенные недостатки.

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

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

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

Именно по этим причинам, для аудита изменений в AD в крупных и распределенных системах предпочтительно использовать программные комплексы сторонних разработчиков. В последнее время на слуху, например, такие продукты, как NetWrix Active Directory Change Reporter или ChangeAuditor for Active Directory.

Еще записи по теме: Active Directory
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 12

Оставить комментарий
  1. Сергей Берендаков | 11.06.2013

    Если не ошибаюсь, чтобы заработал подробный аудит нужно активировать аудит нужных объектов в разделе Local Policies/Audit Policy.

    Ответить
  2. itpro | 14.06.2013

    Это разные политики аудита. В статье речь о расширенных политиках аудита.

    Ответить
    • Сергей Берендаков | 14.06.2013

      Прошу прощения, не так как надо было у меня настроено, поэтому ошибся.

      Ответить
  3. kosta77 | 20.06.2013

    А как настроить аудит изменения таких св-в пользователя как  ФИО, адрес, телефон ?

    Ответить
    • Elje | 13.09.2013

      «А как настроить аудит изменения таких св-в пользователя как  ФИО, адрес, телефон ?» Решили кто-нибудь данную проблему? Дело в том, что аудит то работает, не работает как раз так и отображение изменений, кроме собственно говоря тех данных, что есть в событии. А их как раз и мало :-(. Вот если бы как-нибудь добавить туда (в событие) пару нужных полей.

      Ответить
      • dimokkk | 16.09.2013

        Не подскажете, что конкретно пишется в журнал безопасность?
        Как вариант — можно конечно снапшоты нужных веток AD делать, или вообще регулярно скриптом сливать всю нужную информацию в csv-файл и другим скриптом отслеживать изменения в объектах.

        Ответить
        • Elje | 16.09.2013

          Добрый. При изменении атрибутов учетной записи (в зависмости от включенных параметров аудита безопасности на учетную запись) возникает событие 4738. Но оно отражает только изменение следующих атрибутов:

          <EventData>

          <Data Name=»Dummy«>-</Data>

          <Data Name=»TargetUserName«>UshakovAE</Data>

          <Data Name=»TargetDomainName«>ES</Data>

          <Data Name=»TargetSid«>S-1-5-21-3598248035-1047720151-3493028850-24376</Data>

          <Data Name=»SubjectUserSid«>S-1-5-21-3598248035-1047720151-3493028850-1167</Data>

          <Data Name=»SubjectUserName«>BakaevBA</Data>

          <Data Name=»SubjectDomainName«>ES</Data>

          <Data Name=»SubjectLogonId«>0x5852c04e</Data>

          <Data Name=»PrivilegeList«>-</Data>

          <Data Name=»SamAccountName«>-</Data>

          <Data Name=»DisplayName«>-</Data>

          <Data Name=»UserPrincipalName«>-</Data>

          <Data Name=»HomeDirectory«>-</Data>

          <Data Name=»HomePath«>-</Data>

          <Data Name=»ScriptPath«>-</Data>

          <Data Name=»ProfilePath«>-</Data>

          <Data Name=»UserWorkstations«>-</Data>

          <Data Name=»PasswordLastSet«>-</Data>

          <Data Name=»AccountExpires«>-</Data>

          <Data Name=»PrimaryGroupId«>-</Data>

          <Data Name=»AllowedToDelegateTo«>-</Data>

          <Data Name=»OldUacValue«>0x211</Data>

          <Data Name=»NewUacValue«>0x210</Data>

          <Data Name=»UserAccountControl«>%%2048</Data>

          <Data Name=»UserParameters«>-</Data>

          <Data Name=»SidHistory«>-</Data>

          <Data Name=»LogonHours«>-</Data>

          </EventData>

          </Event>
          То есть, при изменении атрибута, например, Department событие возникнет, но в теле имзенения не увидим, так как атрибуты отображаются только те, что указал я выше. Возможно, что то делаю не так.
          Отслеживать тяжеловато, в какой момент возникнет событие непонятно, а просто так сливать всю инфу, ИМХО, не вариант. Возмонжо есть вариант как то править схему event’а, но пока не нашел как, кроме как создавать самостоятельно схему для своего приложения

          Ответить
        • Elje | 16.09.2013

          Следующие поля отображаются в журнале события при изменении атрибутов учетной записи, при этом атрибут может быть любой, например, поменяв атрибут Department, событие возникнет, но изменение в журнале мы не увидем:
          SAM Account Name, Display Name, User Principal Name, Home Directory, Home Drive, Script Path, Profile Path, User Workstations, Password Last Set, Account Expires, Primary Group ID:    —
          AllowedToDelegateTo, Old UAC Value, New UAC Value, User Account Control, Account Enabled, User Parameters, SID History, Logon Hours.

          Ответить
  4. Elje | 16.09.2013

    Вот такие вот поля выводит Event 4738 при изменении атрибута(ов) учетной записи. Например, поменяешь значение атрибута Department, событие возникнет, но что изменилось мы не увидем (если конечно же это не поля из списка ниже)
    — <EventData>

    <Data Name=»Dummy«>-</Data>

    <Data Name=»TargetUserName«>UshakovAE</Data>

    <Data Name=»TargetDomainName«>ES</Data>

    <Data Name=»TargetSid«>S-1-5-21-3598248035-1047720151-3493028850-24376</Data>

    <Data Name=»SubjectUserSid«>S-1-5-21-3598248035-1047720151-3493028850-1167</Data>

    <Data Name=»SubjectUserName«>BakaevBA</Data>

    <Data Name=»SubjectDomainName«>ES</Data>

    <Data Name=»SubjectLogonId«>0x5852c04e</Data>

    <Data Name=»PrivilegeList«>-</Data>

    <Data Name=»SamAccountName«>-</Data>

    <Data Name=»DisplayName«>-</Data>

    <Data Name=»UserPrincipalName«>-</Data>

    <Data Name=»HomeDirectory«>-</Data>

    <Data Name=»HomePath«>-</Data>

    <Data Name=»ScriptPath«>-</Data>

    <Data Name=»ProfilePath«>-</Data>

    <Data Name=»UserWorkstations«>-</Data>

    <Data Name=»PasswordLastSet«>-</Data>

    <Data Name=»AccountExpires«>-</Data>

    <Data Name=»PrimaryGroupId«>-</Data>

    <Data Name=»AllowedToDelegateTo«>-</Data>

    <Data Name=»OldUacValue«>0x211</Data>

    <Data Name=»NewUacValue«>0x210</Data>

    <Data Name=»UserAccountControl«>%%2048</Data>

    <Data Name=»UserParameters«>-</Data>

    <Data Name=»SidHistory«>-</Data>

    <Data Name=»LogonHours«>-</Data>

    </EventData>

    </Event>

    Ответить
    • itpro | 19.09.2013

      Тоже не получилось разобраться как добавить дополнительные поля в события.. :(
      Видимо стоит попробовать сторонний софт, встроенных средств Windows недостаточно…

      Ответить
  5. dmitriy | 22.11.2013

    Добрый день! Такая вещь, как поле «Пользователь» в журнале безопасности  ad w2k3 отображается, а в w2k8 и w2k12  выдает как Н/Д
    удобно было фильтровать изменения по учетной записи пользователя или аудит входа в систему не подскажете как починить?

    Ответить
    • itpro | 25.11.2013

      Тоже напрягает этот факт…
      Приходится выкручиваться, можно в качестве фильтра журнала событий задать собственное XML выражение, например так:
      <QueryList>
      <Query Id=»0″ Path=»Security»>
      <Select Path=»Security»>*[EventData[Data and  (Data=»UserName«)]]</Select>
      </Query>
      </QueryList>
       

      Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.27MB/0.00101 sec