Короткий ответ
Реестр привилегированных учёток — таблица «кто может сломать Contoso», не штатное расписание. Включите: группы AD (Domain Admins, Enterprise Admins, Schema Admins, кастомные *-Admins), локальные Administrators на серверах, sudo/root на Ubuntu, панели гипервизора, firewall, Microsoft 365/Azure roles, VPN с полным туннелем в серверную VLAN, backup-консоли. На каждую учётку: ФИО/сервис, система, тип права, владелец, обоснование, дата проверки.
Секреты — в менеджере паролей, в реестре только кто и куда, не пароль. Владелец реестра — Иван Петров.
Симптомы и как отличить
Типичная картина:
- «админов трое», в
Domain Adminsвосемь объектов; - учётка
adminна каждом Linux с одним паролем; - подрядчик заходит на
HV01под локальным пользователем, которого нет в AD; - после аудита нельзя ответить, кто может восстановить из backup.
Отличия:
| Симптом | Другая тема | Статья |
|---|---|---|
| Пароли в xlsx | хранение секретов | Excel |
| Уволенный ещё в VPN | offboarding | уволенные |
| Нет квартальной сверки | процесс аудита | аудит прав |
| Пользователь с лишними правами на шаре | не привилегированный контур | GPO/ACL отдельно |
Возможные причины
- Группы плодили «на задачу» и не чистили.
- Сервисные учётки с интерактивным логоном.
- Вложенность групп: человек не в DA напрямую, но через
IT-All. - Linux не в домене — учётки живут в
/etc/passwd. - Облако завели на личную почту директора.
- Редко: скрытая учётка бывшего подрядчика на iLO.
Диагностика
1. Привилегированные группы AD
$groups = @(
'Domain Admins',
'Enterprise Admins',
'Schema Admins',
'Administrators',
'Backup Operators',
'Account Operators',
'Server Operators'
)
foreach ($g in $groups) {
Get-ADGroupMember -Identity $g -Recursive |
Select-Object @{n='Group';e={$g}}, SamAccountName, objectClass, distinguishedName
}-Recursive обязателен: без него вложенность врёт. Сверьте objectClass user vs group vs computer (DC в DA — ожидаемо).
2. Локальные админы на серверах
По инвентарю узлов выборочно:
Invoke-Command -ComputerName 'FILE01.contoso.example' -ScriptBlock {
Get-LocalGroupMember -Group 'Administrators'
}Неожиданные локальные учётки — в реестр со статусом investigate.
3. Linux sudo/root
getent group sudo adm
sudo grep -RIn '^[^#]' /etc/sudoers /etc/sudoers.d
getent passwd | awk -F: '$3==0 {print}'Ключи в ~/.ssh/authorized_keys у root — тоже привилегия.
4. Вне каталога
Чеклист панелей: iLO/iDRAC, Hyper-V/VMware, Proxmox, firewall, DNS-регистратор, Microsoft 365 Global Admin, консоль backup, CI. На каждую — строка, даже если вход по персональной учёте вендора.
Решение
Лист CMDB Privileged
| account | system | privilege | type | owner | reason | last-review | ticket |
|---|---|---|---|---|---|---|---|
| ivan.petrov | contoso.example | Domain Admins | user | Иван Петров | штатный старший | 2026-09-08 | |
| svc-backup | contoso.example | Backup Operators | service | Иван Петров | Veeam | 2026-09-08 | |
| root | UBNT01 | uid 0 | local | Иван Петров | break-glass | 2026-09-08 | |
| vendor.rdp | HV01 | Administrators | vendor | Иван Петров | срок до 2026-10-01 | CHG-12 |
Правила:
- Именные учётки людей, не общие
admin. - Сервисные — без интерактивного логона, где платформа позволяет.
- Подрядчик — дата окончания в той же строке.
- Break-glass — отдельные строки, проверка что пароль в vault, не в Excel.
Сценарий A. Реестра нет, нужен за неделю
День 1: DA/EA/SA и Global Admin облака. День 2: локальные админы 10 критичных узлов. День 3: Linux sudo и гипервизор. Остальное — очередь, но критичное не откладывать «на потом».
Сценарий B. Слишком много людей в DA
Не выкидывайте всех в пятницу. План: именные учётки в менее привилегированные группы, DA только для задач каталога, ежедневная работа — отдельный аккаунт. Это связано с hardening, здесь фиксируйте целевое членство в реестре и изменение через регламент изменений.
Как проверить, что проблема устранена
- Выгрузка
Get-ADGroupMember -Recursiveпо DA совпадает с листом (плюс компьютеры DC). - Нет учётки в DA без ФИО или сервисного обоснования.
- По панелям вне AD есть строки.
- Дежурный находит, кто может зайти на
FW01, за 1 минуту. - Квартальная дата
last-reviewне пустая.
Сверьте выборку: возьмите случайный Linux и случайный Windows — состав sudo/Administrators = CMDB.
Если не помогло
- Группы с делегированием OU не видны в DA: добавьте кастомные
Helpdesk-ResetPasswordи аналоги в тот же реестр, иначе «не админ, но может захватить учётку». - GMSA/MSA: внесите как service, не как людей.
- Аутсорс с общей учёткой: запретите, заведите именные, общую — в
revoke. - Облачные PIM/JIT: в реестре фиксируйте кто eligible, не только active.
Профилактика
- Изменение членства DA — только через заявку и журнал.
- Onboarding/offboarding чеклист ссылается на этот реестр.
- Раз в квартал — полный аудит прав.
- Мониторинг изменений групп AD (если ещё не включён в security-разделе) — сигнал к обновлению листа.
FAQ
Включать ли LAPS-пароли локальных админов ПК?
В этот реестр — нет, это массовые рабочие станции. Исключение: jump/admin-ПК, с которых ходят на серверы.
Компьютерные объекты в Domain Admins — ошибка?
Контроллеры домена там ожидаемы. Посторонний PC в DA — инцидент, не «так сложилось».
Нужно ли вносить права SQL sysadmin?
Да, если это прод-SQL. Строка system=SQL01, privilege=sysadmin.
Как быть с группами, вложенными на 4 уровня?
Только -Recursive и документирование цепочки в notes. Плоская схема проще для аудита — цель на потом, реестр нужен сейчас.
Реестр в Excel — не те же грабли, что пароли?
Реестр без паролей на шаре с ACL IT допустим как CMDB. Пароли туда не писать. Лучше тот же контур, что CMDB узлов.
Кто подписывает обоснование?
Владелец сервиса или Иван Петров как owner IT-процесса. Пустое reason — право под удаление в следующем аудите.