DLLサイドローディングとは何か。署名済み正規アプリが悪用される仕組みと対策
対象の目安: エンドポイント運用やSOCで検知や対策にあたる実務担当者

DLLサイドローディングは、署名済みで信頼された正規のアプリケーションに、攻撃者が用意した悪意あるDLLを読み込ませる攻撃であり、検知回避の技術でもあります。プロセスの生成元だけを見る検知をすり抜けやすく、ランサムウェアや情報窃取型マルウェアの実行段階でたびたび使われます。対象読者は、エンドポイントの運用やSOCで検知と対策にあたる実務担当者です。記述はMITRE ATT&CKのT1574.001とMicrosoft公式ドキュメント、CrowdStrikeやThe Hacker Newsが報じた事例にもとづき、事実は執筆時点(2026年7月31日)で確認できた範囲に限ります。攻撃の再現手順や具体的なペイロードは書きません。この技術の動作確認は、自組織が管理する、またはその管理者から明確な許可を得た検証環境でのみ行ってください。許可のない環境でDLLの読み込みを操作したり悪用を試みたりする行為は、不正アクセス禁止法など関連法令に抵触するおそれがあります。
DLL検索順序が悪用される仕組み
Windowsのアプリケーションが動的リンクライブラリ(DLL)をフルパス指定なしで読み込もうとすると、OSはあらかじめ決まった順序でディレクトリを探索します。Microsoft Learnのドキュメントによれば、セーフDLL検索モードが有効な場合、DLLリダイレクションやAPIセット、既知のDLL一覧(Known DLLs)といった仕組みで解決されなかったモジュールについては、アプリケーションが読み込まれたディレクトリ、システムディレクトリ、16ビットシステムディレクトリ、Windowsディレクトリ、カレントディレクトリ、環境変数PATHに列挙されたディレクトリの順に探索されます。攻撃者がこの探索順のいずれかのディレクトリに書き込めれば、正規のDLLが見つかる前に悪意あるDLLを先に読み込ませられます。
DLLサイドローディングは、この探索順の悪用のうち特に、攻撃者が正規の署名済み実行ファイルそのものと、その実行ファイルが読み込む名前で偽装した悪意あるDLLを同じディレクトリにまとめて配置し、正規の実行ファイルを起動させて悪意あるDLLを実行させる形を指します。正規プログラムの脆弱性を突く必要はなく、書き込み権限のあるディレクトリに2つのファイルを置くだけで成立する点が扱いやすさにつながっています。
検索順序ハイジャッキングやDLL置換との違い
MITRE ATT&CKのT1574.001は、DLLの読み込みを乗っ取る複数の手口をまとめて扱っており、それぞれ狙いどころが異なります。検索順序ハイジャッキングは、正規DLLが本来置かれている場所より先に探索されるディレクトリへ偽のDLLを仕込む手口です。ファントムDLLハイジャッキングは、プログラムが参照するものの実際には存在しない(欠落した)DLLの名前を突き止め、そこへ悪意あるDLLを配置する手口です。DLL置換は、レジストリの知られたDLL一覧やリダイレクト設定を書き換えて、正規DLLの代わりに別のファイルを読み込ませる手口です。DLLサイドローディングはこれらと重なりつつ、正規の署名済みアプリケーションを丸ごと持ち込んで隣に悪意あるDLLを置く点に重心があります。
この技術がMITRE ATT&CKのフレームワーク全体でどこに位置づけられるかを押さえておくと、他の防御回避手法との関係も見通しやすくなります。
あわせて読みたい
MITRE ATT&CKで攻撃を体系的に理解する。戦術と技術のマトリクスを検知・防御にどう活かすか
なぜ検知をすり抜けやすいのか
DLLサイドローディングが厄介なのは、プロセスツリーの起点が正規の署名済みプログラムのままだからです。EDRやアンチウイルスの多くは、プロセスの生成元や署名の有無、ファイル名の既知パターンを手がかりに不審な挙動を絞り込みます。ところがDLLサイドローディングでは、実行されているプロセス自体はベンダーの正規署名がついた実行ファイルであり、ファイル名も本物と一致します。読み込まれるDLLだけが差し替えられているため、プロセス生成のログを見ても一見して怪しい点が現れません。
CrowdStrikeのブログは、こうした手口に対抗するには単一の検知手段では不十分であり、ディスクへの書き込み時点での検知、実行時の振る舞いにもとづく指標、機械学習によるファイルスキャンなど、複数の検知層を重ねる必要があると述べています。
読み込まれたDLLが本当に正規のものかどうかを見極めるには、ファイルの内部構造やインポートテーブルを確認する視点が役立ちます。
あわせて読みたい
リバースエンジニアリング入門。静的解析と動的解析の基礎を検証環境で安全に学ぶ
MITRE ATT&CKに記録された悪用グループと最近の事例
MITRE ATT&CKのT1574.001には、DLLの読み込みを乗っ取る手口を用いたとされる攻撃グループの例が複数記録されています。APT41はDLL検索順序ハイジャッキングを使ってツールを実行したとされ、Mustang PandaやTropic Trooperは署名済みの正規実行ファイルの隣に悪意あるDLLを配置するサイドローディングを用いたと記載されています。Lazarus GroupやEarth Luscaについては、正規DLLそのものを悪意あるファイルに置き換える手口が記録されています。国家を背景とするグループから金銭目的のグループまで、T1574.001に分類される複数の手口が幅広く採用されている実態がうかがえます。
執筆時点で報じられている具体例としては、The Hacker Newsが2026年1月に報じたキャンペーンがあります。この報道によれば、攻撃者はGitKrakenのDesktopアプリケーションに含まれる署名済みの実行ファイルと、c-aresライブラリのDLLを装った悪意あるファイルを同じディレクトリに配置し、請求書や見積依頼を装ったファイル名で配布していました。読み込まれたのちにAgent TeslaやFormbook、Lumma Stealerなど複数の情報窃取型マルウェアやRAT(遠隔操作型マルウェア)を展開したと報じられています。個々のマルウェアファミリーの詳細は侵害調査の対象になりますが、共通しているのは「見た目は信頼できる実行ファイル」という入口です。
あわせて読みたい
マルウェアの種類と感染の仕組みを理解する。ウイルス・ワーム・トロイ・RAT・スパイウェアの違い
対策の全体像
対策は単一の設定で完結せず、実行前の予防と実行時の検知を組み合わせる形になります。
- セーフDLL検索モード(SafeDllSearchMode)がレジストリで有効になっているかを確認する
- アプリケーションがDLLをフルパス指定で読み込むよう、開発者ガイダンス(MITREのM1013)に沿った実装になっているかを確認する
- WDACやAppLockerなどのアプリケーション許可リストで、署名者や正規の配置パスから外れたDLLの読み込みを制限する
- 読み込まれるモジュールの署名を検証し、ベンダー証明書の一致を確認する仕組みを導入する
- アプリケーションのインストール先ディレクトリに対する一般ユーザーの書き込み権限を制限する
- EDRで、正規プロセスからの予期しないディレクトリでのDLL読み込みや、非標準パスからのモジュールロードを振る舞いとして監視する
- OSやアプリケーションのセキュリティ更新を定期的に適用し、既知のサイドローディング脆弱性を解消する
- ソフトウェアの入手元を公式サイトや正規の配布チャネルに限定し、圧縮ファイルや請求書を装った添付ファイルからの実行を避ける
セーフDLL検索モードとWDACやAppLockerによる許可リストは、悪意あるDLLが読み込まれる手前で止める予防策です。EDRによる振る舞い検知は、予防をすり抜けた場合の後段の網に当たります。どちらか一方では不十分で、両方を重ねる前提で設計するのが実務的です。
書き込み権限を最小限に絞るという発想は、DLLサイドローディングに限らず幅広い攻撃の成立条件を狭める効果があります。
あわせて読みたい
最小権限の原則(Least Privilege)。なぜ権限を絞ることが最強の防御の一つなのか
個人と組織における現実的な優先順位
すべての対策を同時に整えるのは難しいため、優先順位をつけて着手するのが現実的です。個人利用の環境では、ソフトウェアを公式サイトや正規のストアからのみ入手すること、実行ファイルと見慣れないDLLが同じフォルダに置かれている状態を安易に信用しないことが、費用をかけずに効く対策になります。組織運用では、まずセーフDLL検索モードの有効化状況を全社の端末で確認し、そのうえでWDACやAppLockerの許可リストを段階的に適用する順序が扱いやすいところです。許可リストはいきなり強制モードで導入すると業務影響が出やすいため、監査モードで既存アプリケーションの読み込みパターンを観察してから制限モードへ移行する進め方が現実的です。EDRの振る舞い検知は、これらの予防策を補完する位置づけとして並行して整備します。
まとめ
DLLサイドローディングは、脆弱性を突かなくても正規の署名済みアプリケーションを隠れ蓑にできてしまう点で、地味ながら根強く使われ続けている技術です。MITRE ATT&CKが複数の攻撃グループの手口として記録しているとおり、特定の脅威アクターに限った話ではありません。セーフDLL検索モードの確認、アプリケーション許可リストの導入、モジュールの署名検証、書き込み権限の制限、EDRによる振る舞い検知という組み合わせを、自組織の環境に合わせて段階的に積み上げていくことが、現実的な向き合い方になります。
出典・参考
- MITRE ATT&CK T1574.001 Hijack Execution Flow: DLL
- Microsoft Learn: Dynamic-link library search order
- Microsoft Learn: Dynamic-Link Library Security
- Microsoft Learn: Windows Defender Application Control (WDAC)
- CrowdStrike Blog: DLL Side-Loading: How to Combat Threat Actor Evasion Techniques
- The Hacker News: Hackers Exploit c-ares DLL Side-Loading to Bypass Security and Deploy Malware
関連する記事
MITRE ATT&CKで攻撃を体系的に理解する。戦術と技術のマトリクスを検知・防御にどう活かすか
攻撃者の行動を戦術と技術のマトリクスで整理するMITRE ATT&CKを、原理から実務での使い方まで解説します。検知ルールの評価やレッドチーム演習、脅威インテリジェンスへの活用の勘所を具体的に示します。
マルウェアの種類と感染の仕組みを理解する。ウイルス・ワーム・トロイ・RAT・スパイウェアの違い
マルウェアはひとくくりの「悪いソフト」ではありません。ウイルス・ワーム・トロイの木馬・RAT・スパイウェアといった分類が何を意味するのか、どこから感染し何をされるのかを、原理から噛み砕いて整理します。
リバースエンジニアリング入門。静的解析と動的解析の基礎を検証環境で安全に学ぶ
コンパイル済みバイナリの中身を読み解くリバースエンジニアリングの考え方を、静的解析と動的解析の違い、必要な検証環境、そして著作権法やライセンス・不正アクセス禁止法といった合法性の前提まで、実務で迷わない判断基準とあわせて入門者向けに解説します。


