Как расследовать блокировку аккаунта в Active Directory

1 декабря 2020 г. 10:50
 10353

Блокировки учетных записей Active Directory могут быть серьезной проблемой для организаций.

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

Но что делать, если у вас возникли проблемы с блокировкой учетных записей?

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

Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName

Кстати, параметр UsersOnly позволяет не включать объекты «компьютер» в результаты, а команда Select-Object фильтрует список результатов, отображая только имя пользователя и имя его учетной записи.

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

Unlock-ADAccount -Identity

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

Search-ADAccount –LockedOut | Unlock-ADAccount

Неоспоримо важно иметь возможность разблокировать учетные записи пользователей, но не менее важно иметь возможность узнать, почему учетные записи были заблокированы. Вы можете получить некоторое представление о проблеме, воспользовавшись вариантом команды Search-ADAccount, который вы видели минуту назад:

Search-ADAccount -LockedOut | Select-Object *

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

Search-ADAccount -LockedOut | Select-Object * | Export-CSV -Path c:\temp\lockout.csv

Можно пойти дальше в диагностике блокировок Active Directory с помощью родных инструментов Windows, но для этого вам нужно будет внести изменения в параметры групповой политики до того как произойдет инцидент с блокировками учеток. Как ни странно, «по умолчанию» блокировки учетных записей не журналируются.

Вы можете включить ведение логов, открыв редактор групповой политики и перейдя по дереву консоли к Computer Configuration | Windows Settings | Security Settings | Advanced Audit Policy Configuration | System Audit Policies | Account Management. Теперь включите аудит «успеха» и «неудачи» для управления учетными записями пользователей.

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

Get-WinEvent -FilterHashtable @{logname="Security"; ID=4740}

Есть большая вероятность того, что эта команда выдаст огромное количество результатов. Можно использовать команду Select-Object, чтобы ограничить количество показанных результатов. Если, например, вы хотите посмотреть только десять последних результатов, можно воспользоваться такой командой:

Get-WinEvent -FilterHashtable @{logname="Security"; ID=4740} | Select-Object UserID, Message -Last 10

Обратите внимание, ссылки на UserID и Message включены в команду Select-Object. UserID вызовет отображение имени пользователя, а ссылка на Message вызовет отображение в PowerShell подробной информации о событии. Возможно, самым полезным элементом, отображаемым в сообщении, является Caller Computer Name, которое отражает имя машины, из-за которого учетная запись пользователя была заблокирована. При необходимости можно также использовать свойство TimeCreated, чтобы узнать, когда произошла блокировка.

Приведенная выше команда иногда может обрезать сообщение. Если это случилось, вы можете обойти эту проблему, добавив команду Format-List, как показано ниже:

Get-WinEvent -FilterHashtable @{logname="Security"; ID=4740} | Select-Object UserID, Message -Last 10 | Format-List

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

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

Перевод сделан со статьи:  https://thehackernews.com