detecting-dll-sideloading-attacks について
脅威ハンティングやインシデント対応でDLLサイドローディングを調べる分析担当者向けの検出ガイドです。ロードイベント、署名、パス、ハッシュ、プロセスの挙動を組み合わせて、正規アプリが読み込む不審なDLLを調査します。
主な機能
- 01脆弱性のある可能性があるアプリの特定
- 02SysmonのDLLロードイベントの確認
- 03DLLの署名とパスの検証
- 04ファイルハッシュの比較
- 05ホストプロセスの挙動との相関
活用シーン
- 01未署名DLLに関するEDRアラートの調査
- 02正規アプリのラッパーや異常なパスの確認
- 03DLLサイドローディング事案への対応
- 04脅威情報に基づく標的ソフトウェアの調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill detecting-dll-sideloading-attacksインストール後、Claude Code で/detecting-dll-sideloading-attacksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
DLL サイドローディング攻撃の検出
使用するタイミング
- エンタープライズ環境で DLL ハイジャックの可能性を調査するとき
- 署名済みアプリケーションによる未署名 DLL の読み込みについて、EDR アラートが発生した後
- 正規のアプリケーションラッパーを利用した APT の永続化を探索するとき
- インシデント対応中に、トロイの木馬化されたアプリケーションを特定するとき
- 特定のソフトウェアを標的とした DLL サイドローディングキャンペーンが脅威インテリジェンスで示されたとき
前提条件
- DLL の読み込みを監視できる EDR(CrowdStrike、MDE、SentinelOne)
- ハッシュ検証機能を備えた Sysmon Event ID 7(Image Loaded)
- アプリケーションの許可リスト設定、または DLL の整合性監視
- 正規のアプリケーションと想定される DLL パスのソフトウェアインベントリ
- コード署名を検証する機能
ワークフロー
- サイドローディングの標的を特定する:完全なパスを指定せずに DLL を読み込む、既知の脆弱なアプリケーションを調査します(LOLBAS、DLL サイドローディングのデータベース)。
- DLL 読み込みイベントを監視する:DLL のパスがアプリケーションの想定ディレクトリと異なる場合の読み込みを、Sysmon Event ID 7 でクエリします。
- DLL の署名を確認する:署名済み実行ファイルによって読み込まれた、未署名または信頼されていない DLL にフラグを付けます。
- パスの異常を検出する:おとりのラッパーである可能性がある、通常とは異なる場所(Temp、AppData、Public)から実行されている正規の実行ファイルを特定します。
- ハッシュを検証する:読み込まれた DLL のハッシュを、既知の正常なバージョンや脅威インテリジェンスのフィードと照合します。
- プロセスの挙動と関連付ける:疑わしい DLL の読み込み後に、ホストプロセスが通常とは異なる挙動(ネットワーク接続、子プロセスの作成)を示すか確認します。
- 記録して修復する:サイドローディングの事例を報告し、悪意のある DLL を隔離して、検出ルールを更新します。
主要な概念
| 概念 | 説明 |
|---|---|
| T1574.002 | DLL サイドローディング |
| T1574.001 | DLL 検索順序のハイジャック |
| T1574.006 | ダイナミックリンカーのハイジャック |
| T1574.008 | 検索順序のハイジャックによるパスの傍受 |
| DLL 検索順序 | Windows における DLL の読み込み優先パス |
| サイドローディング | 正規のアプリが読み込む場所に悪意のある DLL を配置すること |
| ファントム DLL | 正規のアプリが読み込もうとするものの、存在しない DLL |
| DLL プロキシ | 正規の DLL に呼び出しを転送する悪意のある DLL |
ツールとシステム
| ツール | 目的 |
|---|---|
| Sysmon | Event ID 7 による DLL 読み込みの監視 |
| CrowdStrike Falcon | プロセスのコンテキストを含む DLL 読み込みの検出 |
| Microsoft Defender for Endpoint | DLL 読み込みの異常検出 |
| Process Monitor | DLL 読み込みのリアルタイム追跡 |
| DLL Export Viewer | DLL のエクスポート関数の確認 |
| Sigcheck | デジタル署名の検証 |
| pe-sieve | プロキシ DLL の PE 解析 |
よくあるシナリオ
- 正規アプリのラッパー:攻撃者が署名済みアプリケーション(例:OneDrive updater)を一時フォルダーにコピーし、想定される依存 DLL と同じ名前の悪意のある DLL を隣に配置します。
- ファントム DLL の悪用:正規のアプリが存在しない DLL を探す PATH の場所に、悪意のある DLL を配置します。
- DLL プロキシ読み込み:悪意のある version.dll がすべてのエクスポートを実際の version.dll に転送する一方で、DllMain で悪意のあるコードを実行します。
- ソフトウェア更新のハイジャック:正規のアップデーターが読み込む前に、攻撃者が更新ステージングディレクトリ内の DLL を置き換えます。
出力形式
Hunt ID: TH-SIDELOAD-[DATE]-[SEQ]
Technique: T1574.002
Host Application: [Legitimate signed executable]
Sideloaded DLL: [Malicious DLL name and path]
Expected DLL Path: [Where DLL should legitimately be]
DLL Signed: [Yes/No]
App Location: [Expected/Anomalous]
Host: [Hostname]
Risk Level: [Critical/High/Medium/Low]
コメント
Markdown 対応