Ограничение списка запускаемых программ при помощи групповых политик

  • 27.01.2020
  • 56 801
  • 0
  • 27
  • 27
  • 0
Ограничение списка запускаемых программ при помощи групповых политик

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

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

Решение таких задач с использованием политик ограниченного использования программ предоставляет администратору способ идентификации программ, выполняемых на компьютере домена и создание правил, устанавливающих возможность их выполнения. Использование таких политик возможно на операционных системах Windows Vista, Windows Server 2003 и Windows XP.

Как работает применение групповой политики

Применение групповой политики

Вкратце, собственно сам механизм применения групповой политики выглядит следующим образом. Вначале администратор создает объект групповой политики (GPO), содержащий определенный набор параметров рабочей среды. Этот объект может содержать настройки, применяемые как компьютеру, так и к пользователю. Далее, с помощью связывания (или привязки, linking) этот объект ассоциируется с одним или несколькими элементами дерева Active Directory. При загрузке компьютера, входящего в домен, выполняется запрос списков групповой политики у контроллера домена. Контроллер пересылает необходимые списки в том порядке, в котором они должны применяться на компьютере. Когда пользователь осуществляет вход в систему, выполняется еще один запрос о необходимых объектах групповой политики, которые затем применяются к пользователю, выполнившему вход в систему.

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

В общем рассмотрении механизм работы политик ограничения запуска программ достаточно прост. Для начала они активируются при создании нового объекта групповой политики или редактировании существующего. Затем выбирается уровень необходимой безопасности. Уровень безопасности – это базовая модель контроля за исполнением программ, или, другими словами – правило по умолчанию. Взглянув на рисунок, вы все поймете:

Уровни безопасности

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

Активирование политики ограниченного использования программ

Создайте объект групповой политики или откройте в редакторе существующий. Откройте ветвь Конфигурация компьютера или Конфигурация пользователя (в зависимости от того, к чему необходимо будет применить политику). Найдите и выберите раздел Конфигурация Windows – Параметры безопасности – Политики ограниченного использования программ.

Активирование политики ограниченного использования программ

Если политики еще не были определены, в окне редактора вы увидите предупреждение, что в случае их назначения новые правила перекроют параметры политик, унаследованных от других объектов GPO. Поскольку именно это мы и собираемся сделать, выбираем в меню Действие команду Создать политики ограниченного использования программ.

Переходим в раздел Уровни безопасности. Действующий уровень отмечен иконкой с галочкой. По умолчанию им является уровень Неограниченный.

Активирование политики ограниченного использования программ

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

Активирование политики ограниченного использования программ

Общие параметры настроек политики

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

Общие параметры

Принудительное использование

Первый параметр определяет, следует ли проверять библиотеки DLL, и возможность применения ограничений, накладываемых политикой на локальных администраторов компьютеров. DLL – это библиотеки динамической компоновки, которые являются частью некоторых исполняемых программ. По умолчанию, проверка DLL отключена.

Опции принудительного применения

Без особой нужды нет необходимости переключать этот параметр в положение проверки всех файлов программ. Причин для этого несколько. Во-первых, при большом количестве исполняемых файлов и «прицепленных» к ним библиотек (а в Windows их предостаточно) резко снижается производительность системы - параметры политики будут просматриваться при каждом вызове программой библиотеки DLL. Во-вторых, если исполнение файла будет запрещено политикой, то не возникнет и необходимости проверки сопутствующих библиотек.

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

Типы файлов

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

Типы файлов

Список редактируемый – вы можете исключать из него перечисленные типы, а также добавлять новые.

Доверенные издатели

Эта группа параметров позволяет настраивать реагирование политики на элементы управления ActiveX® и другое подписанное содержимое.

Доверенные издатели

Здесь можно указать, кто будет принимать решение о доверии подписанному содержимому (лучше оставить это право администраторам предприятия), а также задать параметры проверки сертификатов – проверить, не отозван ли сертификат, и удостовериться, что он не просрочен.

Создание правил политики

Правило политики ограниченного использования программ – это и есть тот механизм, с помощью которого программа «опознается». Правило определяет, разрешить или запретить выполнение программы, соответствующей указанным в нем условиям. Для сопоставления программы и условия можно использовать четыре параметра исполняемого файла - или, другими словами, применять один из четырех типов правил:

  • Зона
  • Путь
  • Сертификат
  • Хеш

Создание нового правила

Для создания нового правила необходимо перейти в раздел Дополнительные правила, щелкнув по нему мышью в списке объектов редактора групповой политики, и затем выбрав в меню Действие (или в меню, открываемом правым щелчком мыши) необходимый тип правила.

Правило зоны

Дабы избежать некоторой двусмысленности, сразу оговоримся, что речь пойдет о зонах, используемых Internet Explorer, а не учреждениях пенитенциарной системы. Этот тип правила позволяет задать зону Интернета и установить для нее правило – разрешить запуск или запретить его.

Правило зоны

Главный минус, делающий его практически бесполезным – применяется только к файлам пакетов установщика Windows (Windows Installer, расширение *.msi).

Правило пути

Идентифицирует исполняемое приложение по его местоположению. Может содержать имя каталога или полный путь к исполняемой программе. Используется как локальный путь, так и универсальный путь в формате UNC. Допустимо применение переменных среды и подстановочных знаков «?» для любого единичного символа и «*» для любого количества символов.

Правило пути

Путь можно ввести вручную в соответствующее поле или воспользоваться кнопкой Обзор.

Кроме указания самих путей в явном виде, допускается указание пути в реестре. Такая возможность полезна в том случае, когда у пользователя существует возможность установить приложение в неопределенное заранее место файловой системы компьютера, а программа хранит пути к своим рабочим каталогам в реестре. Правило будет просматривать соответствующую ветвь реестра, и при его совпадении будет производиться заданное в правиле действие – разрешение или запрет на запуск. Путь в реестре должен быть заключен между знаками «%». Он может содержать в окончании пути подстановочные знаки и использовать переменные среды. Не допускается использовать сокращения HKLM и HKCU (должен использоваться полный формат в виде HKEY_LOCAL_MACHINE), путь не должен заканчиваться символом «\» непосредственно перед закрывающим знаком «%» в правиле. Параметр реестра может быть типа REG_SZ или REG_EXPAND_SZ. По умолчанию, при активировании политик ограниченного использования программ создается четыре разрешающих правила пути в реестре.

Правило пути в реестре

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

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

Правило сертификата

Устанавливаются для файлов, имеющих цифровую подпись издателя. Для создания правила нажмите кнопку Обзор и укажите необходимый сертификат.

Правило для сертификата

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

Правило хеша

Пожалуй, самое «полезное» правило. Для идентификации файла используется его хеш. Хеш – это цифровой «отпечаток» файла, получаемый преобразованием его содержимого в битовую строку фиксированной длины с помощью специальных криптографических функций. Замечательное свойство такого преобразования заключается в том, что хеш однозначно идентифицирует любой файл, независимо от его названия и месторасположения. Любое, самое незначительное изменение кода файла приводит к изменению его хеша. И наоборот, два абсолютно идентичных файла имеют одинаковый хеш.

Правило для хеша

Для вычисления хеша файла укажите путь к нему, нажав кнопку Обзор. Если файл расположен на другом компьютере, необходимо обеспечить к нему доступ с той машины, где настраивается политика. Вы можете, например, подключить как сетевой диск стандартный общий ресурс вида \\COMP_NAME\C$. После расчета хеша в поле Хешируемый файл появятся его значение, длина файла и код алгоритма хеширования, разделенные двоеточием.

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

Область действия политик ограниченного использования программ и приоритет правил

Действие политик ограниченного использования программ не распространяется на:

  • Программы, запущенные от имени учетной записи SYSTEM
  • Драйверы и другие приложения уровня ядра
  • Макросы внутри документов Microsoft Office
  • Программы, написанные для общей многоязыковой библиотеки времени выполнения (Common Language Runtime) – эти программы используют политику безопасности доступа кода (Code Access Security Policy)

Приоритет применения правил выглядит так (по мере убывания приоритета):

  • Правило для хеша
  • Правило для сертификата
  • Правило для пути
  • Правило для зоны Интернета
  • Правило по умолчанию

Планирование создания правил политики

Планируя применение политик ограниченного использования программ, всегда полезно и настоятельно рекомендуется предварительно провести их «обкатку» в тестовой среде. Ввиду сложности структуры на первоначальном этапе возможны ошибки, которые, конечно, лучше исправлять не на рабочей системе. В случае «срабатывания» правила политики в локальный журнал компьютера заносится событие. Код содержит тип правила, его вызвавшего (865 - уровень безопасности по умолчанию, 866 - правило для пути, 867 - правило для сертификата, 868 - правило для зоны Интернета или правило для хеша).

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

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

Для включения режима расширенного ведения журнала на тестовом компьютере создайте параметр реестра в ветви HKLM\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers с именем LogFileName. Его значение должно содержать путь к каталогу, где будет расположен файл журнала. Содержимое журнала выглядит следующим образом:
winlogon.exe (PID = 452) identified C:\WINDOWS\system32\userinit.exe as Unrestricted using path rule, Guid = {191cd7fa-f240-4a17-8986-94d480a6c8ca}

Эта запись «переводится» так: родительский процесс winlogon.exe, имеющий значение идентификатора (PID) 452, выполнил запуск C:\Windows\system32\userinit.exe; правило, вызвавшее «срабатывание» - правило для пути с уровнем безопасности Неограниченный (Unrestricted), имеет код GUID {191cd7fa-f240-4a17-8986-94d480a6c8ca}. Каждое правило имеет свой идентификатор GUID. После того, как политика ограниченного использования программ применена, ее конфигурация хранится в системном реестре. Список контроля доступа, защищающий разделы реестра, позволяет только администраторам и учетной записи SYSTEM изменять ее. Политика пользователя хранится в разделе HKCU\Software\Policies\Microsoft\Windows\, политика компьютера хранится в разделе HKLM\SOFTWARE\Policies\Microsoft\Windows\.

Параметры политик в реестре

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

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

Небольшие примеры использования

Покажем все вышеизложенное на небольшом примере в тестовой среде. Создадим OU (пусть это будет Test Unit), поместим в него учетные записи компьютера и пользователя.

Тестовая OU

Для управления групповой политикой будет использоваться консоль gpmc. Создаем GPO – правой кнопкой мыши щелкаем на Test Unit, выбираем команду Свойства, в открывшемся окне переходим на вкладку Group Policy. Открываем консоль gpmc, еще раз делаем правый щелчок на Test Unit, и выбираем в меню команду Создать и связать GPO здесь… (Create and Link a GPO Here). Указываем имя для создаваемой политики, нажимаем кнопку ОК. Выбираем созданную политику, щелкаем по ней правой кнопкой мыши и указываем команду Редактировать (Edit).

Редактирование GPO

Откроется редактор объектов групповой политики. Сначала создадим политику, применяемую к компьютеру. Мы собираемся запретить всем пользователям на компьютерах группы Test Unit запуск любых программ, кроме Internet Explorer. Переходим в раздел Конфигурация компьютера – Конфигурация Windows – Параметры безопасности – Политики ограниченного использования программ. В меню Действие (или с помощью правой кнопки мыши) выбираем команду Новые политики. Переходим в раздел Уровни безопасности, включаем Не разрешено. Учитывая, что автоматически были созданы дополнительные правила, удаляем их. Для обеспечения входа пользователя в систему понадобится установить разрешения для некоторых программ. В моем случае (тестовая система с «чистой» установкой), необходимо, как минимум, разрешить запуск winlogon.exe, userinit.exe (для Vista это будут logonui.exe и userinit.exe) и explorer.exe из системной папки %windir%\system32. В другой ситуации, возможно, потребуются дополнительные разрешения - например, может возникнуть необходимость обработки сценариев, расположенных на сервере при входе пользователя в систему. Создаем для них правила пути, параметры которых вы можете увидеть на рисунке:

Созданные правила

Теперь создадим правило, разрешающее запуск Internet Explorer. Чтобы не дать возможности пользователю подмены файла и не зависеть от его расположения в файловой системе, будем использовать правило хеша. Подключаем на сервере, где мы производим настройку групповой политики диск C тестового компьютера. В редакторе объектов групповой политики в меню Действие выбираем команду Создать правило для хеша. Нажимаем кнопку Обзор, переходим в папку Program Files\Internet Explorer расположенную на тестовом компьютере и указываем файл IEXPLORE.EXE.

Правило хеша для IE

Чтобы потом не путаться, указываем в поле Описание название программы и ее версию. Отправляемся к тестируемому компьютеру проверять, что получилось. Для применения политик перезагружаем компьютер или выполняем на нем команду gpupdate /force. Пробуем запустить что-нибудь.

Запрет запуска программы

Отлично, запрет работает. Но самое забавное, что щелчок по ярлыку IE на рабочем столе его тоже не запускает (хотя прямой запуск из Проводника в рабочей папке IE сработает). Отменяем действие политики, чтобы посмотреть журнал ее применения (иначе Блокнот тоже не запустится). Наткнувшись на строчку вида
explorer.exe (PID = 372) identified C:\Documents and Settings\администратор\Рабочий стол\Запустить обозреватель Internet Explorer.lnk as Disallowed using default rule, Guid = {11015445-d282-4f86-96a2-9e485f593302}

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

Напомним, что обновление параметров групповой политики происходит при загрузке компьютера, а обработка параметров, относящихся к пользователю – при его входе в систему. Принудительно обновить параметры групповой политики можно с помощью команды gpupdate /force. Утилита gpupdate.exe также является исполняемым кодом, и это следует учесть в период тестирования. Чтобы не перезагружать компьютер каждый раз после изменения параметров групповой политики для проверки работы правил, добавим gpupdate.exe в список разрешенных приложений. Разрешим еще запуск Блокнота и Калькулятора с помощью правил хеша. Все правила выглядят так:

Добавление правил для запуска Блокнота и Калькулятора

В дополнение к ограничениям, можно заставить какую-либо программу из разрешенных к запуску автоматически стартовать при входе пользователя в систему. Для этого в разделе Административные шаблоны – Система – Вход в систему редактора политики выберите параметр Запускать указанные программы при входе в систему. Переведите переключатель в положение Включен, нажмите кнопку Показать. В открывшемся окне нажмите кнопку Добавить и укажите полный путь к программе (если она расположена в system32, достаточно указать только имя файла).

Запуск программ при входе в систему

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

В следующем примере мы изменим настройки политики, применяя ее лишь к тем пользователям, которые входят в Test Unit. Для этого создаем одноименные параметры в ветви Параметры пользователя, а настройки из ветви Параметры компьютера удаляем. Если вы отключали обработку параметров пользователя для ускорения обработки политики, ее необходимо будет включить (наоборот, теперь, если параметры компьютера не используются, можно отключить их обработку). Перезагрузим компьютер, и попробуем войти с учетными записями пользователей, которые принадлежат OU Test Unit, и которые в него не входят. Ниже показан экран, который увидит пользователь с учетной записью, входящей в Test Unit.

Пользователь с ограничениями

А здесь - пользователь, не входящий в Test Unit, не будет попадать под действие политики ограниченного использования программ.

Пользователь без ограничений

Заключение

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

Применение политик возможно и на компьютерах с ОС Windows, не являющихся членами домена. Например, можно создать шаблон безопасности на основе политики, а затем, после его переноса на необходимый компьютер, применить этот шаблон к локальной политике безопасности. В этом случае следует убедиться, что политика позволит произвести запуск утилиты Secedit, с помощью которой можно будет в дальнейшем обновить политику или отменить изменения.

При планировании применения политики ограниченного использования программ приходится учитывать множество аспектов, в том числе не явных. Поэтому еще раз обращаем внимание на то, что их настройку лучше производить в тестовой среде. Это позволит убедиться, что политика обеспечивает запуск необходимых приложений (например, используемые антивирусные программы), и запрещает исполнение нежелательного ПО. Такое использование позволит значительно снизить риск выполнения на компьютере вредоносных программ и упростит его дальнейшее администрирование.

Была ли эта статья Вам полезна?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.