第5章: AI組込みプロダクトの脅威モデルを描く
第1部では、開発者として AIツールを使う側の防衛を扱った。本章から始まる第2部では、AIをプロダクトに組み込む側の防衛に視点を切り替える。「プロダクトを作る側」の話だ。
第1部で繰り返し登場した4つの根本原理 ─ 信頼境界 / Lethal Trifecta / 最小権限 / Defense in Depth ─ は、まったく同じ式としてこちら側にも効く。第1部を読み終えた読者には、プロダクト側の議論が「初めて聞く話」ではなく「同じ式の別の解き方」として響くはずだ。
本章は、その「同じ式」を解く前提となるプロダクトの脅威モデルを、OWASP・MITRE・主要事件の3つから多角的に描く。具体的な攻撃と防衛は第6章以降で扱う。
なぜ「プロダクト脅威モデリング」が独立した章になるのか
従来のWebアプリの脅威モデリングは、STRIDE や PASTA のようなフレームワークを当てて「データフロー図 → 信頼境界線を引く → 各境界での脅威を列挙」と進めた。LLMを組み込んだプロダクトでも基本は同じだが、追加で考えるべき軸が明確に存在する。
graph TD
User[ユーザー入力] --> LLM
Tools[ツール群<br/>API / DB / Email / 外部サービス] --> LLM
RAG[RAG / Vector DB<br/>取得コンテンツ] --> LLM
Memory[エージェント・メモリ<br/>会話履歴, persistent state] --> LLM
System[System Prompt / 設定] --> LLM
LLM --> Out[出力]
Out --> Render[レンダラ<br/>Markdown, HTML, JSON]
Out --> ToolCall[ツール呼び出し]
Out --> Storage[保存]
style LLM fill:#fec
従来との違いは大きく3点:
- LLMは指示とデータを区別しない ─ 第1章で書いたとおり、ここは構造的な弱点
- LLMは確率的に動く ─ 入力が同じでも出力が揺れる。決定論的なテストが効きにくい
- LLMは強い権限を「日常的に」持ちがち ─ ツール呼び出し、外部API、DB操作。Excessive Agency が起きやすい
これらが、第6章以降で扱う具体的な攻撃を生む土壌になる。
OWASP Top 10 for LLM Applications 2025 ─ 10項目の地図
最も標準的な参照点が OWASP Top 10 for LLM Applications 2025 だ。10項目を一望できる地図として記憶しておく。
| # | 項目 | 何を問うか | 第2部のどこで扱うか |
|---|---|---|---|
| LLM01 | Prompt Injection | 直接型・間接型・マルチモーダル | 第6章 |
| LLM02 | Sensitive Info Disclosure | 学習データ・コンテキスト・他セッション漏洩 | 第6章・第8章 |
| LLM03 | Supply Chain | 悪意モデル、Model Confusion、namespace再取得 | 第7章 |
| LLM04 | Data and Model Poisoning | 学習・微調整・テンプレ汚染 | 第7章 |
| LLM05 | Improper Output Handling | 出力をシェル/SQL/eval/Markdown画像に直接渡す | 第6章 |
| LLM06 | Excessive Agency | 過剰権限・自律性 | 第7章 |
| LLM07 | System Prompt Leakage | プロンプト抽出 | 第8章 |
| LLM08 | Vector & Embedding Weaknesses | RAG/ベクトルDB固有 | 第7章 |
| LLM09 | Misinformation | ハルシネーション・誤助言 | 第6章末尾 |
| LLM10 | Unbounded Consumption | DoS + Denial of Wallet (DoW) | 第8章 |
2024年版からの変更で押さえるべき点:
- LLM08 として「Vector & Embedding Weaknesses」が新設された ─ RAG時代の攻撃面の体系化
- LLM10 が「DoS」から「Unbounded Consumption」へ拡張 ─ DoW(Denial of Wallet, $46k/日のLLMjacking等)を統合
- LLM01 がマルチモーダル拡張を含むようになった ─ 画像・音声・動画への命令埋め込み
OWASP Top 10 for Agentic Applications 2026 ─ エージェント時代の地図
2025年12月9日に OWASP Top 10 for Agentic Applications 2026 が公開された。LLM Top 10 が「LLMアプリ全般」を扱うのに対し、こちらはエージェントに固有のリスクにフォーカスしている。10項目は ASI01〜ASI10。
特に重要な3つを挙げる:
| # | 項目 | 中核リスク |
|---|---|---|
| ASI06 | Memory & Context Poisoning | 永続メモリへの注入、注入と発火が時間的に分離(第7章 MINJA) |
| ASI07 | Insecure Inter-Agent Communication | A2Aプロトコル・message busが認証されていない |
| ASI08 | Agent Hijacking | tool description injection、confused deputy |
「LLM Top 10 はAPIを叩く側、Agentic 2026 はエージェントを設計する側」と覚えると整理しやすい。両方が必要だ。
MITRE ATLAS ─ Tactics × Techniques でモデリングする
MITRE ATLAS は MITRE ATT&CK のAI/ML拡張版で、16 Tactics × 84 Techniques × 56 Sub-techniques × 32 Mitigations × 42 Case Studies(2026年2月時点 v5.4.0)から成る。脅威モデリングをやるとき、OWASPで「何があるか」を確認したあと、ATLASで「どう連鎖するか」を辿る、という使い分けができる。
graph LR
R[Reconnaissance] --> RA[Resource Acquisition]
RA --> IA[Initial Access]
IA --> ML[ML Model Access]
ML --> Exec[Execution]
Exec --> Pers[Persistence]
Pers --> DEX[Defense Evasion]
DEX --> Discovery
Discovery --> Coll[Collection]
Coll --> Exf[Exfiltration]
Exf --> Impact
2025-2026の主要追加 Technique:
- AI Agent Context Poisoning ─ LLMコンテキストを操作して持続的に挙動変更
- Publish Poisoned AI Agent Tool(v5.4.0)─ 第3章のpostmark-mcpがケーススタディ
- Escape to Host(v5.4.0)─ EscapeRouteがケーススタディ
- MCP関連 ─ MCPサーバ侵害、MCP経由のindirect prompt injection、悪意エージェントのデプロイ
ATLASの実用的な使い方は、「自社プロダクトを Asset としてモデル化 → 各 Asset に対して関連 Tactic の Technique を辿る」だ。たとえば:
- Asset: 自社のRAGバックエンド
- Tactic: ML Model Access → Technique: Backdoor ML Model
- Tactic: Collection → Technique: Data from Information Repositories
- 該当する Mitigations を ATLAS から逆引き
これだけで、見落としがちな攻撃ベクタを「MITRE が既に定義している語彙」で議論できる。
Lethal Trifecta はプロダクトでも完全に成立する
第1部で繰り返した Lethal Trifecta を、プロダクト側の典型例で当てはめてみる。
| プロダクト例 | ①プライベートデータ | ②untrustedコンテンツ | ③外部通信 |
|---|---|---|---|
| 社内RAGアシスタント | 社内Wiki, 顧客DB | エンドユーザーの質問、外部リンク先 | メール送信ツール、外部API |
| カスタマーサポートBot | 顧客プロファイル | 顧客のメッセージ | チケット作成、CRM更新 |
| 営業支援エージェント | 顧客リスト, 商談履歴 | LinkedIn, 公開Web | メール送信, カレンダー予約 |
| コーディング支援SaaS | ユーザーのコード | GitHub Issue, 外部README | Webhook, Git push |
全部、3つ揃っている。プロダクト側で Lethal Trifecta を回避する戦略は次のいずれかだ:
- 3つ目を構造的に潰す:エージェントから外部通信を物理的に取り上げる(出力をメッセージ表示に限定)
- 1つ目を最小化:エージェントに見せるデータを最小限に絞る(PII redaction、データスコープの絞り込み)
- 2つ目を sanitize:取得コンテンツを「データ」として明示的に枠で囲い、LLMに「これは指示ではない」と認識させる(後の章で具体策)
完全な分離は難しいが、多層的に難化するのが現実解だ。
脅威モデリングの実務的な手順
OWASP + ATLAS + Lethal Trifecta を組み合わせた、現場で回せる手順を提示する:
ステップ1: プロダクトのデータフロー図を描く
- User → Frontend → API → LLM → Tools → ... → User
- すべての入力源・出力先・データストアを書く
ステップ2: 信頼境界線を引く
- 自社管理 vs ユーザー入力
- 自社管理 vs 取得コンテンツ
- 自社管理 vs 外部サービス
- LLM管理 vs ツール呼び出し結果
ステップ3: 各境界に OWASP LLM Top 10 を当てる
- User入力境界: LLM01 (直接), LLM05 (出力)
- 取得コンテンツ境界: LLM01 (間接), LLM04 (Poisoning), LLM08 (RAG)
- ツール呼び出し境界: LLM06 (Agency)
ステップ4: ATLAS で連鎖を辿る
- 各 Threat に ATLAS Technique を関連付け
- Mitigations を抽出
ステップ5: Lethal Trifecta が揃う場所を特定
- 揃う場所が「最も危険」
- 1つでも構造的に外せないか検討
ステップ6: 残ったリスクに Defense in Depth
- Guardrail, observability, rate limiting, output validation
- 第8章で具体策
ステップ7: 検証フローを設計
- レッドチーミング、Promptfoo / DeepTeam での自動評価
これを四半期ごとに見直す。攻撃面は変わり続けるので、一度書いた脅威モデルは半年で陳腐化する。
本章の要点
| # | 要点 |
|---|---|
| 1 | プロダクト脅威モデルの追加軸は「指示とデータ非分離 / 確率的挙動 / 強い権限」の3点 |
| 2 | OWASP Top 10 LLM 2025 は10項目の地図。LLM08 (Vector) と LLM10 (Unbounded Consumption) が2024比で重要な拡張 |
| 3 | OWASP Top 10 for Agentic Applications 2026 は「エージェントを設計する側」のリスクを扱う。ASI06 / 07 / 08 が要 |
| 4 | MITRE ATLAS(v5.4.0)は Tactics × Techniques で攻撃連鎖をモデリングできる。ATT&CK との共通語彙が利点 |
| 5 | Lethal Trifecta はプロダクト側でも完全に成立する。回避戦略は「3つ目を潰す/1つ目を最小化/2つ目をsanitize」 |
| 6 | 実務手順は「データフロー → 信頼境界 → OWASP → ATLAS → Trifecta → DiD → 検証」の7ステップ。四半期ごとに見直す |
効いている根本原理
本章は 原理1(信頼境界) と 原理2(Lethal Trifecta) をプロダクト側に翻訳した章だった。次章では、この地図の上で最も頻発する攻撃であるプロンプトインジェクションを、直接・間接・マルチモーダルの3軸で深掘りする。