Выгрузка доменных пользователей powershell

Введение

Active Directory (AD) является фундаментальным компонентом инфраструктуры большинства крупных организаций в России — и особенно актуальным для сегмента защищённых ИТ-контуров. Работа с учетными записями пользователей в AD связана не только с обычным администрированием, но и с регулярным аудитом, выявлением отклонений от безопасности, анализом соответствия законодательству (ФСТЭК России, 152-ФЗ «О персональных данных»). Автоматизированная выгрузка пользователей с помощью PowerShell — это ключевой инструмент для системных администраторов, специалистов по информационной безопасности и compliance.

Процесс экспорта и анализа данных о пользователях позволяет:

  • Оценить состояние учетных записей на соответствие корпоративным и регуляторным требованиям.
  • Обнаружить устаревшие, аномальные или потенциально опасные учетные записи.
  • Подготовиться к проверкам или предоставить отчетность по контролю доступа и учетам, что крайне важно при прохождении аудитов ФСТЭК или Роскомнадзора.

Выгрузка данных с последующим анализом устраняет пробелы, связанные с человеческим фактором, систематизирует отчетность и минимизирует вероятность пропуска критических уязвимостей, одинаково важных как для бизнес-континуума, так и для нормативного соответствия.

[ИЗОБРАЖЕНИЕ: Схема процесса выгрузки пользователей из Active Directory в файлы для аудита]

Запуск сценария PowerShell

Экспорт информации о доменных пользователях обычно реализуется через автоматизацию — запуск подготовленного PowerShell-скрипта с консоли, под учетной записью с необходимыми правами просмотра данных. В большинстве случаев корпоративная политика запрещает работу с AD из-под доменных администраторов, поэтому запуск происходит от имени выделенных служб мониторинга или через согласованные с ИБ процессы.

Базовый пример вызова скрипта:

powershell -ExecutionPolicy Bypass -File .ExportADUsers_ADSI.ps1

Скрипт, например, с именем ExportADUsers_ADSI.ps1, должен быть предварительно проверен ИБ-службой на соответствие внутренней политике сканирования и анализа учетных записей. Чаще всего он собирает:

  • Основные параметры каждого доменного пользователя (имя, логин, описание, принадлежность к группам, состояния флагов безопасности).
  • Детализацию по паролям (есть ли запрет на смену, устаревание, политика сложности).
  • Атрибуты активности (время последнего входа, блокировки, ошибки входа).
  • Признаки принадлежности к привилегированным или сервисным учетам.

Результирующий CSV-файл можно интегрировать в системы SIEM, выполнять сравнение в динамике, передавать аудиторам и экспертам по ИБ. Такой подход позволяет обрабатывать и хранить информацию на постоянной основе, что повышает прозрачность управления доступом.

Ключевые флаги UserAccountControl (UAC)

В каждом объекте учетной записи AD атрибут UserAccountControl хранит множество битовых флагов, отражающих критические свойства безопасности. Игнорирование некоторых из этих флагов часто приводит к нарушению требований нормативных актов (приказов ФСТЭК, Роскомнадзора) и создает возможности для атакующих.

Флаг UAC Описание Актуальность для ИБ и регуляторики
PwdNotRequired Отсутствие требования пароля для входа ФСТЭК и 152-ФЗ требуют обязательности аутентификации. Аккаунт без пароля – критический риск.
PwdCannotChange Пользователь не может сам менять пароль Ограничивает пользователя, но «замораживает» его секреты, что противоречит принципу периодического обновления.
ReversibleEncryption Пароль хранится с возможностью обратного дешифрования Абсолютно недопустимо по регуляторике — явное нарушение требований к хранению данных.
DelegationAllowed Включено делегирование Kerberos Увеличивает поверхность атаки на инфраструктуру, требует строгого учета и отдельного мониторинга.

Проверяя эти значения для всех аккаунтов, можно в кратчайший срок выявить опасные отклонения и подготовить отчет для руководителя ИБ или аудитора. Кроме того, адекватное документирование флагов повышает качество техпроцессов в подразделении информационной безопасности.

[ИЗОБРАЖЕНИЕ: Таблица с основными UAC-флагами и маппингом на регуляторные требования]

Признаки привилегированных и уязвимых учетных записей

Для обеспечения высокого уровня контроля над доступом крайне важно отделять привилегированные и сервисные учетные записи от обычных пользователей. Некоторые особенности работы AD и его атрибутов приводят к появлению скрытых, а иногда и «довесочных» привилегий у отдельных учеток, которые невозможно отследить простым просмотром групповых членств.

  • AdminAccount (adminCount=1): Атрибут adminCount=1 выставляется системой каждому объекту, который хотя бы раз входил в состав защищённой привилегированной группы (Domain Admins, Enterprise Admins, Administrators и др). Важно: даже после удаления пользователя из этих групп adminCount=1 сохраняется навсегда, и объект остается под особым контролем механизма SDProp. Такая «призрачная» привилегия — постоянный источник нестандартных допусков и объект для отдельных ИБ-процедур (например, анализа наследования разрешений).
  • HasSPN: Наличие у учетной записи Service Principal Name (SPN) означает, что эта учетная запись используется приложением/службой для аутентификации на сервере. SPN-учетки часто становятся целью Kerberoasting-атак, что требует их отдельного отбора для аудита.
  • Превышение прав за счет ошибок операции: Если пользователя перевели из привилегированной группы обратно в «обычные», но не сбросили параметры SD, учетная запись может не наследовать политики безопасности и оставаться в аномальном состоянии.
  • Сервисные аккаунты: Учетки сервисов зачастую имеют повышенные права ради стабильной работы, при этом слабо контролируются. Для ФСТЭК такая категория должна подвергаться ежемесячному аудиту.

Анализ этих признаков и автоматическая фильтрация по ним позволяют быстро реагировать на риски и готовить инцидентные отчеты для ИБ.

Параметры активности учетных записей

Важной частью экспорта и анализа учетных записей является мониторинг активности (или неактивности) пользователей. Игнорирование признаков неиспользуемых, устаревших, ранее скомпрометированных учеток — один из типичных источников инцидентов, попадающих в отчеты ФСТЭК и независимых аудиторов.

  • DaysPwdAge: Количество дней с последней смены пароля — один из самых показательных критериев. Современные рекомендации и требования (в том числе 152-ФЗ) устанавливают максимальный возраст пароля 45–60 дней. Любые превышения должны строго фиксироваться и являться поводом для анализа.
  • LastBadPwd (Последняя ошибка ввода пароля): Возникающие многократно ошибки попыток входа — частый признак брутфорс-атак или остатка устаревших процессов/скриптов с неверными паролями. Регулярное появление ошибок — повод для ИБ-расследования.
  • AccountExpires: Используется для установки сроков действия временных учетных записей: подрядчиков, подрядных организаций, временных сотрудников ИТ или операторов. Отсутствие или несвоевременное закрытие таких учетных записей часто фиксируется ФСТЭК как нарушение.
  • LastChanged: Дата последнего изменения объекта (в т.ч. атрибутов, групповых членств) в AD — индикатор активности не только пользователя, но и потенциально сотрудников ИБ/системных администраторов. Аномальные изменения в ночное время или в праздники — предмет мониторинга.
  • HasHomeDir: Признак наличия домашней директории или файлового ресурса за учетной записью. Отсутствие такой директории — возможный индикатор неактуальности учетки; наоборот, множество связанных каталогов — объект для отдельной проверки.

Регулярный анализ перечисленных параметров становится основой политики «минимально необходимого доступа» и соблюдения внутренних требований безопасности.

Особенности управления паролями

Управление сроками действия и сложностью паролей — центральный компонент политики информационной безопасности в AD-контуре. Комбинации флагов, контролирующих временные параметры доступа, оказывают существенное влияние на устойчивость системы против атак социальной инженерии и перебора паролей.

  • PwdNoExpire: Учетная запись с признаком «пароль не истекает». Допустимо для некоторых сервисных учеток (в исключительных случаях с обоснованием и отдельным контролем), для обычных пользователей — грубое нарушение требований ФСТЭК.
  • OldPwdNNd: Пароль не менялся более N дней (стандартное значение по политике — 60/90 дней для большинства организаций). В связке с флагом PwdNoExpire — почти гарантированный инцидент.
  • ForcedChange: Признак «требовать смены пароля при следующем входе» — полезная мера при снятии блокировки после инцидента.
  • PasswordHistory: В настройках можно хранить определённое количество предыдущих паролей — предотвращает обратный откат.

Контроль этих параметров интегрируется в ежедневные и месячные чек-листы ИБ, а результаты выгрузки через PowerShell используются для быстрой фильтрации учетных записей по критическим отклонениям и последующей ликвидации рисков.

Влияние флагов на политику безопасности

Некоторые системные атрибуты оказывают влияние не только на отдельные учетные записи, но и на всю политику управления доступом в AD. Как пример — adminCount=1: при его наличии на объекте отключается наследование большинства политик через GPO, на объекте ‘замораживаются’ разрешения с помощью механизма SDProp.

Это создаёт следующую цепочку рисков:

  1. Удаленный из Domain Admins пользователь сохраняет статус «привилегированного по наследству», если adminCount=1 не сбрасывается вручную.
  2. Учётка может остаться вне новых политик безопасности, быть открыта нежелательным разрешениям (например, из устаревших ACL) или не попадать под периодический аудит.
  3. SDProp-контроль отдельно интересует аудиторов ФСТЭК: отсутствие прозрачности и документированного сброса статуса у переведённых пользователей — формальное основание для претензий.

Помимо этого, ряд флагов UAC позволяет сделать выводы о необходимости пересмотра политики хранения и обновления паролей, пересмотра прав на делегирование задач, изъятия сервисных учетных записей из зон с особыми рисками (например, Kerberos Delegation), а также внедрения автоматизированных средств контроля изменений в групповых членствах.

Закладывая обработку этих признаков в PowerShell-отчеты, организация создает задел по быстрому реагированию на аудит, инциденты, внеочередные проверки клиента или регулятора.

Структура и логика PowerShell-скрипта

В большинстве случаев правильно построенный PowerShell-скрипт осуществляет:

  • Перебор всех пользовательских объектов в целевом домене AD с помощью ADSI (или модулей ActiveDirectory).
  • Анализ состояния ключевых атрибутов (userPrincipalName, sAMAccountName, description, userAccountControl, lastLogonTimestamp, pwdLastSet и т.п.).
  • Сравнение UAC-флагов с допустимыми политиками (например, пароли без срока действия, разрешение на обратимое хранение и т. д.).
  • Определение признаков привилегированности при помощи анализа adminCount и членства в специальных группах.
  • Выгрузку результата в структурированный CSV-файл с последующей передачей в системы мониторинга или анализа (SIEM, Excel, внутренние аудиторские решения).

Пример содержимого отчета по каждой учетной записи:

Имя пользователя Логин Описание Дата последнего входа LastPwdChange UAC-флаги Сервис/SID Привилегия (adminCount) Пароль бессрочный Возраст пароля
ivanov.a ivanov.a Отдел ИБ 2024-06-17 2024-04-01 PwdNoExpire No 1 Да 78
Petrov.I petrovi Сервисная учетная запись 2024-05-10 2024-04-28 DelegationAllowed Yes 0 Нет 43

На практике такие отчеты достигают десятков тысяч строк. Рекомендуется также выгружать информацию о членстве пользователя в группах, что позволяет выявлять неявные наследования и дубли (например, пересекающиеся права через несколько групп).

[ИЗОБРАЖЕНИЕ: Пример структурированного CSV-отчета с ключевыми параметрами AD-пользователей]

[КОД: PowerShell-скрипт, экспортирующий данные пользователей AD в CSV, фильтрующий по adminCount, UAC-флагам, SPN, правильным срокам паролей и активности]

Практическое применение отчета

Экспортированный отчет дает конкретные инструменты для:

  • Аудита соответствия законодательству (ФСТЭК, 152-ФЗ): Проверка сроков действия паролей, обязательности их наличия, запретов на постоянные пароли, выявление аномалий в делегировании прав.
  • Контроля за учетной политикой: Фильтрация и анализ всех учетных записей с устаревшими, нестандартными или подозрительными параметрами и их своевременное исправление.
  • Мониторинга использования ресурсов: Поиск устаревших, дублирующихся или неиспользуемых учетных записей для удаления. Поддержание актуальности учетных данных по штатным расписаниям.
  • Обеспечения прозрачности для аудиторов и проверяющих: Готовая доказательная база при проведении внешнего или внутреннего аудита, минимизация времени на подготовку документов и снижение риска штрафов за несоответствие политике.
  • Отслеживания устранения уязвимостей: Возможность отслеживать динамику по устранению конкретных уязвимых параметров с помощью регулярных выгрузок (например, динамика «бессмертных» паролей за последний год или количество некорректных флагов UAC).
  • Обогащения данных SIEM: Интеграция с системами корреляции событий для автоматизации реагирования на попытки несанкционированного доступа или массового перебора паролей.

Организации, внедрившие регулярные выгрузки и централизованный анализ состояния учетных записей AD с помощью PowerShell, к проверкам регуляторов и аудиторских компаний подходят более подготовленно. Это наглядно сокращает время на реагирование на замечания и повышает общий уровень зрелости управления доступом.

Дополнительные рекомендации для регуляторного комплаенса

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

  • Результаты экспорта должны регулярно анализироваться сотрудниками ИБ и пересматриваться при изменении политик.
  • Аномалии (учетные записи без срока действия пароля, «призрачные» привилегии, сервисные учетки с избыточными правами) должна оперативно фиксироваться в журнале инцидентов с обязательным закрытием по процедуре.
  • Все сценарии и логи выгрузки необходимо хранить в защищенном сегменте, с разграничением доступа к скриптам и отчетам, чтобы предотвратить несанкционированное изучение учеток потенциальным злоумышленником изнутри.
  • При изменении доменной политики, процессов найма/увольнения сотрудников или переходе ИТ-услуг к внешним подрядчикам процессы аудита учеток должны запускаться внепланово.
  • Используйте хеш-суммы или цифровые подписи для проверки целостности экспортированных данных (важно для критических объектов ПДн и корпоративной тайны).
  • Отчетность следует интегрировать в общий реестр технических и административных мер защиты информации согласно приказу ФСТЭК № 239 и других релевантных документов.

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

Ошибки и частые проблемы в реальных внедрениях

  • Формальный сброс паролей без изменения флагов: нередки случаи, когда пароль принудительно меняют, но флаги не пересматривают: например, остаются бессрочные или с разрешением на обратимое хранение. Необходима регулярная проверка именно состояния BitMask’а UAC по всем учетным записям.
  • Ошибки в трактовке adminCount: админы часто ошибочно полагают, что удалив пользователя из привилегированной группы, они сняли с него все связанные риски. На самом деле, без ручного сброса adminCount и проверки разрешений уязвимость остается.
  • Недостаточный контроль сервисных учетных записей: этим учетам обычно выдается максимум прав (SecureString в скриптах, делегирование), однако политики слежения за сроками действия и уникальностью паролей отсутствуют.
  • Пропуск неактивных/«заброшенных» учетных записей: в крупных компаниях такие учетные записи могут жить годами — особенно, если их собственники давно не работают в организации. Это прямое нарушение ФСТЭК и 152-ФЗ.
  • Хаотичное хранение выгруженных отчетов: CSV-файлы с данными о пользователях хранятся без контроля доступа или резервного копирования, что создает риск компрометации информации или утери доказательной базы.

Описанные ошибки систематически выявляются в ходе регуляторных проверок и приводят к предписаниям на исправление, а порой и к штрафам.

Заключение

Выгрузка и аудит учетных записей пользователей AD с помощью автоматизированных сценариев PowerShell — один из столпов эффективного управления корпоративной ИТ- и ИБ-инфраструктурой. Современные требования к защищённости, в том числе требования ФСТЭК и 152-ФЗ, неизменно повышают значимость этой процедуры. Одна из главных целей — своевременно выявлять потенциальные уязвимости, устранять последствия человеческого фактора, поддерживать актуальность учетной политики и формировать убедительную отчетность к любым видам аудита.

Комплексный подход складывается из технических средств (сценарии экспорта, автоматические анализаторы CSV), организационных мер (регулярность проверок, формализация процессов инцидент-менеджмента), а также из грамотного распределения ответственности между ИТ-подразделением и службой ИБ. Только при соблюдении этих принципов организация может уверенно соответствовать требованиям законодательства, защищать критически важную инфраструктуру от инцидентов и минимизировать возможные последствия проверки внешних органов.

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