J3qx

information archive

Работаем с защищёнными группами и AdminSDHolder

Posted by j3qx на Сентябрь 7, 2012

Работаем с защищёнными группами и AdminSDHolder

Привет.

Введение

В данной статье я расскажу про мелкую, но интересную функциональную единицу в составе Active Directory – механизм AdminSDHolder и то, как он защищает встроенные и стандартные группы. Рассказ будет про современную реализацию – в Windows Server 2008 R2, ну а детали про предыдущие реализации я буду иногда упоминать.

Оглавление

  • Что и как делает AdminSDHolder
  • Какие группы и учётные записи будут защищаться AdminSDHolder?
  • Как изменить, какие группы подпадают под око Большого Брата
  • Как изменить периодичность обработки AdminSDHolder
  • Как запустить процесс обработки AdminSDHolder вручную
  • Специфика работы с distribution groups
  • Что такое orphaned AdminSDHolder objects

Поехали.

 

ЧТО И КАК ДЕЛАЕТ ADMINSDHOLDER

AdminSDHolder – это объект в каждом домене леса Active Directory, который будет хранить в себе информацию о настройках безопасности для специфического подмножества групп, называемых “защищёнными группами” – “protected groups”. В основном это BUILTIN-группы. Сам объект будет располагаться в domain partition, в контейнере System.

Суть работы всего механизма будет достаточно простой. В Active Directory за задачи AdminSDHolder будет отвечать держатель маcтер-роли PDC Emulator. Он будет иметь жёстко прописанный список групп (разный в зависимости от версии серверной ОС, установленной на DC с ролью PDC Emulator), и, с определённой периодичностью (по умолчанию раз в час), данный механизм будет запрашивать перечень всех security principals, входящих в эти группы, а после – выставлять им ACL в соответствии с ACL’ом от объекта AdminSDHolder. Сам объект будет обладать достаточно занимательным ACL’ом, а чтобы исключить влияние унаследованных прав, наследование на данном объекте будет выключено.

Зачем это будет нужно?

Первое – это, безусловно, безопасность. Данный механизм делает ACL’ы учётных записей, находящихся в “защищённых группах”, предсказуемыми и страхует от случайного или преднамеренного изменения. Ну, к примеру, админ, увольняясь, может напоследок сделать какую-нибудь “приятную мелочь” – например, разрешить любому изDomain Users сбрасывать пароль одному из Account Operators, а у оных уже прописать такое же право, но наEnterprise Admins. Такое вручную вычислить достаточно сложно, да и утомителен такой аудит. Механизм обработки AdminSDHolder может решить эту проблему превентивным способом.

Второе – учётные записи, входящие в “защищённые группы”, могут быть в любом месте иерархии Active Directory. Соответственно, на них могут действовать унаследованные ACL’ы, которые будут изменять ситуацию с безопасностью критичных учётных записей. Рассматриваемый механизм блокирует наследование ACL’ов для всех целевых учётных записей.

КАКИЕ ГРУППЫ И УЧЁТНЫЕ ЗАПИСИ БУДУТ ЗАЩИЩАТЬСЯ ADMINSDHOLDER?

Для Windows Server 2008 R2 это будут:

    • Administrator
    • krbtgt

 

    • Administrators

 

    • Account Operators
    • Backup Operators
    • Print Operators
    • Server Operators

 

    • Domain Admins
    • Enterprise Admins
    • Schema Admins

 

    • Domain Controllers
    • Read-only Domain Controllers

 

  • Replicator

 

КАК ИЗМЕНИТЬ, КАКИЕ ГРУППЫ ПОДПАДАЮТ ПОД ОКО БОЛЬШОГО БРАТА

На практике возможна ситуация, когда постоянная “прокатка” ACL’ов для определённых security principals нежелательна. Это частично решаемо следующим образом.

Примечание: Частично – потому что вывести из-под этого механизма можно только одну или несколько групп семейства Operators. Для других групп это не получится.

В разделе Configuration есть объект с DN такого вида: CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=корневой_домен_леса. У этого объекта есть замечательный атрибут –dsHeuristics. Данный атрибут выглядит как unicode-строка, где 16й по порядку шестнадцатеричный разряд – это группа из 4х бит, которые, будучи включенными, обозначают:

  • Нулевой бит – исключить из процесса Account Operators
  • Первый бит – исключить из процесса Server Operators
  • Второй бит – исключить из процесса Print Operators
  • Третий бит – исключить из процесса Backup Operators

То есть, если захотите поправить – подумайте, какие группы хотите исключить, вычислите итоговое значение, откройте данный атрибут (он может выглядеть как-то так: 000000000100000с) и поправьте. В примере у меня на 16й позиции символ “C”, это значит, что Print Operators (которые 0100) и Backup Operators (которые 1000) исключаются из процесса.

Примечание: Операция делается на уровне леса, т.е. значение данного атрибута, заданного у корневого домена леса, будет использоваться всеми PDC-эмуляторами в лесу

КАК ИЗМЕНИТЬ ПЕРИОДИЧНОСТЬ ОБРАБОТКИ ADMINSDHOLDER

Это делается через редактирование следующего ключа реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters

в котором есть значение AdminSDProtectFrequency типа DWORD32. Если его нет – используется значение по умолчанию, равное 3600 секундам (1 час). Если хотите изменить этот параметр – создайте данное значение и присвойте ему нужное количество секунд. Имейте в виду, что до перезапуска службы ADDS на PDC-эмуляторе это значение не вступит в силу.

Примечание: Значения менее 1й минуты и более 2х часов не будут обрабатываться.

КАК ЗАПУСТИТЬ ПРОЦЕСС ОБРАБОТКИ ADMINSDHOLDER ВРУЧНУЮ

Для этого есть только один надёжный способ – вызов на объекте rootDSE операции RunProtectAdminGroupsTask. Для этого надо будет запустить утилиту ldp.exe, вначале подключиться (сделать ldap connect) к держателю роли PDC-эмулятора, после – подтвердить свои права авторизацией (через ldap bind), ну а после – “заказать” операцию, выбрав в меню Browse->Modify и указав названием атрибута – RunProtectAdminGroupsTask, значением – 1, типом операции – Add и нажав Run. Значение DN надо оставить пустым.

Примечание: До Windows Server 2008 R2 это делалось так же, но использовалась другая операция –FixUpInheritance, и вместо единицы в качестве значения надо было указывать Yes.

В общем-то из ключевого это всё. Теперь тонкости.

СПЕЦИФИКА РАБОТЫ С DISTRIBUTION GROUPS

Классикой жанра является заблуждение, что “у distribution-групп нет SID’а”. SID есть у всех объектов класса group, потому что данный объект относится к security principal. Если бы у distribution-групп не было SID’а, то тогда, неоднократно переключая тип группы между security и distribution, у группы каждый раз бы создавался новый SID, что, как несложно убедиться, не происходит.

К чему бы я это? К тому, что в маркере доступа SID’ов distribution-групп обычно нет – lsass их туда не добавляет, читая флаг “не-security-enabled-группа” (который, в общем-то, и является основным отличием между distribution и security группами). А вот механизм вычисления перечня security principals, подпадающих под карающий меч AdminSDHolder – добавляет. Говоря проще, если учётная запись X входит в безобидную группу почтовой рассылки “Поздравления к 23 Февраля”, а эта группа входит, допустим, в Backup Operators (бред конечно с практической точки зрения, но вдруг), то все участники списка рассылки будут подпадать под механизм AdminSDHolder. Он не различает security/distribution группы.

Учитывайте это при проектировании механизма защиты учётных записей.

ЧТО ТАКОЕ ORPHANED ADMINSDHOLDER OBJECTS

Когда при очередной “прокатке” домена данным механизмом он находит подпадающую под нужный критерий учётную запись или группу, он [механизм] ставит объекту атрибут adminCount в единицу. Что интересно – снимать назад не умеет. Т.е. у не-подпадающих security principal’ов нуль не пишет. Поэтому когда учётная запись, допустим, была участником Domain Admins, а после перестала, на ней сохраняется этот атрибут, и она начинает находиться в интересной ситуации – ACL у неё уже не перезаписывается AdminSDHolder’ом, но наследования нет.

Автоматического исправления этой ситуации нет. Для исправления Microsoft предлагает скрипт, доступный здесь.

ВЫВОДЫ

Данный механизм – штука весьма интересная. Надо, по крайней мере, знать как он работает и управляется, чтобы не удивляться самопроизвольному изменению ACL’ов у ряда учётных записей. Модифицировать время применения особо не нужно, КПД этого мероприятия сомнительно.

Удач.

 

© http://kb.atraining.ru/adminsdholder-protected-groups/

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: