Контроль запуска приложений в Windows

Очень часто в организациях бывает необходимо запретить запуск определенных программ для пользователей. Со времен Windows XP/2003 в групповой политике есть замечательный инструмент в GPO — «Политика ограниченного использования программ«. Затем в Windows 2008/7 появился дополнительный инструмент под названием AppLocker.

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

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

1. Настроить всё так, что по умолчанию будет запрещен запуск любых программ за исключением белого списка. Способ в принципе хороший, но во-первых весьма опасный, потому как если в этот список по какой-либо причине не попадут необходимые компоненты Windows, то это может повлиять на работоспособность системы. Ну и во-вторых блокировать все это как-то не гуманно. По этим двум причинам этот способ мне не понравился.
2. Блокировать по маске названия или пути расположения файла программы. Плохой способ, потому что uTorrent установки не требует и при желании его можно положить в любую папку, а особо «продвинутые» пользователи переименуют исполняемый файл. Был файл utorrent.exe, а станет exploer.exe и все наши блокировки по названию плакали горькими слезами.
3. По хэш-сумме файла программы. Достаточно надежный способ. Хэш по своей сути это уникальный отпечаток файла, вычисляемый по специальной формуле. Перед запуском Windows вычисляет хэш запускаемого файла и сверяет его со значением прописанным в политике. Если хэши совпадают, то запуск запрещается. Недостаток этого способа в том, что каждый раз когда будет выходить новая версия uTorrent’а, вам каждый раз нужно будет добавлять хэш новой версии в политику блокировки. Постоянно следить за обновлениями программ и делать корректировки в политике не самая лучшая перспектива.
Но есть еще 4й способ блокировки — блокировка по цифровому сертификату издателя программы. В интернетах почему-то вскользь упоминается об этом способе, при этом все пишут много умных букв о том, что придется поднимать центры сертификации и прочее. Одним словом ахтунг! Чтобы развеять все эти домыслы мы сегодня во всех подробностях рассмотрим этот способ блокировки.
Открываем GPO, идем по пути Конфигурация компьютераКонфигурация WindowsПараметры безопасностиПолитика ограниченного использования программ:

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

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

В окне Сведений нам надо будет нажать кнопку «Просмотр сертификата»:

Затем в окне свойств сертификата надо перейти на закладку «Состав» и нажать там кнопку «Копировать в файл»:
После чего запустится мастер сохранения сертификата в отдельный файл.
Теперь возвращаемся в редактор групповой политики. Переходим раздел «Дополнительные правила» и в правой части консоли MMC жмем правой кнопкой мыши в любом свободном месте. В появившемся меню выбираем пункт «Создать правило для сертификата»:

В появившемся окне с помощью кнопки «Обзор» добавляем наш ранее сохраненный сертификат, указываем «Уровень безопасности — Не разрешено» и жмем ОК:

Вот собственно почти всё. Теперь после применения политики на всех машинах с Windows XP при запуске любой версии программы uTorrent из любого места она будет блокироваться. При этом пользователю будет выводиться вот такое сообщение:

Один нюанс заключается в том, что по умолчанию правила запрета по сертификатам не работают, несмотря на то что в GPO они явно прописаны. А один раз я столкнулся с ситуацией, когда на Windows XP эти правила заработали, а в Winodws 7 нет. Если посмотреть первоисточник, то там сказано, что за ограничения запуска программ по правилам сертификата отвечает специальный ключ в реестре по пути:
HKLMSoftwarePolicyMicrosoftWindowsSaferCodeIdentifiers — AuthenticodeEnabled.
Значение ключа должно быть равно 1. В Windows 7, например, отсутствовал не только этот ключ, а целиком ветка CodeIdentifiers. Это тоже важно. Нужно чтобы был не только ключ, но и остальные параметры ветки. Поэтому для простоты настройки я сделал reg файл, который добавляет в реестр всё необходимое.
Удачных экспериментов!

admin

3 комментария к “Контроль запуска приложений в Windows”

Вы можетеоставить отзыв или Обратную ссылку эта запись.
  1. Dmitry - 10 сентября, 2014

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

  2. Владимир - 28 октября, 2014

    У вас винда на обеих машинах лицензионная стоит или нет? Может проблема именно в этом?

  3. Николай - 19 августа, 2015

    Спасибо за инструкцию)
    Если блокировать по сертификату, то будет ли заблокирована установка приложений после обновления сертификата разработчиком ПО (например, по истечении срока)? Или блокировка идёт по имени в сертификате?

Нужно войти чтобы оставить комментарий.