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

AppInit_DLLs

監修Cybersecurity entrepreneur & security researcher

AppInit_DLLs とは何ですか?

AppInit_DLLsuser32.dll をリンクするすべてのユーザー モード プロセスに指定 DLL を読み込ませるレジストリ値を悪用する、レガシーな Windows 持続化手法。


AppInit_DLLs の悪用(MITRE ATT&CK T1546.010)は、HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs およびその WOW6432Node 側を対象とします。LoadAppInit_DLLs1 に設定されると、user32.dll の初期化ルーチンは AppInit_DLLs に列挙された各 DLL を、user32.dll を読み込むすべてのプロセス、すなわち事実上すべての対話型 GUI アプリケーションにマップします。したがって、1 回のレジストリ書き込みだけで広範なコード実行持続化が得られ、一度きりの自動起動ではなく「新規プロセスをトリガーとする」形で実行されます。

この手法は古いものの示唆に富みます。古典的な Vanquish ルートキットの読み込みメカニズムを提供したほか、商用ソフトウェアも歴史的に(そして不器用に)使用してきました。Nvidia やさまざまな IME が AppInit DLL を同梱していたため、セキュリティ チームは値が空でないというだけで単純にアラートを出すことはできません。Windows 8 以降、Secure Boot が有効な場合、列挙されたすべての DLL がコード署名されていない限り AppInit メカニズムは無効化され、その到達範囲は大幅に縮小します。Secure Boot が有効な Windows 10/11 では事実上機能しません。それでも、レガシーな Windows 7/Server 2008 環境や、互換性のために Secure Boot が無効化されたホストでは依然として観測されます。

対策:Secure Boot を有効に保つ、「署名済み AppInit DLL を要求する」ポリシーを適用する、Sysinternals の Autoruns で値のベースラインを取得する、そして 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

    Windows 7 サーバーで AppInit_DLLs に悪意ある補助 DLL のパスを追加し、全プロセス横断であらゆるキー入力を記録する。

  2. 02

    Secure Boot を無効化した環境で AppInit_DLLs を併用しユーザー モード ルートキットを展開する。

よくある質問

AppInit_DLLs とは何ですか?

user32.dll をリンクするすべてのユーザー モード プロセスに指定 DLL を読み込ませるレジストリ値を悪用する、レガシーな Windows 持続化手法。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。

AppInit_DLLs とはどういう意味ですか?

user32.dll をリンクするすべてのユーザー モード プロセスに指定 DLL を読み込ませるレジストリ値を悪用する、レガシーな Windows 持続化手法。

AppInit_DLLs からどのように防御しますか?

AppInit_DLLs に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

AppInit_DLLs の別名は何ですか?

一般的な別名: AppInit DLL インジェクション, user32 AppInit 持続化。

関連用語