Dynamic-link libraries (DLLs) that are specified in the AppCertDLLs Registry key under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager are loaded into every process that calls the ubiquitously used application programming interface (API) functions CreateProcess, CreateProcessAsUser, CreateProcessWithLoginW, CreateProcessWithTokenW, or WinExec. (Citation: Elastic Process Injection July 2017)
Similar to Process Injection, this value can be abused to obtain persistence and privilege escalation by causing a malicious DLL to be loaded and run in the context of separate processes on the computer.
T1182は「AppCert DLLs(AppCert DLLインジェクション)」として定義されている、Windows環境における高度な永続化・特権昇格手法です。
Windowsの特定のレガシーなシステム機構(AppCert)を悪用し、「システム内で新しいアプリケーション(プロセス)が起動した瞬間」をトリガーに、マルウェア(DLL)を自動的にそのプロセス内部へ読み込ませて実行する手法です。
この手法で攻撃者は、「ユーザーやシステムが何かアプリを開くたびに、自身のバックドアを確実に自動実行(永続化)させ、かつ別の正規プロセスに寄生して存在を隠蔽すること」を実現します。
強力な永続化(自動復活):
マルウェアの本体プロセスがセキュリティソフトによって終了させられても、ユーザーが「メモ帳」や「ブラウザ」など、何かしらの.exeファイルを新しく起動した瞬間に、裏でマルウェア(DLL)が自動的に再実行されます。
防御回避(ステルス性):
マルウェアが単独の怪しいプロセスとして動くのではなく、notepad.exe や explorer.exe といった「完全に信頼された正規プロセス」のメモリ空間を乗っ取ってその内部で動作するため、タスクマネージャーなどのプロセス一覧から見つけることが非常に困難になります。
特権昇格(Privilege Escalation):
もしシステム管理者が高い権限(AdministratorやSYSTEM)で新しいプロセスを起動した場合、そのプロセスにも悪意あるDLLが自動インジェクションされるため、ハッカーも自動的にその高い権限を手に入れることができます。
Windowsには、アプリケーションの互換性確認や監視のために、プロセス起動時に特定のレジストリに登録されたDLLを強制的に読み込む「Application Certification(AppCert)」という古い仕組みがあります。攻撃者はこのレジストリを書き換えます。
初期侵入と権限昇格:
攻撃者はまず、ターゲットのWindows端末に侵入します。この手法を仕込むためのレジストリ領域(HKEY_LOCAL_MACHINE)への書き込みには、管理者権限(AdministratorまたはSYSTEM)が必要なため、事前に特権を確保しておきます。
悪意あるDLLの配置:
遠隔操作(RAT)などの機能を備えた不正なDLLファイル(例: malware.dll)を、システムフォルダ内などの目立たない場所に配置します。
レジストリの改ざん:
WindowsのAppCert機能を管理する以下のレジストリキーに、配置したDLLを登録します。
HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDllsStandardVerify)を作成し、データの値として手順2で置いたマルウェアDLLの絶対パスを指定します。自動実行と寄生の発動:
仕込み完了後、システムやユーザーが新しいアプリケーション(API関数 CreateProcess や CreateProcessAsUser などを使用するもの)を起動します。
コード実行:
Windowsのプロセス生成機構が、レジストリを読み込んでマルウェアDLLを新プロセスのメモリ空間に自動ロードします。これにより、マルウェアはターゲットプロセスの権限で動作を開始します。
AppCertは特殊かつ古い機能であるため、現代のWindows環境では利用を制限し、レジストリを監視するのがセオリーです。
AppCertDllsレジストリキーの厳重な監視(最重要):
EDR(Endpoint Detection and Response)やWindowsのSysmon(Event ID 13: RegistryEvent)を使用し、HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls に対する新規の値の追加や変更を常時監視します。通常の業務アプリケーションやモダンなソフトウェアがこのレジストリを利用することは現在ほぼ無いため、変更があった場合は即座に重大なインシデントとして扱います。
プロセスの親子関係と不審なDLLロードの監視:
信頼された正規のプロセス(例: calc.exe など)が、普段読み込むはずのない不審なパス(C:\Users\...\Temp\ など)から未知のDLLをロードしていないかをEDRのイベントログで監視・検知します。
アプリケーション制御(AppLocker / WDAC):
Windows Defender Application Control (WDAC) や AppLocker を導入し、デジタル署名のない未承認のDLLがシステム内で実行(ロード)されるのを根本からブロックします。
類似手法(AppInit_DLLs)との違い:
Windowsにはよく似た自動実行レジストリとして AppInit_DLLs(T1546.010)が存在します。
AppInit_DLLs:
User32.dll を読み込む(=GUIを持つ)すべてのアプリの起動時にDLLをインジェクションする。
AppCert DLLs(本手法):
GUIの有無に関わらず、CreateProcess APIが呼ばれたすべてのプロセス生成時にDLLをインジェクションする。そのため、AppCertのほうがより広範なプロセスを対象にできる強力な性質を持っています。
レガシー機能の悪用:
安全性の観点から、現代のセキュアなOS環境では使用すべきでない古い互換性維持用の仕組みが、ハッカーにとっては絶好の「検知を回避できる裏口」として悪用されている典型例です。
CWE-15: External Control of System or Configuration Setting(システムまたは構成設定の外部制御)
プロセスの作成機構に連動する重要な構成設定(AppCertのレジストリ)の制御が、外部の不正なプログラム(マルウェア)によって奪われてしまう問題。
CWE-427: Uncontrolled Search Path Element(制御されていない検索パスの要素)
DLLをロードする際のパス指定や検証の不備、あるいはレジストリ経由での任意のDLL読み込みが許容されているシステム設計上の問題。
T1182(AppCert DLLs)は、Windows OSが後方互換性のために標準で持っている「正規の仕様・機能」を悪用する攻撃テクニックであるため、これ単体でCVE番号を持つバグ(脆弱性)というわけではありません。 しかし、攻撃者がこのAppCertレジストリ(HKLM領域)を書き換えるためには、必ずシステム上での最高権限が必要になります。そのため、一般ユーザーのアカウントからハッキングを開始した攻撃者が、「AppCert DLLsを仕込める状態(特権)になるため」に、以下のようなWindowsの権限昇格(Local Privilege Escalation)の脆弱性と組み合わせて悪用します。
CVE-2021-36934(通称: SeriousSAM):
Windowsの重要なバックアップファイルに対するアクセス権限の設定ミスにより、一般ユーザーでもシステムの最高権限のハッシュ情報を読み出すことができてしまった脆弱性。ハッカーはこれを利用して即座に管理者(SYSTEM)権限を奪取し、その後永続化の足場として T1182(AppCert DLLs) などのレジストリを書き換える一連の攻撃を行いました。
CVE-2022-26904(Windowsユーザープロファイルサービスの脆弱性):
Windowsの権限昇格の脆弱性です。高度な標的型攻撃(APT)において、システムに常駐(永続化)するための強固な隠し場所(AppCert DLLsなど)を確保するための前段階(権限昇格)として悪用された事例があります。
サーバーやPCの調査(フォレンジック)の際、不審なスタートアッププログラムやスケジュールタスクが全く見当たらないにも関わらず、システムログを見ると「未知の外部IPへの通信が、別の様々な正規アプリの裏で断続的に発生している」という場合、この T1182 / T1546.009 が疑われます。
レジストリエディタなどで AppCertDlls キーの内部をチェックし、身に覚えのないDLLパスが登録されていないか確認することが、この高度なステルス攻撃を暴くためのブレイクスルーとなります。
この攻撃手法を利用する脅威アクターは登録されていません。
この攻撃手法に関連する CVE は登録されていません。