Защита управляемых учетных записей служб (gMSA) в Active Directory

Защита управляемых учетных записей служб (gMSA) в Active Directory

08.04.2025

Эта техническая и образовательная статья призвана помочь аналитикам безопасности, ИТ-администраторам и системным инженерам реализовать и защитить групповые управляемые учетные записи служб (gMSA) в Active Directory. gMSA предлагают надежное решение проблем безопасности учетных записей за счет автоматизации управления паролями и упрощения администрирования [1].

Введение

Традиционные учетные записи служб со статическими паролями представляют значительный риск. gMSA (групповые управляемые учетные записи служб) расширяют функциональность MSA (управляемые учетные записи служб), позволяя использовать одну учетную запись службы несколькими серверами, при этом Active Directory автоматически управляет ротацией паролей и распределением ключей без ручного вмешательства [2].

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

Почему gMSA так важны?

  • Автоматическое управление паролями. Сложные и длинные пароли автоматически генерируются и меняются каждые 30 дней с помощью Active Directory.
  • Развертывание на нескольких серверах: один gMSA может использоваться несколькими серверами, что упрощает администрирование в распределенных средах.
  • Принцип наименьших привилегий: облегчает предоставление минимально необходимых разрешений.
  • Улучшенный аудит. Упрощается аудит, поскольку идентификаторы служб четко определены и отслеживаются.

Предварительные условия

  1. Контроллеры домена (DC) с Windows Server 2012 или более поздней версии.
  2. Функциональный уровень домена (DFL) Windows Server 2012 или более поздней версии.
  3. Модуль Active Directory для Windows PowerShell.
  4. Рядовые серверы домена, которые будут использовать gMSA.
  5. Группа безопасности для хостов: группа безопасности в Active Directory, которая будет содержать серверы, которые будут использовать gMSA.

Шаг за шагом: внедрение и обеспечение безопасности gMSA

1. Настройка службы корневых ключей KDS

Служба корневых ключей KDS необходима, чтобы Active Directory могла генерировать пароли для gMSA. Его необходимо настроить один раз для каждого леса [3].

  1. Откройте Windows PowerShell от имени администратора на контроллере домена.
  2. Проверьте, настроена ли служба корневых ключей KDS: powershell Get-KdsRootKey
  3. Если ключ не возвращен, создайте новый корневой ключ KDS. В рабочей среде используйте Add-KdsRootKey -EffectiveTime (Get-Date).AddHours(-10), чтобы включить репликацию. Для немедленного тестирования используйте: powershell Добавить-KdsRootKey -EffectiveImmediately

2. Создание группы безопасности для хостов

Эта группа будет содержать серверы, которым будет разрешено восстановить пароль gMSA.

  1. Откройте Пользователи и компьютеры Active Directory (dsa.msc).
  2. Создайте новую группу безопасности (например, gMSA_Hosts_ServicoX) с областью действия Global и типом Security.
  3. Добавьте в эту группу компьютеры (серверы), которые будут использовать gMSA (например: «ServidorApp01$», «ServidorApp02$»).

3. Создание gMSA

Теперь давайте создадим gMSA с помощью PowerShell.

  1. Откройте Windows PowerShell от имени администратора на контроллере домена.
  2. Используйте командлет New-ADServiceAccount: powershell New-ADServiceAccount -Name gMSA_ServicoX -DNSHostName gMSA_ServicoX.contoso.com -PrincipalsAllowedToRetriveManagedPassword "gMSA_Hosts_ServicoX"
    • Объяснение: Параметр PrincipalsAllowedToRetrieveManagedPassword указывает группу безопасности, которая может получить пароль gMSA. Эта группа должна содержать серверы, на которых будет выполняться служба.

4. Установка и тестирование gMSA на хост-серверах

На серверах, которые будут использовать gMSA, вам необходимо установить его и протестировать его работоспособность.

  1. На каждом сервере-члене группы gMSA_Hosts_ServicoX откройте Windows PowerShell от имени администратора.
  2. Установите gMSA: powershell Install-ADServiceAccount-Identity gMSA_ServicoX
  3. Проверьте, что gMSA установлен и работает: powershell Test-ADServiceAccount-Identity gMSA_ServicoX
    • Ожидаемый результат: Результат должен быть «True», что указывает на то, что gMSA готово к использованию на сервере.

5. Связывание gMSA со службой

  1. На сервере, где будет сервисПосле выполнения откройте консоль Services (services.msc).
  2. Найдите службу, которую хотите настроить.
  3. Щелкните службу правой кнопкой мыши и выберите Свойства.
  4. На вкладке Вход выберите Эта учетная запись.
  5. В поле Эта учетная запись введите имя вашего gMSA, а затем $, например: gMSA_ServicoX$.
  6. Оставьте поля пароля пустыми. Active Directory будет управлять паролем автоматически.
  7. Нажмите Применить и ОК.
  8. Перезапустите службу, чтобы изменения вступили в силу.

6. Использование gMSA с запланированными задачами

  1. На сервере откройте Планировщик заданий (taskschd.msc).
  2. Создайте новую задачу или отредактируйте существующую.
  3. На вкладке Общие нажмите Изменить пользователя или группу....
  4. В поле Введите имя выбираемого объекта введите имя вашего gMSA, а затем $, например: gMSA_ServicoX$.
  5. Нажмите Проверить имена, а затем ОК.
  6. Оставьте поля пароля пустыми.
  7. Настройте другие параметры запланированного задания и нажмите ОК.

Лучшие практики и советы по безопасности

  • Принцип наименьших привилегий: предоставляйте gMSA только те разрешения, которые необходимы для выполнения его функций. Не используйте gMSA с правами администратора домена.
  • Выделенные группы безопасности: используйте определенные группы безопасности для PrincipalsAllowedToRetrieveManagedPassword, чтобы контролировать, какие серверы могут использовать gMSA.
  • Аудит: отслеживайте использование gMSA с помощью журналов безопасности Active Directory для обнаружения любых аномальных действий.
  • Защита корневого ключа KDS. Обеспечьте безопасность контроллеров домена, поскольку корневой ключ KDS имеет решающее значение для безопасности gMSA.
  • Удалить старые учетные записи служб. Перенесите службы в gMSA и отключите или удалите старые учетные записи служб, которые использовали статические пароли.
  • Документация: записывайте, какие gMSA используются, какие службы они запускают и на каких серверах.

Заключение

Групповые управляемые учетные записи служб (gMSA) — это жизненно важный компонент для повышения уровня безопасности Active Directory, особенно при управлении удостоверениями служб. Автоматизируя смену паролей, упрощая развертывание в распределенных средах и облегчая применение принципа наименьших привилегий, gMSA значительно сокращают поверхность атаки и сложность администрирования. Надлежащее внедрение и управление gMSA — это важнейшие шаги для защиты ваших сервисов и приложений от киберугроз.

Ссылки

[1] Майкрософт. (2023). Группа управляемых учетных записей служб (gMSA) в Active Directory. [2] Майкрософт. (2023). Обзор управляемых учетных записей служб. [3] Майкрософт. (2023). Служба распределения ключей Active Directory (KDS).