Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Траблшутинг обхода правил AppLocker: устранение уязвимостей и сбоев

Обновлено: 28.08.2026  ·  Официальная база знаний

Симптомы обхода и некорректной работы 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

  1. Убедитесь, что служба AppIDSvc находится в автозапуске: без нее ядро Windows игнорирует проверки AppLocker:
    Set-Service -Name "AppIDSvc" -StartupType Automatic; Start-Service -Name "AppIDSvc"
  2. Закройте уязвимость каталогов с правом записи внутри 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
  3. Проверьте принудительный режим Constrained Language Mode для PowerShell:
    $ExecutionContext.SessionState.LanguageMode
  4. Включите правила принудительной проверки DLL (DLL Rule Collection): перейдите в свойства AppLocker в secpol.msc, включите коллекцию правил для DLL и задайте режим «Enforce Rules».

Предупреждение: Включение правил принудительной блокировки DLL без предварительного аудита (Audit Only) может привести к сбоям стороннего ПО. Тестируйте правила в режиме аудита не менее двух недель.

Практический опыт инженера: Никогда не ограничивайтесь только правилами по пути (Path Rules). Пользователи могут обойти их через запись в папки C:\Windows\Tracing или Temp. Всегда используйте правила по цифровым подписям издателя (Publisher Rules).

Частые вопросы (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.