Использование групповой политики для управления конфигурацией системы безопасности
Управление конфигурацией безопасности на сотнях или тысячах машин Windows — одна из важнейших задач современного ИТ-администратора. Хорошо известно, что неудачное решение этой проблемы может привести к потере данных, необходимости тратить время на восстановление машин и в худшем случае к необратимым последствиям для компании. К счастью, в Windows 2000 появились групповые политики (Group Policy) — мощное средство для быстрого изменения параметров безопасности на всех машинах, работающих с Windows 2000 и более поздними версиями в среде Active Directory (AD). В данной статье речь пойдет о том, как использовать Group Policy для развертывания и управления конфигурацией системы безопасности, и о некоторых трудностях, возникающих при внедрении различных типов политик безопасности.
Мы рассмотрим также ряд параметров политик безопасности на базе Group Policy и попытаемся максимально использовать их преимущества. Но сначала необходимо понять, как назначить политику безопасности для домена — то есть как настроить параметры безопасности на объекте групповой политики (Group Policy Object, GPO), связанном с доменом AD (GPO можно связать с сайтами AD, доменами или организационными единицами — OU).
Следует обратить внимание, что все рассмотренные в данной статье функции реализованы в Windows Server 2003, Windows XP и Windows 2000, если специально не оговорено, что требуется определенная версия операционной системы.
Политики безопасности для домена
Одна из первых проблем безопасности, которую необходимо решить при развертывании AD, — политика для учетных записей (account policy). Политика для учетных записей представляет собой часть параметров безопасности GPO, с помощью которых можно задать для учетных записей домена нужную длину пароля, его сложность и режим блокировки. Чтобы задать политику, следует открыть редактор Group Policy Object Editor консоли управления Microsoft Management Console (MMC), отыскать GPO и перейти в раздел Computer ConfigurationWindows SettingsSecurity SettingsAccount Policies для этого GPO. Если политику для учетных записей требуется применить к пользовательским учетным записям, определенным в AD, то эту политику необходимо определить внутри GPO, связанного с доменом, потому что DC в домене AD обрабатывают лишь политики для учетных записей, содержащие GPO, связанные с данным доменом. DC также игнорируют три другие политики безопасности, если они не связаны с доменом:
- автоматическое отключение пользователей по истечении времени регистрации;
- переименование учетной записи administrator;
- переименование учетной записи guest.
Эти три политики расположены в разделе Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity Options для GPO.
Может возникнуть вопрос, почему Microsoft требует, чтобы политики для учетных записей и эти три политики безопасности были в GPO, связанном с доменом. Как известно, если сервер в домене назначается контроллером домена AD, то по умолчанию AD сохраняет DC в организационном подразделении Domain Controllers. Однако если переместить DC в другое организационное подразделение OU, то он сможет получать различные политики безопасности. Политики для учетных записей и три указанные политики безопасности должны быть согласованы на всех DC, поэтому специалисты Microsoft составили программный код обработки GPO таким образом, что эти политики игнорируются, кроме тех случаев, когда они связаны с доменом. Таким образом, гарантируется, что все DC, независимо от местоположения, получают одинаковые политики. Другие политики безопасности, такие как политики аудита и ограниченные группы, могут быть разными на DC в различных OU. Следует помнить об этой особенности политик, если требуется переместить DC из организационной единицы Domain Controllers.
Рекомендуемые подходы
При построении нового домена AD внутри него создаются два GPO: Default Domain Policy и Domain Controllers Policy, связанные с OU Domain Controllers. Эти GPO помогают администраторам Windows настроить доменную учетную запись и другие политики безопасности, но некоторые специалисты не рекомендуют затрагивать готовые GPO. Поэтому многие администраторы не знают, следует ли использовать их для политик безопасности или лучше построить собственные. В принципе, возможны оба подхода.
При развертывании политик безопасности в масштабах домена необходимо соблюдать два правила. Как уже отмечалось, политику для учетной записи в масштабах домена можно назначить только для GPO, связанного с доменом. Если нужно применить в домене другие политики безопасности (например, указать стандартный размер журнала Security на всех DC домена), то следует назначать эти политики в GPO, связанном с Domain Controllers OU (предполагается, что DC не были удалены из этой организационной единицы). Windows обрабатывает GPO по порядку: сначала локально, затем в сайтах, доменах и OU, поэтому политики безопасности, заданные в GPO, связанных с Domain Controllers OU, обрабатываются последними и замещают любые политики, связанные с доменами.
Однако это правило может вступить в конфликт с другим правилом: включение режима No Override в GPO, связанном с доменом. В режиме No Override нижние по иерархии GPO не могут отменить противоречащие политики более высокого уровня. Если необходимо, чтобы политика была основной во всех случаях, следует активизировать No Override в связанном с доменом GPO, который задает политику для учетных записей. Но если тот же связанный с доменом GPO используется для назначения других политик безопасности (например, политики аудита), то он отменит любые параметры аудита, заданные в GPO, связанных с OU Domain Controllers. Поэтому я рекомендую не возлагать других функций на GPO, определяющий политику для учетных записей. Таким образом, администрирование этого GPO и политики для учетных записей домена можно делегировать специалистам по безопасности, оставив за собой право назначать нужные политики безопасности непосредственно на компьютеры.
Просмотр действующей политики
Часто приходится слышать вопрос: «Как просмотреть действующую политику безопасности на DC, серверах и рабочих станциях?» Конечно, для просмотра параметров безопасности на данном компьютере можно использовать различные инструменты определения результирующей политики, например, консоли Resultant Set of Policies (RSoP) или такие инструменты командной строки, как GPResult. Однако для просмотра локального GPO на данном компьютере проще использовать редактор Group Policy Object Editor.
Для всех параметров политики, за исключением безопасности, при просмотре GPO на локальном компьютере отображаются параметры, сохраненные в статических файлах в локальной файловой системе (%systemroot%system32grouppolicy). Но при просмотре локального GPO политики безопасности редактор Group Policy Object Editor показывает действующие параметры, установленные на данном компьютере. На системе Windows 2000 одновременно отображаются локальные параметры и действующие значения, предоставляемые объектом GPO, связанным с AD (экран 1).
Windows 2003 и XP формируют несколько иное представление. При просмотре политики безопасности локального GPO в любой из этих версий Windows видны только действующие параметры. Локальный параметр можно отредактировать, дважды щелкнув на нем мышью, но нельзя редактировать параметр, управляемый GPO, связанным с AD.
При изменении политики безопасности локального GPO в отсутствие политики безопасности, связанной с AD, изменения вносятся в действующую базу данных SAM данной локальной машины, а не в набор файлов, расположенных в файловой структуре локального GPO в %systemroot%system32grouppolicy, как в случае с другими параметрами локального GPO.
Гарантированное применение политики безопасности
Способ, используемый Windows для обработки политик, иногда противоречит гарантированному развертыванию политики безопасности. Чтобы разобраться в этом конфликте, необходимо иметь базовые знания о том, как обрабатываются групповые политики. При создании и редактировании GPO, связанных с AD, с помощью редактора Group Policy Object Editor параметры GPO сохраняются в AD и на системном томе (sysvol) компьютера, а также назначаются параметры, которые GPO будет применять на данной машине. Расширения клиентской стороны (Client-side Extensions, CSE) на компьютере обрабатывают параметры и вносят изменения в конфигурацию. Microsoft реализует CSE в DLL и поставляет их в составе операционной системы. Для каждой из основных областей политики существуют свои CSE, например для установки программ безопасности и административных шаблонов политик.
Чтобы увидеть CSE, зарегистрированные в настоящий момент на данной машине, нужно открыть реестр и просмотреть подразделы HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonGPExtensions. Каждый GUID-именованный подраздел в разделе GPExtensions представляет один CSE. Внутри GUID-именованных подразделов находится имя DLL, в которой реализованы функциональность политики и параметры, управляющие поведением CSE при обработке параметров политики.
Общая особенность всех GSE заключается в том, что они не выполняют повторную обработку GPO, если объект не изменялся за время, прошедшее с предыдущей обработки. Windows обрабатывает политику для компьютера, например политику безопасности, при запуске (или выключении) системы, а политику для пользователя — при регистрации или завершении сеанса пользователя. Такие события называются активными процессами. В дополнение к этим двум процессам Windows обрабатывает политики в фоновом режиме через каждые 90 минут (с небольшим отклонением) на рабочих станциях и автономных серверах домена и через каждые 5 минут — на контроллерах домена. Однако CSE пропускают обработку данного GPO как в активном, так и в фоновом режиме, если он не менялся со времени последнего цикла обработки. Поэтому если пользователь каким-то образом вносит в локальную конфигурацию изменения, противоречащие политике связанного с AD объекта GPO, то это локальное изменение остается в силе до тех пор, пока кто-нибудь не изменит GPO, управляющее данной политикой, — возможно, спустя много времени. По этой причине CSE безопасности периодически обновляют политику безопасности, независимо от того, изменялся ли GPO. Параметр MaxNoGPOListChangesInterval раздела HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonGPExtensions{827D319E-6EAC-11D2-A4EA-00C04F79F83A} определяет интервал обновления. Стандартное значение — 960 минут (16 часов), но интервал можно увеличить или уменьшить, изменив значение параметра реестра. Если требуется максимально строгое применение политики безопасности, то CSE можно настроить на обработку политики безопасности в каждом цикле, независимо от изменений GPO. Безусловно, дополнительная обработка увеличивает вычислительную нагрузку, но обработку можно выполнять лишь на отдельных машинах, обеспечив своевременное изменение конфигурации системы безопасности на важнейших серверах и рабочих станциях.
Чтобы изменить поведение CSE на компьютере, следует открыть Group Policy Object Editor и перейти в раздел Computer ConfigurationAdministrative TemplatesSystemGroup PolicySecurity Policy Processing для GPO, обрабатываемого компьютером. Даже если объекты Group Policy не изменились, следует выбрать Process (экран 2). После этого система будет обновлять политику безопасности во время каждого фонового и приоритетного цикла обработки.
Я рассмотрел некоторые механизмы развертывания политик безопасности на базе GPO. Наша задача — максимально эффективно использовать сильные стороны политик безопасности Windows.
Применение политики безопасности Windows
В Windows 2003, XP и Windows 2000 насчитываются сотни параметров для настройки защищенной конфигурации серверов и рабочих станций. Как отыскать все эти параметры и определить их назначение? Отправной точкой для изучения параметров политик безопасности может служить документация Microsoft.
В апреле Microsoft выпустила руководство Windows Server 2003 Security Guide, в котором приведены шаблоны безопасности для разнообразных типовых ролей серверов (например, конфиденциальных файл-серверов и DC). Аналогичные шаблоны можно загрузить для Windows 2000 Server. В XP базовые шаблоны безопасности находятся в папке %systemroot%security emplates.
Для использования шаблона в среде Group Policy достаточно импортировать в GPO файл шаблона .inf, в котором будут храниться параметры, щелкнув правой кнопкой на контейнере Security Settings в редакторе Group Policy Object Editor, и выбрать пункт Import Policy. Можно также воспользоваться оснасткой Security Templates консоли MMC для просмотра и редактирования шаблонов Windows 2003 и Windows 2000 (экран 3).
Слабые места Windows
Изучая шаблоны, можно заметить, что во многих из них параметры безопасности установлены в контейнере Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity Options объекта GPO. Я называю эту область политики безопасности страницей защиты уязвимых мест (vulnerability defense page), так как в ней хранятся параметры, предназначенные для устранения обнаруженных за период эксплуатации Windows слабых мест.
С помощью параметров контейнера Security Options можно выполнить такие действия, как переименование учетных записей administrator и guest на всех машинах или отключение анонимного просмотра (enumeration) учетных записей SAM. Благодаря блокированию известных уязвимых мест, в шаблонах безопасности Windows 2003 и Windows 2000 реализованы оптимальные режимы защиты Windows-машин, но перед массовым внедрением необходимо протестировать параметры. Некоторые параметры могут помешать корректному функционированию сети, особенно если клиенты работают с операционными системами старых версий, несовместимых с этими параметрами.
Политика программных ограничений
В данной статье невозможно описать все политики безопасности, реализованные в Group Policy, но одна область заслуживает внимания — это политика программных ограничений (software restriction policy). Данная политика — новшество Windows 2003 и XP, поэтому использовать ее можно только с этими версиями. Политика программных ограничений доступна в Group Policy как параметр для отдельных компьютеров или отдельных пользователей. В сущности, политика программных ограничений запрещает запуск определенных приложений. Приложение можно ограничить в соответствии с сертификатом X.509, использованным для подписи, значением хеш-функции, Internet-зоной, в которой размещается программа, или путем к файлу.
Чтобы объяснить, как используется политика программных ограничений, проще всего проанализировать пример. Предположим, нам нужно запретить всем пользователям домена AD выполнять любые приложения, запускаемые из папки Temporary Internet Files в профиле пользователя. Как правило, в этой папке временно хранятся файлы, загруженные браузером Microsoft Internet Explorer (IE); поэтому в ней следует ограничить выполнение программного кода.
Прежде всего необходимо установить программные ограничения внутри GPO. Для этого следует перейти к Computer ConfigurationWindows SettingsSecurity Settings, щелкнуть правой кнопкой мыши на контейнере Software Restriction Policies и выбрать пункт Create New Policies. Windows немедленно создает набор объектов, с помощью которых можно изменить ограничения, накладываемые на программы, и отображает их в редакторе Group Policy Object Editor (экран 4). Три концевых узла в правой панели — Enforcement, Designated File Types и Trusted Publishers — позволяют установить глобальные параметры для политики программных ограничений. В большинстве случаев для каждого из них можно выбрать стандартные параметры.
Папка Security Levels содержит два параметра, из которых следует выбрать один, Disallowed и Unrestricted. По умолчанию выбирается режим Unrestricted, в котором пользователи могут запускать все программы, за исключением явно запрещенных политикой программных ограничений. В режиме Disallowed пользователи не могут запускать никаких программ, кроме явно разрешенных политикой программных ограничений. В данном примере используется выбираемый по умолчанию режим Unrestricted.
Основные компоненты политики программных ограничений находятся в папке Additional Rules. Если щелкнуть на ней правой кнопкой мыши, можно будет составить правила в соответствии с четырьмя описанными выше критериями. Для данного примера нужно составить правило, запрещающее выполнение любых программ из папки Temporary Internet Files в пользовательском профиле. Поэтому я создал новое правило для пути, назначил путь %userprofile%local settings emporary internet files, а затем установил для этого правила режим безопасности Disallowed (экран 5).
После того как данная политика вступит в силу, система не будет выполнять из папки Temporary Internet Files никаких приложений, чьи типы внесены в список Designated File Types. Очевидно, что политика программных ограничений может быть мощным средством, которое не позволит неизвестному программному коду причинить вред сетевой среде.
Дополнительные средства безопасности
Надеюсь, после прочтения статьи у многих читателей появится желание более глубоко изучить и активно использовать параметры настройки безопасности Windows Group Policy. Помимо упоминавшихся политик, администратор может назначать полномочия для файлов, реестра и служб и даже использовать политики ограниченных групп для управления членством в группах. В Windows 2003 реализована политика для беспроводных сетей, с помощью которой можно определить, с какими узлами доступа Access Point разрешается устанавливать соединения беспроводным клиентам Windows и обязательно ли при этом использовать защиту Wired Equivalent Privacy.
В целом групповые политики превосходно обеспечивают тонкую настройку системы безопасности Windows, так что в интересах администратора изучить их возможности в совершенстве.
Даррен Мар-Элиа — редактор журнала Windows & NET Magazine. С ним можно связаться по адресу: dmarelia@winnetmag.net.