Траблшутинг обхода правил AppLocker: устранение уязвимостей и сбоев
Симптомы обхода и некорректной работы AppLocker
Пользователи без прав администратора запускают нежелательные исполняемые файлы (EXE, скрипты PowerShell, DLL), несмотря на активные политики AppLocker. В журнале AppLocker/EXE and DLL фиксируются разрешающие события Event ID 8002 вместо блокирующих Event ID 8004.
| Симптом | Причина обхода |
|---|---|
| Запуск EXE из C:\Windows\Temp или AppData | Слишком широкое стандартное правило по пути (Path Rule: %WINDIR%\*) |
| Обход через скрипты (PowerShell / MSBuild / Regsvr32) | Отсутствие правил для DLL и режима ConstrainedLanguage в PowerShell |
| Служба AppLocker не блокирует файлы | Служба удостоверения приложений (Application Identity - AppIDSvc) остановлена |
Пошаговое закрытие брешей и аудит правил AppLocker
- Убедитесь, что служба AppIDSvc находится в автозапуске: без нее ядро Windows игнорирует проверки AppLocker:
Set-Service -Name "AppIDSvc" -StartupType Automatic; Start-Service -Name "AppIDSvc" - Закройте уязвимость каталогов с правом записи внутри C:\Windows: создайте запрещающие правила (Deny Rules) для общедоступных каталогов записи (Temp, Tasks, Spool\Drivers\Color):
Get-ChildItem -Path "C:\Windows" -Directory -Recurse -ErrorAction SilentlyContinue | Where-Object { $acl = (Get-Acl $_.FullName).Access | Where-Object { $_.IdentityReference -like "*Users*" -and ($_.FileSystemRights -match "Write|FullControl|Modify") }; $acl -ne $null } | Select-Object FullName - Проверьте принудительный режим Constrained Language Mode для PowerShell:
$ExecutionContext.SessionState.LanguageMode - Включите правила принудительной проверки DLL (DLL Rule Collection): перейдите в свойства AppLocker в
secpol.msc, включите коллекцию правил для DLL и задайте режим «Enforce Rules».
Предупреждение: Включение правил принудительной блокировки DLL без предварительного аудита (Audit Only) может привести к сбоям стороннего ПО. Тестируйте правила в режиме аудита не менее двух недель.
Частые вопросы (FAQ)
Почему AppLocker не блокирует файлы, если служба AppIDSvc выключена?
Драйвер ядра AppLocker (appid.sys) полагается на службу Application Identity для расчета хешей и проверки сертификатов файлов. Без службы перехват не функционирует.
Как перевести AppLocker в режим аудита для безопасного тестирования?
В редакторе локальной политики безопасности откройте свойства AppLocker и в выпадающем списке для каждой коллекции выберите 'Только аудит' (Audit only).
Где смотреть события блокировки AppLocker?
В Просмотре событий: Журналы приложений и служб -> Microsoft -> Windows -> AppLocker -> EXE and DLL (или MSI and Scripts).
Какой код события регистрируется при блокировке файла?
Event ID 8004 регистрируется при блокировке запуска программы политикой AppLocker.