Использование групповой политики для активизации ограниченного числа надстроек

Когда речь заходит об обеспечении безопасности сети малого бизнеса, неважно - на базе Windows Small Business Server 2003 (SBS 2003) или Windows Server 2003, я советую блокировать компоненты ActiveX на компьютерах Windows XP Service Pack 2 (SP2), и уж если разрешать, так только специально выбранные элементы управления. Блокируя элементы управления ActiveX, можно в значительной степени снизить риск запуска на компьютерах пользователей несанкционированного кода через Microsoft Internet Explorer (IE) и тем самым защитить системы клиентов от разного рода вредоносных программ, шпионского программного обеспечения и вирусов.

В своих продуктах SBS 2003 и Windows 2003 компания Microsoft предложила нам новый набор утилит Group Policy для управления ActiveX в доменах. Используя настройки новых групповых политик, администраторы могут добавлять в «белые списки» Group Policy разрешенные к применению ActiveX и блокировать запуск на компьютерах клиентов всех остальных ActiveX. К сожалению, этот процесс организован не так просто, как хотелось бы. Требуется отыскать глобальный уникальный идентификатор — Globally Unique Identifier (GUID), или Class ID, тех активных элементов ActiveX, запуск которых планируется разрешить, и вручную прописать длинные строки, состоящие из букв и цифр, вместо того чтобы просто использовать операции копирования-вставки. Надеюсь, данная статья поможет читателям преодолеть «кочки и ухабы» этого процесса; в остальном же будем надеяться на то, что в Windows Vista и IE 7.0 процедура будет усовершенствована и станет попроще.

Эта статья написана для тех, кто работает с сетями на базе SBS 2003, где присутствуют такие компоненты, как Windows SharePoint Services и Microsoft Outlook Web Access (OWA), и где задействованы механизмы использования надстроек IE. Но похожим образом все устроено и в больших сетях, где имеются аналогичные службы и используются те же самые механизмы.

Шаг 1. Поиск GUID для «белого списка»

Чтобы поместить элементы ActiveX в «белый список» групповой политики, сначала надо выяснить, какие элементы управления нужны пользователям. После этого требуется отыскать Class ID каждого такого элемента и вписать его в объект групповой политики — Group Policy Object (GPO).

На компьютере клиента, на котором, по всей вероятности, находятся элементы ActiveX и которые могут пригодиться остальным пользователям, следует запустить IE. Нужно выбрать в меню Tools команду Manage Add-ons. В окне Manage Add-ons представлены два списка элементов управления ActiveX: список элементов ActiveX, загруженных в системе в данный момент, и список элементов ActiveX, которые когда-либо загружались в системе. Необходимо открыть контекстное меню заголовка любого из двух списков, выбрать Class ID и добавить колонку Class ID в диалоговое окно (см. экран 1).

Экран 1. Выяснение GUID-элемента управления ActiveX

Далее следует просмотреть оба списка ActiveX и выписать идентификаторы класса (Class ID) тех активных элементов, которые предполагается поместить в «белом списке» GPO, в том виде, в каком они представлены в окне Manage Add-ons, - со всеми открывающими и закрывающими скобками и всеми дефисами. К сожалению, невозможно просто скопировать Class ID из списка и вставить содержимое буфера прямо в GPO. Надо быть готовым к тому, что Class ID придется вводить вручную, так что следует быть внимательным, переписывая идентификатор класса.

Но это еще не все. Списки Manage Add-ons в IE 6.0 не отображают всех запущенных в системе элементов ActiveX. Это очевидно, поскольку надстройки «спрятаны» за другими процессами. Мне пришлось провести небольшое расследование и собрать список надстроек, которые необходимы для того, чтобы те или иные возможности SBS 2003 заработали в полной мере, например Remote Web Workplace или OWA. В приведенной ниже таблице показан список ActiveX, обновляемый по мере необходимости (см. также статью Microsoft «Outlook Web Access and Small Business Server Remote Web Workplace do not function if XP Service Pack 2 Add-on Blocking is enabled via group policy», http://support.microsoft.com/kbid?=555235). Необходимо переписать идентификаторы класса для надстроек и указать их в списке разрешений GPO для включения соответствующей функциональности SBS 2003.

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

Однако на данный момент следует иметь в виду, что некоторые важные элементы ActiveX будут не учтены, поэтому в дальнейшем понадобится внести дополнительные идентификаторы Class ID в «белый список» - уже после того, как блокирование ActiveX вступит в силу.

Чтобы обнаружить все Class ID, которые подгружаются в систему клиента при обращении к тому или иному Web-сайту, сначала нужно загрузить и установить специальную утилиту Microsoft Debugging Tools for Windows (по адресу http://www.microsoft.com/ whdc/devtools/debugging/default.mspx). Следует запустить программу WinDbg и настроить путь к отладочным символам на общедоступный сервер отладки, расположенный по адресу http://msdl.microsoft.com/download/symbols.

Затем требуется подключиться к процессу IE (IEXPLORE), который к тому времени уже должен быть запущен, и установить следующую точку останова в консольном окне:

bp SHLWAPI!SHCoExtensionAllowed
«db poi(esp+4); g»

Нажмите F5, чтобы разрешить работу IE, и откройте Web-сайт, с которым предполагается взаимодействовать через IE.

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

Например, первая строка на экране 2 содержит строку, указанную в первой строке на экране 3. Если поменять порядок следования первых восьми чисел/символьных пар, убрать пробелы и добавить скобки и дефисы, получим Class ID для надстройки JavaScript, которая показана во второй строке на экране 3. Раз у нас в руках появились нужные идентификаторы класса, осталось только определить, требуются ли клиенту соответствующие надстройки и стоит ли добавлять их в разрешенный список (я не говорю, что это сделать просто).

Экран 3. Строка результатов WinDbg и соответствующий ей Class ID

Если точно известно, что необходимо разрешить работу некоторой специфической надстройки, которая не отображается в списках IE Manage Add-ons, можно связаться с разработчиком этой надстройки и затребовать у него Class ID.

Просмотр трассы отладчика и выписывание всех GUID для всех ActiveX вручную — занятие утомительное. Единственное утешение - сделать это придется только один раз, если воспользоваться GPO для применения списка разрешений.

Шаг 2. Добавление GUID в список разрешений GPO

Итак, у нас в руках необходимые глобальные уникальные идентификаторы. Теперь можно добавить их в «белый список» GPO. На компьютере с XP SP2 следует открыть самую последнюю версию консоли Group Policy Management Console (GPMC), которую можно загрузить по адресу http://www.microsoft.com/downloads/details.aspx?familyid=0a6d4c24-8cbd-4b35-9272-dd3 cbfc81887&displaylang=en. Или можно загрузить шаблоны XP SP2 Administrative Template (.adm) по адресу http://www.microsoft.com/downloads/details.aspx?familyid=92759d4b-7112-4b6c-adabbf3802a5c9b&displaylang=en и использовать их вместе с GPMC со своего сервера. Конечно, если версия Windows 2003 SP1 уже установлена, нужные точки входа GPO, которые были введены впервые в XP SP2, уже включены.

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

Теперь следует открыть политику и под узлом User или Computer перейти в Administrative TemplatesWindows Components Internet ExplorerSecurity FeaturesAdd-on Management. Установим флажок Deny all add-ons unless specifically allowed in the add-on list для разрешения запуска на станциях XP SP2 только тех ActiveX, которые будут внесены в специальный список.

Узел под Add-on Management — это список надстроек Add-on List. Его нужно открыть, выбрать Enabled и щелкнуть Show. Появится окно, в котором отображены все допустимые GUID элементов управления ActiveX. Здесь можно самостоятельно указать нужные GUIDs.

Далее следует щелкнуть Add и набрать GUID для надстройки, работу которой необходимо разрешить, не забывая об обязательных открывающих и закрывающих фигурных скобках и дефисах, и установить значение равным 1, если надстройку нужно разрешить. На экране 4 показано диалоговое окно Add Item с указанным глобальным идентификатором GUID для Macromedia Shockwave Flash Object. Необходимо внимательно проверить набранное значение идентификатора, прежде чем нажимать ОК. После нажатия ОК для данного GUID вернуться назад и отредактировать запись будет невозможно. Если была допущена ошибка, придется удалять всю запись целиком и добавлять ее снова. Это действительно непросто - вводить длинные строки цифр и символов для каждого GUID.

Экран 4. Ввод GUID в объект GPO

После того как все GUID, необходимые для внесения в «белый список», указаны, нужно закрыть GPO. Затем следует открыть окно командной строки на клиентской системе и набрать

GPUpdate /force

или перезагрузить ее, после чего протестировать список разрешений, подключаясь к Web-сайтам, посещаемым пользователями сети, и убедиться, что все страницы загружаются нормально. Блокировка надстроек - очень мощная функция XP SP2. Нет сомнений, что Microsoft могла бы усовершенствовать описанную процедуру разрешения определенного списка ActiveX в GPO. Будем надеяться на некоторые улучшения в разрабатываемой версии IE 7.0, а пока что остается использовать этот инструмент, который позволяет надежно блокировать работу нежелательных элементов управления на станциях пользователей в различных сетях.

Ник Виттом - Директор консультационной компании NTES из Ирландии, Microsoft MVP по Small Business Server. nick@nte.ie