Трёхуровневая модель администрирования Active Directory

Зачем нужна трёхуровневая модель

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

Трёхуровневая модель (Tiered Administrative Model) от Microsoft разделяет инфраструктуру на три уровня доверия:

  • Tier 0 — контроллеры домена, PKI, ADFS, SCCM, SCOM. Полный контроль над Active Directory
  • Tier 1 — серверы приложений, файловые серверы, SQL, Exchange. Серверная инфраструктура
  • Tier 2 — рабочие станции пользователей, принтеры, мобильные устройства

Ключевой принцип: учётные записи более высокого уровня никогда не используются на ресурсах более низкого уровня. Администратор Tier 0 не должен входить на рабочую станцию (Tier 2), иначе его учётные данные могут быть перехвачены инструментами типа Mimikatz.

Структура учётных записей и групп

Для каждого уровня создаётся отдельный набор учётных записей и групп. Один и тот же человек может иметь до четырёх аккаунтов: обычный пользовательский и по одному на каждый Tier.

# Создание OU-структуры для Tiered Model
New-ADOrganizationalUnit -Name "Tier 0" -Path "OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Accounts" -Path "OU=Tier 0,OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Groups" -Path "OU=Tier 0,OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Devices" -Path "OU=Tier 0,OU=Admin,DC=domain,DC=local"

New-ADOrganizationalUnit -Name "Tier 1" -Path "OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Accounts" -Path "OU=Tier 1,OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Groups" -Path "OU=Tier 1,OU=Admin,DC=domain,DC=local"

New-ADOrganizationalUnit -Name "Tier 2" -Path "OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Accounts" -Path "OU=Tier 2,OU=Admin,DC=domain,DC=local"
New-ADOrganizationalUnit -Name "Groups" -Path "OU=Tier 2,OU=Admin,DC=domain,DC=local"

Именование учётных записей должно чётко отражать принадлежность к уровню, например: t0-ivanov, t1-ivanov, t2-ivanov. Обычная учётная запись ivanov используется только для повседневной работы без привилегий.

Группы и права для каждого Tier

Создайте группы безопасности для каждого уровня:

# Tier 0
New-ADGroup -Name "T0-Admins" -GroupScope Global `
  -Path "OU=Groups,OU=Tier 0,OU=Admin,DC=domain,DC=local"
New-ADGroup -Name "T0-DC-Admins" -GroupScope Global `
  -Path "OU=Groups,OU=Tier 0,OU=Admin,DC=domain,DC=local"

# Tier 1
New-ADGroup -Name "T1-ServerAdmins" -GroupScope Global `
  -Path "OU=Groups,OU=Tier 1,OU=Admin,DC=domain,DC=local"
New-ADGroup -Name "T1-SQLAdmins" -GroupScope Global `
  -Path "OU=Groups,OU=Tier 1,OU=Admin,DC=domain,DC=local"

# Tier 2
New-ADGroup -Name "T2-WorkstationAdmins" -GroupScope Global `
  -Path "OU=Groups,OU=Tier 2,OU=Admin,DC=domain,DC=local"

Группа T0-Admins добавляется во встроенные группы Domain Admins и Enterprise Admins. Обычных пользователей из этих встроенных групп необходимо удалить.

Ограничение входа через GPO

Самый важный элемент модели — запрет входа привилегированных учёток на ресурсы нижних уровней. Это реализуется через групповые политики «Deny log on» и «Allow log on».

Создайте три GPO и привяжите их к соответствующим OU:

# GPO: Tier 0 — Restrict Logon
# Привязка: OU с рабочими станциями (Tier 2) и серверами (Tier 1)
# Computer Configuration → Policies → Windows Settings → 
# Security Settings → Local Policies → User Rights Assignment

# Deny log on locally: T0-Admins, Domain Admins, Enterprise Admins
# Deny log on through Remote Desktop Services: T0-Admins, Domain Admins
# Deny access to this computer from the network: T0-Admins

# GPO: Tier 1 — Restrict Logon  
# Привязка: OU с рабочими станциями (Tier 2)
# Deny log on locally: T1-ServerAdmins
# Deny log on through Remote Desktop Services: T1-ServerAdmins

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

Настройка Authentication Policy Silos

В Windows Server 2012 R2+ доступны Authentication Policy Silos — дополнительный механизм привязки учётных записей к определённым устройствам через Kerberos:

# Создание политики аутентификации для Tier 0
New-ADAuthenticationPolicy -Name "T0-AuthPolicy" `
  -UserAllowedToAuthenticateFrom `
    "O:SYG:SYD:(XA;OICI;CR;;;WD;(@USER.ad://ext/AuthenticationSilo == \"T0-Silo\"))" `
  -Enforce

# Создание Silo
New-ADAuthenticationPolicySilo -Name "T0-Silo" `
  -UserAuthenticationPolicy "T0-AuthPolicy" `
  -ComputerAuthenticationPolicy "T0-AuthPolicy" `
  -ServiceAuthenticationPolicy "T0-AuthPolicy" `
  -Enforce

# Привязка учётных записей и компьютеров к Silo
Grant-ADAuthenticationPolicySiloAccess -Identity "T0-Silo" `
  -Account "t0-ivanov"
Set-ADAccountAuthenticationPolicySilo -Identity "t0-ivanov" `
  -AuthenticationPolicySilo "T0-Silo"

Silos обеспечивают криптографическую привязку: TGT выдаётся только при входе с разрешённых устройств.

Privileged Access Workstations (PAW)

PAW — специализированные рабочие станции для администрирования. Администратор Tier 0 выполняет все операции с домен-контроллерами только с PAW, никогда с обычного компьютера.

Требования к PAW:

  • Чистая установка Windows, не из корпоративного образа
  • BitLocker с TPM + PIN
  • Device Guard / WDAC (Windows Defender Application Control)
  • Credential Guard для защиты от Mimikatz
  • Запрет доступа в интернет (кроме Windows Update)
  • Минимум установленного ПО — только средства администрирования
# Включение Credential Guard через GPO
# Computer Configuration → Admin Templates → System → Device Guard
# Turn On Virtualization Based Security: Enabled
# Credential Guard Configuration: Enabled with UEFI lock

# Проверка статуса Credential Guard
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard |
  Select-Object SecurityServicesRunning

PAW размещаются в отдельном OU (OU=Devices,OU=Tier 0,OU=Admin) с собственными GPO, запрещающими любые небезопасные операции.

Защита сервисных учётных записей

Сервисные учётные записи (для SQL, Exchange, бэкапов) — частая мишень. Их пароли редко меняются и часто хранятся в открытом виде в скриптах. Решение — Group Managed Service Accounts (gMSA).

# Создание корневого ключа KDS (один раз на домен)
Add-KdsRootKey -EffectiveImmediately
# В продуктиве: Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))

# Создание gMSA для SQL Server
New-ADServiceAccount -Name "gMSA-SQL" `
  -DNSHostName "gmsa-sql.domain.local" `
  -PrincipalsAllowedToRetrieveManagedPassword "T1-SQLServers" `
  -KerberosEncryptionType AES128,AES256

# Установка на сервере SQL
Install-ADServiceAccount -Identity "gMSA-SQL"
Test-ADServiceAccount -Identity "gMSA-SQL"  # Должен вернуть True

Пароль gMSA автоматически меняется каждые 30 дней и составляет 240 случайных символов. Его невозможно извлечь с устройства, не входящего в группу T1-SQLServers.

Аудит сервисных аккаунтов

Найдите все сервисные учётные записи с постоянными паролями для миграции на gMSA:

# Поиск учётных записей с флагом «Password never expires»
Get-ADUser -Filter { PasswordNeverExpires -eq $true -and Enabled -eq $true } `
  -Properties PasswordNeverExpires, PasswordLastSet, ServicePrincipalName |
  Where-Object { $_.ServicePrincipalName } |
  Select-Object Name, PasswordLastSet, ServicePrincipalName |
  Export-Csv -Path "C:\Audit\ServiceAccounts.csv" -NoTypeInformation

Каждую такую учётную запись следует запланировать к миграции на gMSA. Для приложений, не поддерживающих gMSA, установите автоматическую смену паролей через LAPS for Service Accounts.

Мониторинг и аудит

Модель бесполезна без контроля её соблюдения. Настройте расширенный аудит для отслеживания нарушений:

# Включение аудита через GPO на контроллерах домена
# Computer Configuration → Policies → Windows Settings → 
# Security Settings → Advanced Audit Policy Configuration

# Audit Logon Events: Success, Failure
# Audit Account Logon Events: Success, Failure  
# Audit Privilege Use: Success, Failure

# PowerShell: поиск входов T0-аккаунтов на не-T0 устройства
$t0Users = Get-ADGroupMember -Identity "T0-Admins" -Recursive | Select-Object -ExpandProperty SamAccountName

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id = 4624  # Successful logon
  StartTime = (Get-Date).AddDays(-1)
} | Where-Object {
  $t0Users -contains $_.Properties[5].Value
} | Select-Object TimeCreated, 
  @{N='User';E={$_.Properties[5].Value}},
  @{N='Computer';E={$_.Properties[11].Value}},
  @{N='LogonType';E={$_.Properties[8].Value}}

Настройте алерты в SIEM-системе при обнаружении входа учётной записи Tier 0 на устройство, не принадлежащее Tier 0. Это немедленный инцидент безопасности, требующий расследования.

План внедрения по этапам

Внедрять модель следует поэтапно, начиная с самого критичного уровня:

Этап 1 (неделя 1-2): Защита Tier 0

  • Создать отдельные учётные записи Tier 0 для всех доменных администраторов
  • Настроить GPO запрета входа T0-аккаунтов на серверы и рабочие станции
  • Развернуть минимум одну PAW
  • Удалить лишних членов из групп Domain Admins и Enterprise Admins

Этап 2 (неделя 3-4): Защита Tier 1

  • Создать T1-учётные записи для серверных администраторов
  • Настроить GPO запрета входа T1-аккаунтов на рабочие станции
  • Начать миграцию сервисных аккаунтов на gMSA

Этап 3 (неделя 5-8): Защита Tier 2 и мониторинг

  • Создать T2-учётные записи для техподдержки
  • Настроить LAPS для паролей локальных администраторов
  • Внедрить мониторинг нарушений модели в SIEM
  • Документировать процедуры и провести обучение

Часто задаваемые вопросы

Технически да — GPO-ограничения входа работают независимо от PAW. Однако без PAW учётные данные Tier 0 всё равно будут вводиться на обычных рабочих станциях (через RDP на DC), что сохраняет риск их перехвата кейлоггером. PAW — критический элемент модели, без которого защита неполная.

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

Частично. Модель затрудняет получение хеша учётной записи krbtgt (нужен доступ к Tier 0), но если Golden Ticket уже создан — он работает. Для полной защиты дополнительно регулярно сбрасывайте пароль krbtgt (дважды, с интервалом минимум 10 часов) и используйте Credential Guard на PAW.

Трёхуровневая модель — один из компонентов Zero Trust для on-premise инфраструктуры. Она реализует принцип наименьших привилегий и сегментацию доступа. Zero Trust дополнительно включает верификацию каждого запроса, микросегментацию сети и непрерывный мониторинг — но Tiered Model является отличным фундаментом.

Нужна помощь с настройкой?

Специалисты АйТи Фреш помогут с внедрением и настройкой — 15+ лет опыта, обслуживание от 15 000 ₽/мес

📞 Связаться с нами
#Active Directory#Tiered Admin Model#Tier 0#PAW#привилегированный доступ#Red Forest#латеральное движение#безопасность AD
Комментарии 0

Оставить комментарий

загрузка...