Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 062

AppInit_DLLs

ПроверилCybersecurity entrepreneur & security researcher

Что такое AppInit_DLLs?

AppInit_DLLsУстаревшая техника закрепления в Windows, использующая значение реестра для загрузки указанной DLL в каждый пользовательский процесс, связанный с user32.dll.


Злоупотребление AppInit_DLLs (MITRE ATT&CK T1546.010) нацелено на HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs и его двойник в WOW6432Node. Когда LoadAppInit_DLLs установлен в 1, процедура инициализации user32.dll проецирует каждую DLL из списка AppInit_DLLs в любой процесс, загружающий user32.dll, — фактически в каждое интерактивное GUI-приложение. Таким образом, одна запись в реестр даёт широкое выполнение кода и закрепление, срабатывая как «триггер на новый процесс», а не как одноразовый автозапуск.

Техника старая, но поучительная. Она обеспечила механизм загрузки классического руткита Vanquish, а коммерческое ПО исторически (и неуклюже) её использовало: Nvidia и различные IME поставляли AppInit DLL, поэтому команды безопасности не могут просто выдавать оповещение о том, что значение непустое. Начиная с Windows 8, при включённом Secure Boot механизм AppInit отключается, если только каждая DLL из списка не имеет цифровой подписи, что резко сокращает его охват; на Windows 10/11 с включённым Secure Boot он практически мёртв. Он всё ещё встречается в устаревших средах Windows 7/Server 2008 и на хостах, где Secure Boot был отключён ради совместимости.

Защита: оставлять Secure Boot включённым, применять политику «требовать подписанные AppInit DLL», зафиксировать базовый снимок значения с помощью Autoruns из Sysinternals и оповещать о записях в реестр по этим ключам через Sysmon Event ID 13 или телеметрию EDR.

flowchart TD
  A[Злоумышленник с правами локального админа] --> W[Записывает путь DLL в ключ AppInit_DLLs]
  W --> L[Устанавливает LoadAppInit_DLLs = 1]
  L --> N[Запускается новый GUI-процесс]
  N --> U[Процесс загружает user32.dll]
  U --> SB{Secure Boot включён и DLL без подписи?}
  SB -->|Да| BLK[Загрузка пропущена - техника нейтрализована]
  SB -->|Нет| INJ[Вредоносная DLL спроецирована в процесс]
  INJ --> RUN[Код выполняется в каждом интерактивном приложении -> закрепление]
  W -.обнаружено.-> DET[Оповещения Sysmon EID13 / базовый снимок Autoruns]

Примеры

  1. 01

    Добавление пути вредоносной вспомогательной DLL в AppInit_DLLs на сервере Windows 7 для регистрации каждого нажатия клавиш во всех процессах.

  2. 02

    Комбинация AppInit_DLLs с отключённым Secure Boot для развёртывания пользовательского руткита.

Частые вопросы

Что такое AppInit_DLLs?

Устаревшая техника закрепления в Windows, использующая значение реестра для загрузки указанной DLL в каждый пользовательский процесс, связанный с user32.dll. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает AppInit_DLLs?

Устаревшая техника закрепления в Windows, использующая значение реестра для загрузки указанной DLL в каждый пользовательский процесс, связанный с user32.dll.

Как защититься от AppInit_DLLs?

Защита от AppInit_DLLs обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия AppInit_DLLs?

Распространённые альтернативные названия: Инъекция AppInit DLL, Закрепление через user32 AppInit.

Связанные термины