Как устроен Active Directory и его слабые места
Разбираем, как устроена служба каталогов Active Directory и почему ошибки в правах доступа делают её любимой целью атакующих — чтобы научиться её защищать.
Active Directory (AD) — централизованная служба каталогов Microsoft, которая хранит учётные записи пользователей, компьютеров и групп и решает, кто и к чему в корпоративной сети имеет доступ.
Почти в любой компании с парком Windows-машин в центре стоит Active Directory. Один вход — и сотрудник получает доступ к почте, файловым шарам, принтерам и десяткам приложений. Эта же централизация делает AD критическим активом: кто контролирует каталог, тот контролирует всю организацию. Поэтому защитнику важно понимать внутреннее устройство AD не хуже, чем атакующему.
Зачем это знать защитнику
Подавляющее большинство реальных инцидентов в корпоративных сетях разворачивается именно через AD: атакующий редко ломает каждую машину по отдельности — он стремится повысить привилегии до администратора домена и дальше двигается «легально», под видом обычного администратора. Если вы понимаете, какие связи и права существуют в каталоге, вы сможете заранее найти опасные пути и разорвать их до того, как ими воспользуются.
Строительные блоки каталога
AD оперирует несколькими понятиями. Их полезно держать в голове как иерархию.
| Объект | Что это |
| Домен (domain) | Граница администрирования: набор пользователей, компьютеров и политик с общей базой |
| Лес (forest) | Верхняя граница доверия: один или несколько доменов с единой схемой |
| OU (organizational unit) | Контейнер для группировки объектов и применения политик |
| Группа (group) | Объединение учёток для выдачи прав скопом (например, Domain Admins) |
| GPO (group policy object) | Набор настроек, который централизованно навязывается машинам и пользователям |
Ключевая идея: права в AD почти никогда не выдаются человеку напрямую — их получает группа, а человек в неё входит. Группа Domain Admins — фактически ключ от всего домена. Группы умеют вкладываться друг в друга, и именно вложенность порождает неожиданные пути к привилегиям.
Леса и доверительные отношения добавляют ещё один масштаб. Лес — это граница безопасности: внутри него домены доверяют друг другу, и в крупных компаниях лес может объединять десятки доменов разных подразделений. Защитнику важно помнить, что доверие между доменами и лесами способно расширять зону поражения: слабость в одном доверенном домене иногда открывает путь в соседний. Поэтому доверительные отношения проектируют осознанно и регулярно пересматривают.
Откуда берутся слабые места
Разрастание привилегий
Со временем в Domain Admins и подобные группы попадает всё больше учёток «на всякий случай»: уволившиеся сотрудники, сервисные аккаунты, временные доступы, про которые забыли. Каждая лишняя учётка — это ещё одна точка, компрометация которой отдаёт атакующему весь домен.
Опасные делегирования прав
В AD можно тонко делегировать права на объекты — например, право сбрасывать пароль или менять членство в группе. Если такое право случайно выдано слабозащищённой учётке, возникает скрытая цепочка: захватив её, можно дотянуться до администратора. Инструменты вроде BloodHound в легальном аудите строят граф таких связей и показывают кратчайший путь к Domain Admins — защитник использует их, чтобы этот путь увидеть и убрать.
Ошибки в GPO и паролях
Классическая историческая ошибка — хранение паролей в скриптах групповых политик. Ещё частые проблемы: одинаковый локальный пароль администратора на всех машинах (компрометация одной даёт доступ ко всем) и слабые политики паролей для сервисных учёток.
Как это работает под капотом
AD — это, по сути, база данных (LDAP-каталог) плюс контроллеры домена, которые её обслуживают и выдают аутентификацию. Любой пользователь домена может читать значительную часть каталога: списки пользователей, групп, описания объектов. Это нужно для нормальной работы, но это же позволяет на этапе разведки построить карту организации, не имея прав администратора. Поэтому защита строится не на «спрятать каталог», а на принципе наименьших привилегий: даже зная структуру, атакующий не должен находить лёгкого пути наверх.
# Иллюстрация концепции: членство и вложенность групп (лаборатория)
User: svc-backup
└─ член группы: Backup Operators
└─ имеет право: чтение/запись на ряд систем
User: helpdesk-07
└─ член группы: Helpdesk
└─ делегировано: сброс паролей в OU "Sales"
# Защитник спрашивает: ведёт ли любая из этих цепочек к Domain Admins?
Как защититься
Оборона AD строится вокруг модели уровней (tiering) и дисциплины прав.
- Модель уровней (tiering). Разделите активы на Tier 0 (контроллеры домена и всё, что управляет идентификацией), Tier 1 (серверы и приложения) и Tier 2 (рабочие станции). Учётка администратора одного уровня не должна логиниться на другом — так компрометация рабочей станции не приводит автоматически к захвату контроллера домена.
- Чистка привилегированных групп. Регулярно проверяйте состав
Domain Admins,Enterprise Adminsи подобных. В идеале постоянных членов там почти нет, а доступ выдаётся временно под задачу (just-in-time). - Отдельные административные учётки. Админ работает с почтой и интернетом под обычной учёткой, а привилегированные действия выполняет с отдельной, которая никогда не выходит в интернет.
- Уникальные локальные пароли. Решения вроде LAPS делают пароль локального администратора уникальным на каждой машине и хранят его безопасно.
- Регулярный аудит путей атаки. Периодически стройте граф прав (теми же инструментами, что и пентестеры) и устраняйте опасные делегирования и вложенности.
Аудит чужого домена законен только с письменного разрешения владельца. Несанкционированный доступ к компьютерной информации в РФ образует состав статьи 272 УК РФ. Тренируйтесь в собственной лаборатории или на специально подготовленных стендах.
Итоги
- Active Directory централизует доступ ко всей корпоративной сети, поэтому это критический актив номер один.
- Права обычно выдаются через группы; вложенность групп и делегирования порождают скрытые пути к
Domain Admins. - Главные слабости — разросшиеся привилегии, опасные делегирования и единые/слабые пароли.
- Защита: модель уровней (tiering), регулярная чистка привилегированных групп, отдельные админ-учётки, уникальные локальные пароли и аудит путей атаки.