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

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

Изначально AppLocker позволял применять ограничивающие политики только для Enterprise редакций Windows. Начиная с Windows 10 2004 и Windows 11, политики AppLocker можно применять и для Pro редакций.

Ранее ограничения на запуск приложений можно было внедрять через Software Restriction Policies (SRP), однако начиная с Windows 10 1803 и Windows Server 2019 технология SRP считается устаревшей (deprecated).

Создадим новую доменную GPO с настройками AppLocker с помощью консоли управлениями доменными политиками gpmc.msc (по аналогии можно создавать политики Applocker на отдельных компьютерах с помощью локальной групповой политике).

  1. Перейдите в режим редактирования новой GPO
  2. Чтобы политики AppLocker применялись к клиентам, на них должна быть включена служба Application Identity (служба AppIDSvc по умолчанию отключена).
  3. Перейдите в раздел Computer Configuration -> Windows Settings -> Security Settings -> System Services. Откройте настройки службы Application Identity и включите для нее автоматический запуск. Автозапуск службу Application Identity нужен для работы applocker
  4. Затем разверните Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Application Control Policies -> Applocker. Здесь можно создать правила для четырех категорий ПО:Executable Rules – исполняемые .EXE файлы (и .COM файлы).
    Windows Installer Rules – файлы установщика Windows (.MSI, .MSP, .MST).
    Script Rules – файлы скриптов (.BAT, .CMD, .JS, .PS1, and .VBS).
    Packaged app Rules – APPX и MSIX приложения Microsoft Store.
  5. Мы создаем правила для простых исполняемых файлов. Поэтому щелкните правой клавишей по Executable Rules и выберите Create Default Rules Создать стандартные правила AppLocker
  6. Будут созданы несколько стандартных правил AppLocker:Allow Everyone (All files located in the Program Files folder) – правило разрешает пользователям запуск любых файлов из каталогов Program FilesAllow Everyone (All files located in the Windows folder) – разрешает запускать пользователям все файлы из каталога WindowsAllow BUILTIN\Administrators (All files) – позволяет членам группы локальных администраторов запускать любые файлы. Список правил applocker
  7. Допустим, вы хотите разрешить пользователям запускать определение приложение (независимо от его версии и местоположения)
  8. Создайте новое правило AppLocker. Выберите хотите ли вы разрешить (Allow) или запретить (Deny) запуск исполняемого файла. Выберите группу пользователей (по умолчанию Everyone), для которых будет применяться эта политика. Создать новое разрешающее правило Applocker
  9. Далее нужно выбрать тип условий для правила AppLocker. Доступны три варианта:

    Publisher – позволяет создать правила для подписанных файлов (файлов от определенного издателя). В таком правиле можно выбрать название компании, имя продукта, имя исполняемого файла или версию файла

    Path – позволяет указать путь к каталогу или файлу, к которому будет применяться правило. Можно указать как полный путь к EXE файлу, так и использовать подстановочный символ * (например, правило C:\MyAppFolder\* будет применяться ко всем исполняемым файлам в указанном каталоге)

    File hash – правило позволяет идентифицировать неподписанный файл по его хэшу (SHA256). Такое правило позволит разрешить или запретить запуск файла независимо от его имени или расположении на диске. Но, если версия файла изменится (например после обновления версии софта), правило придется пересоздавать для нового хэша.

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

    Каталог или диск WindowsПеременная пути AppLocker
    Каталог Windows %WINDIR%
    Каталоги System32 и SysWOW64 %SYSTEM32%
    Корневой каталог установки Windows (диск C:) %OSDRIVE%
    Каталог Program Files %PROGRAMFILES%
    Съемные носители (например, CD или DVD) %REMOVABLE%
    Съемные запоминающие устройства (USB-накопители) %HOT%

  10. Мы создадим правило для издателя. Нужно выбрать целевой файл. Т.к. этот файл отсутствует на контроллере домена, с которого мы создаем правило AppLocker, можно указать UNC путь к нему на клиентском компьютере (например, в формате административной шары: "\\ClientPC123\c$\MyAppFolder\tcpview64.exe"
  11. Я хочу разрешить запуск этого файла по его имени (независимо от версии). Поэтому ползунок передвигаем на поле File Name. Либо можно настроить более гибкие условия с помощью опции Use custom values. Создать правила разрешающее запуск приложения по издателю
  12. В разделе Exceptions можно сделать исключения по пути, издателю или хэшу файла (например, запретить запуск старых уязвимых версий приложений, или запретить запуск из определенных папок). Исключения для правила Applocker
  13. Осталось задать имя нового правила AppLocker. Список примененных правил контроля запуска приложений

Теперь создадим правило, которое запрещает запуск anydesk.exe

  1. Создайте новое правило AppLocker
  2. Правило должно запрещать запуск приложения для всех. Выбираем Action: Deny, User or Group: Everyone. Запретить запус программы через Applocker
  3. Создайте новое правило по Publisher и выберите исполняемый файл AnyDesk.
  4. Правило должно срабатывать независимо от версии и местоположение файла. Можно полностью запретить запуск файлов, подписанных издателем O=ANYDESK SOFTWARE GMBH, или ограничить запуск по имени продукта. Запрет запуска по имени программы (независимо от имени файла)
  5. Такое правило будет запрещать запуск данной программы независимо от каталога, в котором находится исполняемый файл и фактического имени файла
Несмотря на то, что для локальных администраторов разрешен запуск любых локальных исполняемых файлов, запрещающее правило будет иметь приоритет.

Чтобы созданные вами правила AppLocker применялись к клиентам, нужно открыть свойства AppLocker в консоли GPO. Здесь доступны четыре типа правил

  • Executables rules – правила для произвольных исполняемых файлов
  • Windows Installer rules – правила для MSI установщиков
  • Script Rules – правила запуска скриптов
  • Packaged all Rules – правила для APPX/MSIX приложений Microsoft Store

По умолчанию правила AppLocker не применяются. Чтобы применить правила для клиентов, нужно включить опцию Configured и выбрать хотите ли вы применить правила в режиме аудита (Audit mode), или в “боевом” режиме Enforce rules.

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

Включить политику AppLocker в режиме аудита

Назначьте GPO с настройками AppLocker на целевую OU (настоятельно рекомендуем сначала проверять правила блокировки на тестовых компьютерах/OU).

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

Чтобы проверить, как AppLocker срабатывает на запуск различных файлов нужно смотреть события аудита. Откройте консоль Event Viewer -> Application and Services Logs -> Microsoft -> Windows -> AppLocker -> EXE and DLL.

Если AppLocker обнаруживает запуск исполняемого файла, который запрещен политиками запуска, в журнал будет добавлен warning с EventID 8003, в котором будет указано имя заблокированного приложения.

%OSDRIVE%\TOOLS\ANYDESK.EXE was allowed to run but would have been prevented from running if the AppLocker policy were enforced.

Событие EventID 8003 - аудит блокировки запуска приложения правилами AppLockert

Если запуск приложения разрешен, добавляется информационное событие с EventID 8002.

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

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

Для выгрузки списка приложений из Event Viewer, которые будут блокироваться правилами AppLocker можно использовать PowerShell:

$MyPeriod = (Get-Date).AddHours(-24)

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-AppLocker/EXE and DLL"; Id = 8003; StartTime = $MyPeriod} | Format-Table TimeCreated, Message -AutoSize

POwerShell - вывести список событий из журнала аудита AppLocker

Если политика блокирует запуск нужного файла, отредактируйте GPO с AppLocker и добавьте разрешающее правило для запуска такого приложения.

После того, как вы отладили правила AppLocker в режиме аудита, можно применить политики уже в боевом режиме. Для этого в настройках политики AppLocker измените Audit на Enforce rules.

Принудительное применение правил AppLocker

Теперь AppLocker будет блокировать запуск запрещенных приложений:

This app has been blocked by your administrator

AppLocker: запуск приложения заблокирован администратором

Теперь в Event Viewer появится ошибка с Event ID 8004 и именем заблокированного файла:

%OSDRIVE%\TOOLS\ANYDESK.EXE was prevented from running.

Event ID 8004 was prevented from running

Создавать отдельные правила для разрешенных и запрещенных программ AppLocker вручную довольно долго и утомительно. Для ускорения процесса можно использовать несколько инструментов.

В консоли редактора политики AppLocker доступна функция автоматической генерации файла. Администратор может выбрать опцию Automatically Generate Rules, указать целевую папку на эталонной машине и для AppLocker будет сформирован список правил для всего найдено на компьютере софта.

Автоматическая генерация правила для AppLocker

Также можно создать правила AppLocker, импортировав правила с отдельных компьютеров. Например, с помощью PowerShell можно извлечь из журнала событий список заблокированных:

Get-ApplockerFileinformation -Eventlog -EventType Audited|fl

Get-ApplockerFileinformation

На основании этих данных сразу можно создать правила для локальной политики AppLockerL

Get-ApplockerFileinformation -Eventlog -EventType Audited | New-ApplockerPolicy -RuleType Hash, Publisher -User abelov -RuleNamePrefix AuditBased | Set-ApplockerPolicy –Merge

Новые правила будут добавлены в локальную политику AppLocker компьютера, откуда их можно экспортировать и перенести в доменную GPO.

Импорт и экспорт правил AppLocker в GPO между компьютерами

Вывести только заблокированные файлы (в том числе количество попыток запустить каждый файл):

Get-AppLockerFileInformation -EventLog -EventType Denied -Statistics

При разработке правил AppLocker нужно иметь в виду следующие моменты:

  • Явно запрещающие правила имеют приоритет на разрешающими
  • По умолчанию запрещено все, кроме явно разрешенного. Другими словами, разрешённый файл для запуска исполняемый файл не должен быть явно запрещён и должен быть явно разрешён.
  • В каждом правиле можно добавлять исключения (это, к примеру позволит применить некоторые правила только для определенных групп пользователей, сделав исключения для других групп). На скриншоте показан пример, как с помощью исключений запретить запуск PowerShell простым пользователям и разрешить администраторам, но запретить для обычных пользователей. Пример реализации такого правила в статье об отключении PowerShell на компьютере). Исключения для правил AppLocker - разрешить запуск приложения под админом, но запретить простым пользователям
  • При написании правил помните, что некоторые группу, например Everyone или Domain Users будут включать в себя и администраторов.

Касательно возможности временной приостановки работы AppLocker на компьютере. Может показаться, что, остановив службу Application Identity, правила AppLocker перестанут применяться. Однако это не так.

Для временного отключения AppLocker на компьютере нужно оставить службу AppIDSvc и удалить в папке C:\Windows\System32\AppLocker\ файлы AppCache.dat, Exe.AppLocker и Dll.AppLocker.

Правила AppLocker продолжают работать после отключения службы AppIDSvc

Еще одним механизм контроля запуска исполняемых файлов, доступный в современных версиях Windows называется Windows Defender Application Control (WDAC). Он несколько сложнее в настройке чем AppLocker, но выигрывает за счет гибкости, простоты масштабирования и более высокого уровня безопасности. Может блокировать запуск кода не только в пользовательском режиме, но и на уровне ядра (например, драйверов), а AppLocker работает только в пользовательском режиме.

Предыдущая статья Следующая статья


Комментариев: 11 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)