Аудит прав в Active Directory: 12 лишних учёток с полным доступом к финансам, три из них - уволенные
Клиент не знает, кто имеет доступ к папкам финансового отдела. Запускаем Export-ADPermission и NTFS ACL-аудит. Находим 12 лишних учётных записей, три принадлежат уволенным сотрудникам.
Усиление требований к контролю доступа в корпоративных средах в свете готовящегося 152-ФЗ и роста инсайдерских угроз
Клиент обратился с формулировкой примерно следующей: «хотим понять, у кого есть доступ к нашим финансовым папкам». Звучит просто. На деле это означает, что они сами не знают - и это уже ответ на вопрос об уровне контроля доступа в компании.
Фон понятный: разговоры вокруг готовящегося закона о персональных данных идут уже несколько месяцев, и часть клиентов начала задавать себе правильные вопросы раньше, чем их задаст регулятор. Ещё один фактор - несколько резонансных кейсов утечки через своих сотрудников в начале года подтолкнули компании проверить, кто вообще куда ходит.
Что мы застали
Типичная картина среднего офиса: AD работает с момента первоначального развёртывания, права на папки раздавались ситуативно - «дай Иванову доступ, он временно помогает бухгалтерии», «добавь Петрову, он аудитор, ему нужно один раз посмотреть». Один раз - это навсегда, если никто за этим не следит.
Права на файловых серверах под Windows Server 2003 - это NTFS ACL на уровне папок плюс разрешения на уровне общих ресурсов (share permissions). Две независимые решётки, и итоговый доступ - их пересечение. Народ об этом часто забывает и смотрит только на одно из двух.
Как делали аудит
Инструментарий простой - то, что есть в стандартном наборе Windows Server 2003 и AD:
- ADSIEdit и LDP.exe - для просмотра разрешений на объекты AD, включая делегирование и права на почтовые ящики Exchange Server 2003. Полезно чтобы понять, кто может отправить письмо от имени кого.
- Xcacls.exe и Cacls.exe - утилиты командной строки для просмотра и изменения NTFS ACL. Xcacls работает чуть нагляднее для парсинга в скрипты.
- Скрипт на VBScript, который обходит дерево папок рекурсивно и сгружает ACL в CSV.
Финансовые папки - это примерно два десятка общих ресурсов разного уровня вложенности. Часть из них наследует права от родительской папки, часть - с явным прерыванием наследования и ручными записями. Последнее особенно интересно: там обычно живут самые старые и самые странные ACE.
Выгрузку прошлись через Excel - простой pivot: уникальные учётные записи по строкам, папки по столбцам, тип доступа в ячейках. Так сразу видно кто куда и с какими правами.
Что нашли
Картина оказалась показательной.
- 12 учётных записей имели права уровня Full Control или Modify на папки финансового отдела - при том что в бухгалтерии работает пять человек, и реально нужен доступ примерно семи-восьми (включая руководство и ИТ для обслуживания).
- Три записи принадлежали уволенным сотрудникам. Учётки в AD были отключены - это хорошо, и значит войти через них нельзя. Но в NTFS ACL они висели с полным доступом. Отключённая учётка в ACL - это технически безопасно, пока она отключена. Но это индикатор того, что оффбординг идёт не системно: кто-то отключил в AD, про зачистку ACL никто не подумал.
- Две записи - технические сервисные аккаунты от давно не используемого ПО. Приложение снесли, аккаунты остались.
- Остальные - сотрудники других отделов с историческими правами по схеме «давали временно».
Что сделали
Чистка прошла в три шага.
Первое - зафиксировали текущее состояние в виде полного CSV-снимка ACL до изменений. Это не для красоты - если после изменений что-то сломается, нужно понимать что именно и уметь откатить.
Второе - убрали лишнее. Уволенные сотрудники - удалить ACE. Сервисные аккаунты неиспользуемых приложений - удалить. Сотрудники других отделов с историческим доступом - проверили с руководством нужен ли доступ сейчас, в большинстве случаев нет - убрали.
Третье - зафиксировали процедуру оффбординга. Это важнее самой чистки. Пока нет регламента, ситуация воспроизведётся через год. Записали в регламент аудита и обслуживания чеклист: при увольнении сотрудника - отключение учётки в AD, удаление из групп рассылки, удаление ACE из явных записей в ACL на файловых серверах. Последний пункт раньше не делался никогда.
Несколько наблюдений
Отключённая учётка в ACL не даёт доступ - это правда. Но три уволенных сотрудника в списке прав финансовых папок - это плохой сигнал сам по себе. Если завтра в AD по ошибке эту учётку включат (бывает: «нам нужен такой же логин как у старого Иванова»), права на папки уже есть.
Ещё момент с группами: часть прав была выдана не напрямую, а через вложенные группы AD. Группа «Бухгалтерия-2004» давала права на папку, в ней числились три человека, двое из которых уже не работают. Такие группы - отдельный пласт для разбора.
Xcacls и VBScript - не самый изящный инструментарий, но работает. PowerShell бета пока ещё не то место, куда хочется отдать производственный аудит.
Где стоим сейчас
Папки финансового отдела закрыты до минимально необходимого набора учётных записей. Оффбординговый чеклист внедрён - посмотрим, насколько он приживётся в операционке клиента. Следующий аудит прав запланировали через квартал: посмотреть не наросло ли опять.
Разговор про 152-ФЗ и то, какие требования он в итоге привнесёт к контролю доступа к персональным данным, у нас уже был - писали об этом раньше. Судя по тому что видим на практике, большинству компаний для начала хватило бы просто знать кто куда ходит в своей собственной файловой системе.
- 152-ФЗ «О персональных данных»: первое прочтение с юристом · 17 января 2006
- ГОСТ Р ИСО/МЭК 17799-2005: первый аудит по чеклисту за три дня · 31 мая 2006