Настройка политики паролей Fine-Grained Password Policy в Windows 2012 R2
В версии Active Directory, представленной в Windows Server 2000 можно было создать только одну политику паролей на весь домен. Данная политика настраивалась в рамках стандартной политики Default Domain Policy. В том случае, если администратор назначает новую GPO с иными настройками паролей на OU, клиентские CSE (Client Side Extensions), игнорировали такие политики. Естественно, такой подход не всегда удобен, и чтобы обойти такое ограничение, администраторам приходилось идти на различные ухищрения (дочерние домены и леса, фильтры и т.д.), что создавало дополнительные трудности.
В этой статье мы покажем особенности настройки и управления гранулированных политик управления паролями на базе Windows Server 2012 R2.
Политики управления паролями Fine-Grained Password Policies
В Windows Server 2008, разработчики добавили новый отдельную от GPO возможность управления настройками паролей Fine-Grained Password Policies (FGPP – гранулированные / раздельные политики обеспечения парольной защиты). Fine-Grained Password Policies позволяют администратору создать в одном домене множество специальных политик управления паролями (Password Settings Policy — PSO), определяющих требования к паролям (длина, сложность, история) и блокировки учетных записей. Политики PSO могут быть назначены на конкретных пользователей или группы, но не на контейнеры (OU) Active Directory. Причем, если к пользователю привязана политика PSO, настройки парольной политики из GPO Default Domain Policy к нему более не применяются.
К примеру, с помощью FGPP, можно наложить более высокие требования на длину и сложность пароля для учетных записей администраторов, сервисных учетных записей или пользователей, имеющих внешний доступ к ресурсам домена (через VPN или DirectAccess).
Основные требования для использования множественных политик паролей FGPP в домене:
- функциональный уровень домена Windows Server 2008 или выше
- парольные политики можно назначить на пользователей или глобальные группы безопасности (global security)
- FGPP политика применяется целиком (нельзя часть настроек описать в GPO, а часть в FGPP)
Главный недостаток новшества в Windows Server 2008– отсутствие удобных инструментов управления политиками паролей, настройку которых можно было выполнить только из низкоуровневых утилит по работе с AD, например ADSIEdit, ldp.exe, LDIFDE.exe.
Настройка Fine-Grained Password Policies в Windows Server 2012 R2
В Windows Server 2012 в консоли ADAC (Active Directory Administration Center) появился новый графический интерфейс для управления парольными политиками Fine-Grained Password Policies. В данном примере мы покажи, как назначить отдельную парольную политику на доменную группу Domain Admins.
Итак, на контроллере домена с правами администратора запустите консоль Active Directory Administrative Center (ADAC), переключитесь в древовидный вид и разверните контейнер System. Найдите контейнер Password Settings Container, щелкните по нему ПКМ и выберите New -> Password Settings
В открывшемся окне нужно указать имя политики паролей (в нашем примере Password Policy for Domain Admin) и задать ее настройки. Все поля стандартные: минимальная длина и сложность пароля, количество хранимых паролей в истории, параметры блокировки при неправильном введении пароля и т.д. Обратите внимание на атрибут Precedence. Данный атрибут определяет приоритет данной политики паролей. Если на объект действую несколько политик FGPP, к объекту будет применена политика с меньшим значением в поле Precedence.
Примечание.
- Если на пользователя действуют две политики с одинаковыми значениями Precedence, будет применена политика с меньшим GUID.
- Если на пользователя назначены несколько политик, причем одна из них действует через группу безопасности AD, а вторая – напрямую на учетную запись, то будет применена политика, назначенная на учетку.
Затем в секции Direct Applies To нужно добавить группы/пользователей, на которых должна действовать политика (в этом примере Domain Admin). Сохраните политику.
С этого момента данная парольная политика будет применяться на всех членов группы Domain Admin. Запустим консоль Active Directory Users and Computers (с установленной опцией Advanced Features) и откроем свойства любого пользователя из группы Domain Admin. Перейдите на вкладку Attribute Editor и в поле Filter выберите опцию Constructed.
Найдите атрибут пользователя msDS-ResultantPSO. В этом атрибуте указывается действующая на пользователя парольная политика FGPP (CN=Password Policy for Domain Admin,CN=Password Settings Container,CN=System,DC=winitpro,DC=ru).
Также действующую политику PSO для пользователя можно получить с помощью dsget:
dsget user «CN=Dmitriy,OU=Admins,DC=winitpro,DC=ru» –effectivepso
Настройка политики Fine-Grained Password Policy с помощью PowerShell
Естественно, в Windows Server 2012 R2 политики PSO можно создать и назначить на пользователей с помощью PowerShell:
Создадим политику:
New-ADFineGrainedPasswordPolicy -Name “Admin PSO Policy” -Precedence 10 -ComplexityEnabled $true -Description “Domain password policy for admins”-DisplayName “Admin PSO Policy” -LockoutDuration “0.10:00:00” -LockoutObservationWindow “0.00:20:00” -LockoutThreshold 5 -MaxPasswordAge “12.00:00:00” -MinPasswordAge “1.00:00:00” -MinPasswordLength 10 -PasswordHistoryCount 4 -ReversibleEncryptionEnabled $false
Назначим политику на группу пользователей:
Add-ADFineGrainedPasswordPolicySubject “Admin PSO Policy” -Subjects “Domain Admins”
Политика паролей учетных записей в Active Directory
Для обеспечения высокого уровня безопасности учетных записей в домене Active Directory администратору необходимо настроить и внедрить политику паролей, обеспечивающей достаточную сложность, длину пароля и частоту смены пароля пользователей и сервисных учетных записей. Тем самым можно усложнить злоумышленнику возможность подбора или перехвата паролей пользователей.
По-умолчанию в домене AD настройка единых требований к паролям пользователей осуществляется с помощью групповых политик. Политика паролей учетных записей домена настраивается в политике Default Domain Policy.
- Чтобы настроить политику паролей, откройте консоль управления доменными GPO (Group Policy Management console – gpmc.msc).
- Разверните ваш домен и найдите политику Default Domain Policy. Щелкните по ней ПКМ и выберите Edit.
- Политики паролей находятся в следующем разделе редактора GPO: Конфигурация компьютера -> Конфигурация Windows -> Параметры безопасности -> Политики учетных записей -> Политика паролей (Computer configuration-> Windows Settings->Security Settings -> Account Policies -> Password Policy).
- Чтобы отредактировать настройки нужной политики, дважды щелкните по ней. Чтобы включить политику, отметьте галку Define this policy settings и укажите необходимую настройку (в примере на скриншоте я задал минимальную длину пароля пользователя 8 символов). Сохраните изменения.
- Новые настройки парольной политики будут применены ко все компьютерам домена в фоновом режиме в течении некоторого времени (90 минут), при загрузке компьютера, либо можно применить параметры немедленно, выполнив команду gpupdate /force.
Теперь рассмотрим все доступные для настройки параметров управления паролями. Всего имеются шесть политик паролей:
- Вести журнал паролей (Enforce password history) – определяет количество старых паролей, которые хранятся в AD, запрещая пользователю повторно использовать старый пароль.
- Максимальный срок действия пароля (Maximum password age) – определяет срок действия пароля в днях. После истечения срока дейсвтвия пароля система потребует у пользователя сменить пароль. Обеспечивает регулярность смены пароля пользователями.
- Минимальный срок жизни пароля (Minimum password age) – как часто пользователи могут менять пароль. Этот параметр не позволит пользователю несколько раз подряд сменить пароль, чтобы вернуться к любимому старому паролю, перезатерев пароли в журнале Password History. Как правило тут стоит оставить 1 день, чтобы предоставить пользователю самому сменить пароль в случае его компрометации (иначе менять пароль пользователю придется администратору).
- Минимальная длина пароля (Minimum password length) – не рекомендуется делать пароль короче, чем 8 символов (если указать тут 0 – значит пароль не требуется).
- Пароль должен отвечать требование сложности (Password must meet complexity requirements) – при включении этой политики пользователю запрещено использовать имя своей учетной записи в пароле (не более чем два символа подряд из username или Firstname), также в пароле должны использоваться 3 типа символов из следующего списка: цифры (0 – 9), символы в верхнем регистре, символы в нижнем регистре, спец символы ($, #, % и т.д.). Кроме того, для исключения использования простых паролей (из словаря популярных паролей) рекомендуется периодически выполнять аудит паролей учетных записей домена.
- Хранить пароли, использую обратимое шифрование (Store passwords using reversible encryption) – пароли пользователей в базе AD хранятся в зашифрованном виде, но в некоторых случаях некоторым приложениям нужно предоставить доступ к паролям в домене. При включении этой политики пароли хранятся в менее защищенной виде (по сути открытом виде), что небезопасно (можно получить доступ к базе паролей при компрометации DC, в качестве одной из мер защиты можно использовать RODC).
Кроме того, нужно отдельно выделить настройки в разделе GPO: Политика блокировки учетной записи (Account Lockout Password):
- Пороговое значение блокировки (Account Lockout Threshold) – как много попыток набрать неверный пароль может сделать пользователь перед тем, как его учетная запись будет заблокирована.
- Продолжительность блокировки учетной записи (Account Lockout Duration) – на какое время нужно блокировать учетную запись (запретить вход), если пользователь ввел несколько раз неверный пароль.
- Время до сброса счетчика блокировки (Reset account lockout counter after) – через сколько минут после последнего ввода неверного пароля счетчик неверных паролей (Account Lockout Threshold) будет сброшен.
Настройки парольных политик домена AD по-умолчанию перечислены в таблице:
Политика | Значение по-умолчанию |
Enforce password history | 24 пароля |
Maximum password age | 42 дня |
Minimum password age | 1 день |
Minimum password length | 7 |
Password must meet complexity requirements | Включено |
Store passwords using reversible encryption | Отключено |
Account lockout duration | Не определено |
Account lockout threshold | 0 |
Reset account lockout counter after | Не определено |
В домене может быть только одна подобная политика паролей, которая применяется на корень домена (есть, конечно, нюансы, но о них ниже). Если применить политику паролей на OU, ее настройки будут игнорированы. За управление доменной парольной политики отвечает контроллер домена, владелец FSMO роли PDC Emulator. Политика применяется к компьютерам домена, а не пользователям. Для редактирования настроек Default Domain Policy необходимы права администратора домена.
Параметры групповой политики управления паролями действуют на всех пользователей и компьютеры домена. Если нужно создать отдельные политики паролей для различных групп пользователей, вам нужно использовать функционал раздельных политик паролей Fine-Grained Password Policies, которые появились в версии AD Windows Server 2008. Гранулированные политики паролей позволяют, например, указать повышенную длину или сложность паролей для учетных записей администраторов (см. статью о защите административных учетных записей в AD), или наоборот упростить (отключить) пароль для каких-то учетных записей.
Защита Windows от извлечения пароля из памяти с помощью Mimikatz
Конец июня 2017 года запомнился IT сообществу по массовому заражению множества крупнейших компаний и госучреждений России, Украины и других стран новым вирусом-шифровальщиком Petya (NotPetya). В большинстве случаев, после проникновения внутрь корпоративной сети, Petya молниеносно распространялся по всем компьютерам и серверам домена, парализуя до 70-100% всей Windows-инфраструктуры. И хотя, одним из методов распространения Пети между компьютерами сети было использование эксплоита EternalBlue (как и в случае с WannaCry ), это был не основной канал распространения вымогателя. В отличии от WCry, который распространялся исключительно благодаря уязвимости в SMBv1 , NotPetya были изначально заточен под корпоративные сети. После заражения системы, шифровальщик с помощью общедоступной утилиты Mimikatz, получал учетные данные (пароли, хэши) пользователей компьютера и использовал их для дальнейшего распространения по сети с помощью WMI и PsExec, вплоть до полного контроля над доменом. Соответственно, для защиты всех систем не достаточно было установить обновление MS17-010 .
В этой статье мы рассмотрим основные методики защиты Windows систем в домене Active Directory от атак посредством Mimikatz–like инструментов.
Утилита Mimikatz с помощью модуля sekurlsa позволяет извлечь пароли и хэши авторизованных пользователей, хранящиеся в памяти системного процесса LSASS.EXE ( Local Security Subsystem Service ). У нас уже была статья с примером использования mimikatz для получения в паролей пользователей в открытом виде (из WDigest, LiveSSP и SSP).
Предотвращение возможности получения debug
В статье по ссылке выше видно, как использование привилегии debug, позволяет Mimikatz получить доступ к системному процессу LSASS и извлечь из него пароли.
По умолчанию, права на использование режима debug предоставляются локальной группе администраторов (BUILTIN\Administrators). Хотя в 99% случаях эта привилегия абсолютно не используется администраторами (нужна она как правило системным программистам), соответственно, в целях безопасности возможность использования привелегии SeDebugPrivilege лучше отключить. Делается это через групповую политику (локальную или доменную). Перейдите в раздел Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment и включите политику Debug Program . В нее нужно добавить доменную группу пользователей, которым могут понадобится права debug (как правило, разработчики), либо оставить эту группу пустой, чтобы данного права не было не у кого.
Теперь, если попробовать получить debug через mimikatz появится ошибка: