第10章: おわりに ─ 4つの根本原理を回収する
第0章の「はじめに」で、本シリーズは Replit DB削除事件と EchoLeak の2つの事件から始まった。まったく違う種類の事件のようでいて、根は同じ ─ LLMは指示とデータを区別できない。これが出発点だった。
ここまで10章を通じて見てきた攻撃と防衛は、表面的にはまったく違う場所で起きている。Cursor の mcp.json、Copilot の settings.json、Claude Code の .claude/、postmark-mcp の send_email ツール、PoisonedRAG の poison ドキュメント、MINJA の永続メモリ、EchoLeak の参照型 Markdown、Crescendo の徐々にescalateするマルチターン会話、PII-Scope の augmented few-shot、LLMjacking の AWS Bedrock 課金 ─ 場所も道具もすべて違う。
しかし、根は4つしかなかった。本章で回収する。
原理1: 信頼境界(Trust Boundary)
「自分のコード」と「取得したコンテンツ」、「system prompt」と「user input」、「ツール記述」と「ツール記述に潜む命令」、「user A の権限」と「サービス権限」 ─ これらの境界を曖昧にすると、攻撃者は境界を「越境」して権限を借用する。
開発側で見た攻撃
- Rules File Backdoor は、
.cursorrulesが「自分の管理下」か「外から来たもの」かの境界を見失わせた - CVE-2025-59536 は、
.claude/の設定が「trust prompt 前」と「trust prompt 後」の境界を曖昧にした - Tool Poisoning Attack は、tool description が「ユーザーが見るもの」と「LLMだけが見るもの」の境界を悪用した
プロダクト側で見た攻撃
- EchoLeak は、メール本文の文字列が「データ」と「指示」の境界を破った
- PoisonedRAG は、retrieval された文書が「信頼できるソース」と「ユーザー入力」の境界を曖昧にした
- Confused Deputy は、エージェントが user A の権限と service account の境界を踏み越えた
回収のフレーズ:境界は最初から「明示的に書く」。XMLタグ、role分離、trust_levelメタデータ、OAuth On-Behalf-Of、コンテナ境界、ネットワーク allowlist。境界はコメントで書くものではなく、コードと設定で物理的に強制するものだ。
原理2: Lethal Trifecta
Simon Willison の枠組み:①プライベートデータアクセス × ②untrusted コンテンツ曝露 × ③外部通信能力 が揃ったら、prompt injection による情報窃取は事実上防げない。
第1部の表(第4章)と第2部の表(第5章)を並べて見ると、ほとんどすべての事件で3つが揃っていた。
開発側
| 事件 | ① | ② | ③ |
|---|---|---|---|
| axios npm 侵害 | env / ssh / AWS creds | 汚染npm package | RAT が外部C2へ |
| postmark-mcp | メール本文 | 改変 MCP | BCC で攻撃者へ |
| Replit DB削除 | 本番DB | (指示違反) | (destructive 実行) |
プロダクト側
| 事件 | ① | ② | ③ |
|---|---|---|---|
| EchoLeak | OneDrive / SharePoint / Teams | 受信メール本文 | 参照型Markdown経由のCDN |
| Claudy Day | 会話履歴 | XSS payload | Files API 経由 |
| MINJA | 永続メモリ | 自然な会話 | 後日のツール呼び出し |
回収のフレーズ:3つを構造的に「2つに減らす」設計を、最初から組み込む。最も効くのは③外部通信能力を絞ること(DevContainer のネットワーク allowlist、出力経路の allowlist、Markdown レンダラの image 制限)。①データアクセスは最小化(PII redaction、scoped credentials、リクエスト時補完)。②untrusted 曝露は sanitize と境界明示。
原理3: 最小権限(Least Privilege for Tools)
OWASP LLM06 Excessive Agency と Confused Deputy は表裏一体だ。エージェントに渡すツールの数と権限を最小化する、という古典的な原則がそのまま効く。
開発側
- Claude Code の
disableBypassPermissionsMode: "disable" - MCPサーバの読み取り専用トークン
- 第3章の MCP 8原則:インストール元検証、最小スコープ、隔離
プロダクト側
- Service account ではなくユーザーの権限スコープでエージェントを動作させる
- per-request 権限委譲(OAuth On-Behalf-Of)
- destructive action の人間承認ゲート
- メモリ書き込みの人間承認
回収のフレーズ:ツールが「会話の中で増えうる」前提で監査する。承認は時刻Tの状態に対するもの。承認後の変更は再承認 ─ Cursor が CVE-2025-54136 で学んだ教訓を、自社プロダクトでも繰り返さない。
原理4: Defense in Depth と観測可能性
Anthropic の最新 Constitutional Classifiers ですら、jailbreak 成功率は 4.4% 残る。単一の対策に賭けてはいけない。層を重ね、観測し、回し続ける。
開発側の5層(第2章)
- 環境分離(DevContainer + ネットワーク allowlist)
- 権限分離(
~/.ssh等をマウントしない) - 承認ゲート(Plan Mode、
disableBypassPermissionsMode) - 観測(コマンドログ、ネットワークログ)
- 定期レビュー(
.claude/、.cursor/、AGENTS.mdの差分監査)
プロダクト側の多層化(第6章・第8章)
- API native ガードレール(Constitutional Classifiers、Bedrock Guardrails)
- Programmable rails(NeMo Guardrails)
- Runtime AI firewall(Lakera、Protect AI)
- 出力経路の allowlist(Markdown image、リンク、shell、SQL、eval)
- レッドチーミング(Promptfoo、DeepTeam、HiddenLayer)
回収のフレーズ:層は重ねるだけでは足りない。観測して、攻撃ログを溜め、レッドチーミングで自分から攻撃して、四半期で見直す。続けることが多層防衛の本体だ。
開発側とプロダクト側で共通する設計判断
第1部と第2部を通して、開発側と製品側で同じ設計判断が繰り返し登場した。最終的な振り返りとして整理する:
| 設計判断 | 開発側での現出 | プロダクト側での現出 |
|---|---|---|
| 境界をコードで強制 | DevContainer、ネットワーク allowlist | role分離、trust_levelメタデータ、 outbound allowlist |
| destructive action は人間承認 | git push --force、rm -rf | DB変更、メール送信、課金 |
| 短期トークン・最小スコープ | fine-grained PAT 7日有効 | per-request OAuth On-Behalf-Of |
| 自動実行を疑う | postinstall script を --ignore-scripts で無効化 | ツール呼び出しの承認ゲート |
| Hidden Unicode を除去 | ルールファイル / READMEの可視化 | 入力時の Unicode 正規化 |
| 多層化 | 5層モデル(Ch2) | 5層モデル(Ch6/8) |
| 観測 | コマンド・ネットワークログ | LLM telemetry、anomaly detection |
| 四半期レビュー | 設定ファイルの差分監査 | レッドチーミング演習 |
**「同じ式が両側に効く」**という出発点の主張は、ここまで読んだ読者には実感として残っているはずだ。だから、開発側と製品側を分けて学ぶより、一緒に学ぶ価値があった。
これからの動向 ─ 2026年5月以降に観察すべきもの
本シリーズは2026年5月時点での情報をまとめたが、AI セキュリティの動きは速い。今後3〜12か月で観察すべきものを最後にリストする:
短期(次の3か月)
- EU AI Act 2026-08-02 全面施行 ─ Annex III 高リスク AI、透明性義務、AI 規制サンドボックスがどう運用されるか
- ISO/IEC 27090 発行(2026年内)─ AI セキュリティ脅威対策の正式国際規格
- MCP 仕様のさらなる改訂 ─ 2025-11-25 改訂で OAuth 必須化されたが、tool description integrity の標準化は進行中
- Constitutional Classifiers 等の commodity 化 ─ オープンソース実装の登場、各クラウドの標準提供
中期(次の6-12か月)
- Agentic AI のセキュリティ規格化 ─ OWASP Top 10 for Agentic Applications 2026 が出たばかり、これに続く実装ガイドライン
- モデル抽出・PII 漏洩の規制化 ─ NYT v. OpenAI 系の判例、各国規制が技術側に降りてくる
- AI に対するインシデント開示義務の標準化 ─ NISTIR 8596 の最終化、各国規制の整合
- Frontier モデルのセキュリティ評価 ─ AI Security Institute(旧AISI)の評価レポート公開頻度
長期(1〜3年)
- AGI/ASI 時代のセキュリティモデル ─ 自律性が更に高まったエージェント群への対処
- 法的責任の所在 ─ AIの判断ミスで生じた被害の責任主体
- AI on AI 攻撃の体系化 ─ 攻撃側もAIを使う時代の双方向動学
全章参考文献
執筆時の一次情報を網羅。引用前に最新URLが活きているか必ず確認してください(特にarXivの一部URL)。
OWASP / 標準化
- OWASP Top 10 for LLM Applications 2025 (PDF)
- OWASP Top 10 for Agentic Applications 2026
- OWASP Top 10 for Agentic Applications 2026 release post
NIST
- AI Risk Management Framework | NIST
- NIST AI 100-1 AI RMF 1.0
- NIST AI 600-1 Generative AI Profile
- NIST IR 8596 Cybersecurity Framework Profile for AI
- NIST: Draft Guidelines Rethink Cybersecurity for the AI Era (Dec 2025)
- NIST AI RMF Playbook
ISO / EU
- ISO/IEC 42001:2023
- ISO/IEC 23894:2023
- EU AI Act 規則本文
- EU AI Act Implementation Timeline
- GPAI Code of Practice
MITRE
Cursor / IDE 脆弱性(第2章)
- Tenable: CVE-2025-54135 / 54136 Cursor CurXecute MCPoison
- Check Point: MCPoison
- AIM Security: CurXecute writeup
- Lakera: Cursor CVE-2025-59944
GitHub Copilot / Microsoft Copilot
- Embrace The Red: GitHub Copilot RCE via Prompt Injection (CVE-2025-53773)
- Wiz: CVE-2025-53773
- GitHub Advisory CVE-2025-32711 EchoLeak
- arXiv 2509.10540 EchoLeak paper
- HackTheBox: Inside CVE-2025-32711 (EchoLeak)
Claude Code
- Check Point Research: CVE-2025-59536 / CVE-2026-21852
- Cymulate: InversePrompt CVE-2025-54795
- Anthropic: Claude Code DevContainer 公式
- Anthropic: Claude Code Security 公式
- Anthropic Engineering: Sandboxing Claude Code
- Trail of Bits: claude-code-devcontainer
Rules File Backdoor / Hidden Unicode
- Pillar Security: Rules File Backdoor
- AWS Security Blog: Defending Against Unicode Character Smuggling
- Cisco Blog: Mitigating Unicode Tag Prompt Injection
- Embrace The Red: Sneaky Bits / ASCII Smuggler
MCP セキュリティ(第3章)
- Invariant Labs: MCP Tool Poisoning
- Authzed: Timeline of MCP Security Breaches
- OX Security: MCP Critical Systemic Vulnerability
- JFrog: 3 malicious MCP servers on PyPI
- MCP 公式仕様 2025-11-25
- Simon Willison: MCP prompt injection
サプライチェーン(第4章)
- Trend Micro: Slopsquatting
- Microsoft: Mitigating axios npm compromise
- CISA Alert: axios npm compromise
- Elastic Security Labs: Axios RAT analysis
- GitHub Advisory CVE-2025-30066 tj-actions/changed-files
- Wiz: tj-actions supply chain attack
- GitGuardian: GhostAction Campaign
- Koi Security: MaliciousCorgi
自律実行・インシデント
- AI Incident Database #1152: Replit AI database wipe
- Fortune: Replit AI database wipe
- Simon Willison: The Lethal Trifecta
- HiddenLayer: Lethal Trifecta defense
RAG / メモリ攻撃(第7章)
- PoisonedRAG (USENIX Security 2025) PDF
- PoisonedRAG arXiv
- RAGForensics (ACM WWW 2025)
- Understanding Data Poisoning Attacks for RAG (ICLR 2025)
- Prompt Security: Embedded Threat in Vector Embeddings
- Lakera: Agentic AI Threats
- Palo Alto Unit 42: Indirect Prompt Injection Poisons AI Long-Term Memory
- CSA Lab Space: Confused Deputy Attacks on Autonomous AI Agents
Jailbreak / Extraction / PII(第8章)
- HiddenLayer Policy Puppetry
- Crescendo Multi-Turn Jailbreak (USENIX Security 2025)
- PII-Scope (USENIX Security 2025)
- A Survey on Model Extraction Attacks (KDD 2025)
- Anthropic: Constitutional Classifiers
- Microsoft MSRC: How Microsoft Defends Against Indirect Prompt Injection
- Lessons from Defending Gemini (DeepMind PDF)
- Welo Data: Translation as a Jailbreak
業界フレームワーク
- Coalition for Secure AI(CoSAI)公式
- Google SAIF 公式
- Anthropic Responsible Scaling Policy
- OpenAI Preparedness Framework v2
- UK AI Security Institute Research & Publications
- 日本: AI事業者ガイドライン 第1.1版(経産省)
ガードレール / レッドチーミング
- NVIDIA NeMo Guardrails (GitHub)
- NVIDIA: Mitigating Indirect AGENTS.md Injection
- Promptfoo
- Promptfoo: ASCII Smuggling Plugin
最後に
セキュリティの仕事は「ゼロにする」ことではない。**「許容できないリスクを許容できるレベルまで下げる」**ことだ。本シリーズで紹介した攻撃には、まだ完全な防衛策が存在しないものも含まれる。完全な防衛がなくても、4つの根本原理を一貫して適用すれば、攻撃成功率を桁単位で下げることはできる。
Anthropicの Constitutional Classifiers が 4.4% に下げた数字は、見方を変えると95.6% は防いだという数字でもある。完全主義に陥らず、一貫した設計判断を組織として続けること ─ それが本シリーズの核心だ。
開発側で .claude/settings.json をレビューする時、プロダクト側で RAG の取り込みパイプラインを書く時、ガバナンス側で ISO 42001 のロードマップを引く時 ─ いつも同じ4つの質問を自分に投げかけてほしい:
- 信頼境界は明示的に書かれているか?
- Lethal Trifecta の3つを2つに減らせないか?
- 最小権限で動かしているか?
- Defense in Depth で観測しながら回しているか?
この4問が、2026年5月時点でのAIセキュリティを最もシンプルに要約する道具だ。
ここまで読んでいただき、ありがとうございました。本シリーズが、あなたの開発環境とあなたの作るプロダクトの安全に、少しでも貢献できれば幸いです。
セキュリティの動向は速いので、四半期に一度はこの章末の参考文献リストを更新で巡回してみてください。新しいCVEが、新しい論文が、新しい規制が、必ず追加されているはずです。