Событие смены пароля

Событие смены пароля Хостинг

Отслеживание и аудит изменений паролей в домене Active Directory (AD) имеют решающее значение для поддержания безопасной среды и раннего предотвращения злоумышленников. К счастью, AD предоставляет информацию, необходимую для отслеживания этих изменений, несмотря на то, что временами ее сложно разобрать и понять. КРУГИ
является отличным примером этого.

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

Это руководство спонсируется Specops и их полезным инструментом Password Auditor
.

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

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

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

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

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

  • Выберите  Политика аудита
    чтобы перечислить все подполитики.

  • Двойной щелчок  Аудит управления аккаунтом
    для просмотра его свойств.

  • Включить  Определить эти параметры политики
    , и отметьте  Успех
    возможность аудита успешных событий. См. рис. 1.

Настройка  Аудит управления аккаунтом
характеристики.

Помимо настройки параметров GPO, 
списки управления доступом к безопасности (SACL) также должны быть настроены для соответствующих объектов AD. Чтобы узнать о настройке SACL, нажмите  здесь
.

Ответ на смену пароля с помощью ADAudit Plus

ADAudit Pus расширяет собственные возможности аудита, предоставляя оповещения в режиме реального времени об изменении пароля. Вы можете настроить оповещения, чтобы уведомлять вас об изменении пароля учетной записи службы, как показано на рисунках 3 и 5. Вы также сможете получать отчеты о службах, запущенных на определенном компьютере, с информацией о службе, учетной записи службы и службе. статус, как показано на рис. 6.


. Оповещения в режиме реального времени в ADAudit Plus.


5. Отчет обо всех изменениях AD в ADAudit Plus.

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

Чтобы попробовать ADAudit Plus для своих сервисных аккаунтов, загрузите бесплатную 30-дневную пробную версию
.

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

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

Введение:

Вообще, у Microsoft есть такой сервис: Password Change Notification Service (PCNS). Его назначение — вызвать событие перед изменением пароля пользователя и после, соответственно. С этими событиями может быть передан пароль в открытом виде (естественно по защищенным каналам), это то, что нам и нужно.

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

  • PasswdHk (Password Filter DLL)
    , это часть проекта LDAP Account Sync
    ;
  • И немного скриптовой магии.

Все ниже делалось для Windows Server 2008R2. Итак, поехали!

PasswdHk

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

Скачиваем установщик (для x64), и штатно ставим библиотеку. Затем нужно скопировать C:\Windows\System32\passwdhk.dll в C:\Windows\SysWOW64\.

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

Недоделки в утилите!!!

Учтите! Каждое жмаконье по кнопке Apply приведет к добавлению еще одной строки в параметре реестра «SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages», что придется корректировать ручками.

Приведу настройки для нашей лабораторной системы:

Событие смены пароля

Настройки в тексте

Разделы Pre и Post Change задают действия соответственно до изменения пароля (можно реализовать свой собственный фильтр сложности пароля) и после изменения.

  • Program: C:\Windows\system32\cmd.exe (Программа запускаемая для обработки события);
  • Arguments: /c start C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -File d:\control\check-user.ps1 (Аргументы командной строки, передаваемые программе выше);
  • Password Escaping задает экранирование символов пароля, но к сожалению только его. Экранирование имени пользователя не происходит, ко всему прочему, dll явно не в курсе кодировок типа UTF-8, поэтому логин в кириллице будет выглядеть крайне печально (может у кого удастся произвести декодирование результата в нормальном виде?)

Описанный выше вариант с запуском через команду start не случаен, он позволяет обойти специфическую проблему, когда программа, запускаемая для обработки пароля, будет выполнятся больше чем указанные таймауты (Wait Time). Так как я запускал все это на сильно нагруженном хосте с виртуальными машинами, в машине с крайне скромными ресурсами, запуск PowerShell оболочки и подгрузки модуля в холодную (после длительного ожидания), легко переваливал за 40 сек (в это время, пользователь индицировавший смену пароля тоже сидит и ждет), и при нескромных таймаутах в 30 сек вызов обработчика прерывался принудительно.

Обработка в PowerShell

Для нашей лабораторной работы я выбрал PowerShell (как модное явление, вы же можете сделать обработку на чем угодно).

   Import-Module ActiveDirectory
$csv_file = "d:\passwd.csv"
$domain=(Get-ADDomain -Server localhost).DNSRoot
$user=$args[0]
$passwd=$args[1]
if(Get-ADUser -Filter {sAMAccountName -eq $user } -SearchScope 2 -Server localhost){
	$csv = @()
	$csv_new = New-Object System.Object
	$csv_new | Add-Member -MemberType NoteProperty -Name "DOMAIN" -Value $domain
	$csv_new | Add-Member -MemberType NoteProperty -Name "USER" -Value $user
	$csv_new | Add-Member -MemberType NoteProperty -Name "PASSWD" -Value $passwd
	$csv += $csv_new
	if (Test-Path  $csv_file){
	$csv | ConvertTo-Csv -NoTypeInformation -delimiter "`t" `
		| select -Skip 1 `
		| Out-File -Encoding UTF8 -Append $csv_file
	}
	else{
		$csv | ConvertTo-Csv -NoTypeInformation -delimiter "`t" `
			| Out-File -Encoding UTF8 -Append $csv_file
	}
};
  
  

Заключение

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

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

Событие смены пароля

Рэнди Франклин Смит (CISA, SSCP, Security MVP) имеет в своем арсенале очень полезный документ
, рассказывающий о том, какие события (event IDs) обязательно должны отслеживаться в рамках обеспечения информационной безопасности Windows. В этом документе изложена крайне полезная информация, которая позволит Вам “выжать” максимум из штатной системы аудита. Мы подготовили перевод этого материала. Заинтересованных приглашаем под кат.


О том, как настроить аудит
, мы уже обстоятельно писали в одном из наших постов. Но из всех event id, которые встречаются в журналах событий, необходимо остановить свое внимание на нескольких критических важных. На каких именно – решать каждому. Однако Рэнди Франклин Смит предлагает сосредоточить внимание на 10 важных событиях безопасности в Windows.

Контроллеры доменов

Event ID — (Категория) — Описание

2) 676, или Failed 672 или 4768

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

Событие 676/4768 логгируется для других типов неудачной аутентификации. Таблица кодов Kerberos приведена ниже.

ВНИМАНИЕ: В Windows 2003 Server событие отказа записывается как 672 вместо 676.

3) 681 или Failed 680 или 4776

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

Событие 681/4776 на контроллере домена указывает на неудачную попытку входа в систему через

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

Коды ошибок NTLM приведены ниже.

ВНИМАНИЕ: В Windows 2003 Server событие отказа записывается как 680 вместо 681.

4) 642 или 4738

(Аудит управления учетными записями)

Событие 642/4738 указывает на изменения в указанной учетной записи, такие как сброс пароля или активация деактивированной до этого учетной записи. Описание события уточняется в соответствие с типом изменения.

Читайте также:  15 лучших бесплатных онлайн-инструментов для DDoS-атак

5) 632 или 4728; 636 или 4732; 660 или 4756

(Аудит управления учетными записями)

Все три события указывают на то, что указанный пользователь был добавлен в определенную группу. Обозначены Глобальная (Global), Локальная (Local) и Общая (Universal) соответственно для каждого ID.

6) 624 или 4720

(Аудит управления учетными записями)

Была создана новая учетная запись пользователя

7) 644 или 4740

(Аудит управления учетными записями)

Учетная запись указанного пользователя была заблокирована после нескольких попыток входа

8) 517 или 1102

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

Указанный пользователь очистил журнал безопасности

Вход и выход из системы (Logon/Logoff)

Event Id — Описание

528 или 4624
— Успешный вход в систему

529 или 4625
— Отказ входа в систему – Неизвестное имя пользователя или неверный пароль

530 или 4625 Отказ входа в систему – Вход в систему не был осуществлен в течение обозначенного периода времени

531 или 4625
— Отказ входа в систему – Учетная запись временно деактивирована

532 или 4625
— Отказ входа в систему – Срок использования указанной учетной записи истек

533 или 4625
— Отказ входа в систему – Пользователю не разрешается осуществлять вход в систему на данном компьютере

534 или 4625 или 5461
— Отказ входа в систему – Пользователь не был разрешен запрашиваемый тип входа на данном компьютере

535 или 4625
— Отказ входа в систему – Срок действия пароля указанной учетной записи истек

539 или 4625
— Отказ входа в систему – Учетная запись заблокирована

540 или 4624
— Успешный сетевой вход в систему (Только Windows 2000, XP, 2003)

Типы входов в систему (Logon Types)

Тип входа в систему — Описание

2
— Интерактивный (вход с клавиатуры или экрана системы)

3
— Сетевой (например, подключение к общей папке на этом компьютере из любого места в сети или IIS вход — Никогда не заходил 528 на Windows Server 2000 и выше. См. событие 540)

4
— Пакет (batch) (например, запланированная задача)

5
— Служба (Запуск службы)

7
— Разблокировка (например, необслуживаемая рабочая станция с защищенным паролем скринсейвером)

8
— NetworkCleartext (Вход с полномочиями (credentials), отправленными в виде простого текст. Часто обозначает вход в IIS с “базовой аутентификацией”)

9
— NewCredentials

10
— RemoteInteractive (Терминальные службы, Удаленный рабочий стол или удаленный помощник)

11
— CachedInteractive (вход с кешированными доменными полномочиями, например, вход на рабочую станцию, которая находится не в сети)

Коды отказов Kerberos

Код ошибки — Причина

6
— Имя пользователя не существует

12
— Ограничение рабочей машины; ограничение времени входа в систему

18
— Учетная запись деактивирована, заблокирована или истек срок ее действия

23
— Истек срок действия пароля пользователя

24
— Предварительная аутентификация не удалась; обычно причиной является неверный пароль

32
— Истек срок действия заявки. Это нормальное событие, которое логгируется учетными записями компьютеров

37
— Время на рабочей машины давно не синхронизировалось со временем на контроллере домена

Коды ошибок NTLM

Код ошибки (десятичная система) — Код ошибки (16-ричная система) — Описание

Еще раз продублируем ссылку на скачивание документа на сайте Рэнди Франклина Смита www.ultimatewindowssecurity.com/securitylog/quickref/Default.aspx
. Нужно будет заполнить небольшую форму, чтобы получить к нему доступ.

P. S. Хотите полностью автоматизировать работу с журналами событий? Попробуйте новую версию NetWrix Event Log Manager 4.0
, которая осуществляет сбор и архивирование журналов событий, строит отчеты и генерирует оповещения в режиме реального времени. Программа собирает данные с многочисленных компьютеров сети, предупреждает Вас о критических событиях и централизованно хранит данные обо всех событиях в сжатом формате для удобства анализа архивных данных журналов. Доступна бесплатная версия программы для 10 контроллеров доменов и 100 компьютеров.

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

Аудит доменных служб 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

Событие смены пароля

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

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

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

auditpol /h

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

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

Событие смены пароля

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

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

Событие смены пароля

Рис.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 и других событий;

— Аудит доступа к глобальным объектам
– аудит файловой системы и реестра.

Система аудита в консоли Просмотр события
сразу покажет событие с номером 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 Чтобы не потерять старые события безопасности, следует увеличить размер журнала и включить архивацию

Но теперь необходимо будет решить проблему поиска событий во множестве архивов.

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

Enable Group Policy for Active Directory Auditing

The necessary auditing information you need to audit AD password changes is stored on domain controllers (DC), but the domain controller in the Primary Domain Controller (PDC) emulator role will ultimately process the request. But, by default, the necessary auditing isn’t enabled on DCs. Let’s change that.

To find the DC holding the PDCe role, use the PowerShell command, (Get-ADDomain).PDCEmulator
.

To enable password change auditing, create a new group policy
object (GPO). This GPO will be created and linked to the entire domain.

You could change the Default Domain Policy but Microsoft recommends against this. If you ever need to make a change across DCs in your environment, always create a separate GPO.

Though you are creating and linking a GPO to the entire domain, the relevant audit events are only available on DCs. But, it is beneficial to have those same logs on domain-joined clients because it may be useful in the event that a local non-AD account password is changed. If you’re only auditing Active Directory accounts, you can instead link the GPO to the Domain Controllers organizational unit (OU).

On your domain-joined workstation, create a GPO that forces DCs to begin auditing password changes:

  1. Open the Group Policy Management snap-in by going to Start → Run and typing gpmc.msc
    .
Creating a GPO to hold the user password auditing settings.
Creating a GPO to hold the user password auditing settings.

3. Once the policy has been created, right-click it, and choose Edit to open the Group Policy Management Editor.

Читайте также:  Повышение рейтинга SEO: раскрытие возможностей роботов для входа в систему
Open the GPO for editing.
Open the GPO for editing.

5. Next, double-click on the Audit Account Management
policy setting and check the checkbox Define these policy settings
while ensuring both the Success
and Failure
checkboxes are checked. By doing so, successful and unsuccessful password attempts will be logged.

Enable Success and Failure for the Audit account management policy in the Group Policy Management Editor.
Enable Success and Failure for the Audit account management policy in the Group Policy Management Editor.

6. Click OK
to close and exit the editor.

7. Open up a Remote Desktop (RDP) client and connect to the domain controller running the PDC emulator (PDCe) AD role.

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

8. На контроллере домена PDCe откройте командную строку или консоль PowerShell и запустите gpupdate
для принудительного обновления групповой политики.

Если у вас есть PowerShell Remoting
включены на ваших контроллерах домена, вы также можете вызвать обновление GPO таким же образом.

Force a group policy update via the command line.
Принудительное обновление групповой политики через командную строку.

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

Поиск событий аудита с помощью PowerShell

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

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

Поскольку PowerShell может использовать тот же фильтр, что и средство просмотра событий, давайте сэкономим время, извлечем этот фильтр и используем его с PowerShell Get-WinEvent
командлет.

При этом убедитесь, что вы по-прежнему подключены к контроллеру домена с помощью средства просмотра событий:

  1. Вернуться к Текущий журнал фильтрации
    экран. У вас все еще должны быть установлены все критерии фильтрации.
  2. Нажмите на XML
    вкладка вверху. Эта вкладка содержит необработанный XML-код, который средство просмотра событий передает в журнал событий для отображения только определенных событий. PowerShell также может использовать этот XML.
  3. Выделите и скопируйте весь текст
    и
    как показано ниже. Этот текст представляет собой XPath
    значение, которое Get-WinEvent
    командлет можно использовать.
Demonstrate how to get the XPath easily for the Get-WinEvent cmdlet.
Продемонстрируйте, как легко получить XPath для командлета Get-WinEvent.
 Get-WinEvent -ComputereName <YOUR DC> -LogName 'Security' -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13824 and (EventID=4723 or EventID=4724 or EventID=4740 or EventID=4767)]]"
  
Demonstrate using Get-WinEvent to show the results of the Event Viewer Security log.
Продемонстрируйте использование Get-WinEvent для отображения результатов журнала безопасности средства просмотра событий.

Вы видели, как использовать PowerShell Get-WinEvent
командлет для аудита событий AD. Если вы планируете делать это часто, всегда полезно использовать многоразовый инструмент для использования в других сценариях или процедурах автоматизации.

В этом разделе давайте создадим функцию PowerShell
называется Get-ADPasswordEvent
. Эта функция исследует множество методов, которые могут помочь вам получить только ту информацию, которую вы хотите, без всех дополнительных свойств, которые вы получаете Get-WinEvent.
.

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

  • Создает фильтр XPath
  • Пробеги Get-WinEvent
    использование фильтра, извлекающего определенные события пароля управления учетной записью AD
  • Возвращает пользовательский вывод, относящийся к текущей задаче.
 Function Get-ADPasswordEvent {
  [CmdletBinding()]

  Param(
    [Parameter(Position=0)]
    [System.Collections.Generic.List[Int]]$EventID = @(4723,4724,4740,4767),

    [Parameter(Position=1)]
    [Int]$Hours,

    [Parameter(Position=2)]
    [ValidateSet("Success","Failure")]
    [System.Collections.Generic.List[String]]$EventType = @("Success","Failure"),
    [Parameter(Position=3)]
    [string]$ComputerName
  )

  Process {
    # The event type filter values are from the Audit Success and Audit Failure in the Keywords section of the Event Viewer filter.
    If ($EventType -Contains "Success" -And $EventType -Contains "Failure") {
      $EventTypeFilter = " and (band(Keywords,13510798882111488))"
    } ElseIF ($EventType -Contains "Success") {
      $EventTypeFilter = " and (band(Keywords,9007199254740992))"
    } Else {
      $EventTypeFilter = " and (band(Keywords,4503599627370496))"
    }

    # We construct a filter to pass to -FilterXPath. Hours should be returned in milliseconds and we use Join-String to properly format the EventID combinations.
    $Filter = "*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 13824{0}{1}{2}]]" -F
      (($Hours) ? " and TimeCreated[timediff(@SystemTime) <= $((New-TimeSpan -Hours $Hours).TotalMilliseconds)]" : $Null),
      (($EventId) ? ($EventId | Join-String -OutputPrefix " and (" -FormatString 'EventID={0}' -Separator ' or ' -OutputSuffix ")") : $Null),
    $EventTypeFilter
    
    Write-Verbose $Filter

    $Events = Get-WinEvent -ComputerName $ComputerName -LogName 'Security' -FilterXPath $Filter

    # For the Password Change and Reset ID's we format the Details to be more readable and show what is going on regarding the target (account being changed) and the subject (who did the changing).
    $Events | ForEach-Object {
      $Event = $_
      
      Switch ($Event.ID) {
        4723 {
          $Description = "Account Password Change Attempt"

          $Details = [PSCustomObject]@{
            "TargetAccount"  = ("{0}\{1}" -F ($Event.Properties)[1].Value, ($Event.Properties)[0].Value)
            "TargetSID"      = ($Event.Properties)[2].Value
            "SubjectAccount" = ("{0}\{1}" -F ($Event.Properties)[5].Value, ($Event.Properties)[4].Value)
            "SubjectSID"     = ($Event.Properties)[3].Value
          }

          Break
        }
        4724 {
          $Description = "Account Password Reset Attempt"
          
          $Details = [PSCustomObject]@{
            "TargetAccount"  = ("{0}\{1}" -F ($Event.Properties)[1].Value, ($Event.Properties)[0].Value)
            "TargetSID"      = ($Event.Properties)[2].Value
            "SubjectAccount" = ("{0}\{1}" -F ($Event.Properties)[5].Value, ($Event.Properties)[4].Value)
            "SubjectSID"     = ($Event.Properties)[3].Value
          }

          Break
        }
        4740 {
          $Description = "Account Locked Out"

          $Details = $Event.Message
          Break
        }
        4767 {
          $Description = "Account Unlocked"

          $Details = $Event.Message
          Break
        }
        Default {
          $Description = $Null
          $Details     = $Event.Message
          Break
        }
      }

    # Finally let's output our custom object that shows the event information in a more readable format.
      [PSCustomObject]@{
        "TimeCreated" = (Get-Date $_.TimeCreated)
        "ID"          = $_.ID
        "Description" = $Description
        "EventType"   = (($_.KeywordsDisplayNames -EQ 'Audit Success') ? "Success" : "Failure")
        "Details"     = $Details
      }
    }
  }
}

  

После создания поместите эту функцию в консоль PowerShell и запустите ее без параметров.

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

Вы можете пройти выход из Get-ADPasswordReset
функция до Format-Table
чтобы сделать вывод немного легче для чтения.

Retrieving AD account management password events using the Get-ADPasswordEvents function.
Получение событий пароля управления учетной записью AD с помощью функции Get-ADPasswordEvents.

Расшифровка регистрации событий управления учетными записями

На вашей машине, присоединенной к домену:

  1. Откройте средство просмотра событий Windows, запустив eventvwr.msc
    или с помощью меню «Пуск».
Connect to Another Computer
Подключиться к другому компьютеру

3. Укажите имя контроллера домена, выполняющего роль PDCe на другом компьютере:
поле и нажмите OK
для подключения средства просмотра событий к источнику событий контроллера домена.

Provide the name of the DC running the PDCe role in the Another computer
Укажите имя контроллера домена с ролью PDCe на другом компьютере

4. Разверните пункт Журналы Windows и нажмите Безопасность
. Это приведет вас к журналу безопасности .
как показано ниже.

Security Log
Журнал безопасности
Demonstrate the filtered view of events in the Event Viewer.
Демонстрация отфильтрованного просмотра событий в средстве просмотра событий.
  • 4723 – Предпринята попытка изменить пароль учетной записи.
  • 4724 – Предпринята попытка сбросить пароль учетной записи.
  • 4740 – Учетная запись пользователя заблокирована.
  • 4767 – Учетная запись пользователя разблокирована.

Вы увидите много событий в Безопасность
log, поэтому вам нужно будет создать фильтры, чтобы сузить список только изменений паролей.

Фильтрация событий смены пароля

В средстве просмотра событий вы можете создать фильтр. Фильтр — это способ ограничить количество отображаемых событий, и он является обязательным при просмотре журнала событий безопасности Windows.

Чтобы создать этот фильтр в средстве просмотра событий:

  1. Щелкните правой кнопкой мыши Безопасность
    log и нажмите Filter Current Log…
    как показано ниже.
Filter Current Log
Фильтр текущего журнала
  • Источники событий:
    Аудит безопасности Microsoft Windows.
  • Идентификаторы событий:
    4723,4724,4740,4767
  • Категория задачи:
    Управление учетными записями пользователей.

Когда вы закончите, ваш Текущий журнал фильтрации
экран должен выглядеть, как показано ниже.

Create a filter for the Security log.
Создать фильтр для журнала безопасности.

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

Demonstrate the filtered view of events in the Event Viewer.
Демонстрация отфильтрованного просмотра событий в средстве просмотра событий.

Внедрение улучшенных решений для аудита паролей

Независимо от того, используете ли вы средство просмотра событий или PowerShell, вам придется проделать несколько разных шагов, чтобы найти события аудита AD. Собственные инструменты и возможности Active Directory, безусловно, могут быть расширены, и для этого сторонние инструменты, такие как Specops Password Auditor
может помочь.

Инструмент Specops Password Auditor может не только находить эти события, но и создавать подробные отчеты, включающие изменения, пароли с истекшим сроком действия, пустые пароли и многое другое. Specops Password Auditor может заполнить недостающие пробелы в аудите паролей Active Directory.

Предпосылки

  • Среда Active Directory с по крайней мере одной рабочей станцией, присоединенной к домену. Учебник относится к функциональному уровню домена Windows Server 2016, однако расширенные политики аудита были введены в Windows Server 2008 через сценарий входа и через объект групповой политики в Windows Server 2008 R2.
  • Средства удаленного администрирования сервера (RSAT) для Active Directory
    установлен на вашей рабочей станции, присоединенной к домену
  • PowerShell 7.x
Оцените статью
Хостинги