致命的な三要素(lethal trifecta)とは、Simon Willison が三つの能力の組み合わせに与えた名称である。ツールを使うひとつの LLM システムがこれらすべてを同時に持つと、攻撃者はそのシステムを騙して、ユーザーのプライベートなデータを取得させ、攻撃者のもとへ送らせることができる。三つとは、プライベートなデータへのアクセス(たいていはこれこそがツールを接続した理由そのものである)、信頼できないコンテンツへの露出(攻撃者が制御するテキストや画像がモデルに届きうるあらゆる経路を指す)、そしてデータを外へ運び出せる形での外部と通信する能力である。その主張は、危険はいずれか一つの能力の性質ではなく組み合わせの性質だ、というものである — それぞれは単独ではありふれた有用なものである。
用法
根底にある仕組みは プロンプトインジェクション である。LLM はコンテンツの中に見つけた指示に従う。そして出典は、すべては最終的にひとつのトークン列に連結されてモデルに渡されるため、LLM は指示をその出所によって確実に区別することができないと論じる。したがって、モデルが要約を頼まれたページ、読むよう頼まれたメール、見るよう頼まれた画像は、モデルがそれに従って行動してしまう指示を含みうる。出典の例は、ユーザーが自分のプライベートなデータを取得して攻撃者にメールで送ってほしいと望んでいる、と書かれた Web ページである。出典は、これらのシステムは非決定的であるため、リスクは確実なものではなく確率的なものだと述べ、悪意ある指示の言い回しは無限にありうることから、モデルに従わないよう指示することは防御にならないと論じている。
出典は、Model Context Protocol を、露出が意図せず容易に生じるようになった理由として扱っている。MCP は異なる提供元のツールを自由に組み合わせることを促すが、その多くはプライベートなデータに到達し、多くは悪意ある指示を載せうる場所に到達し、そしてほとんどどれもが外部へ通信できる — 出典は、HTTP リクエストを発行できるツールであれば、たとえ画像を読み込んだり、ユーザーがクリックするリンクを提示したりするだけでも、盗まれた情報を運び出しうると指摘している。信頼できないコンテンツの供給源として最も先鋭な例にはメールを挙げている。攻撃者はアシスタントにメールを書くだけでよいからである。そして、一つのツールが三つの要素すべてを同時に提供してしまう例として、GitHub の公式 MCP サーバーに対して報告されたエクスプロイトを引いている。攻撃者が起票した公開 issue を読み、プライベートなリポジトリに到達し、プライベートなデータを持ち出すプルリクエストを作成するというものである。
適用される場面
この枠組みはエージェントのためにツールを組み合わせるすべての人に当てはまり、出典は、ベンダーがここでは助けにならないという理由から、開発者と同じくらいエンドユーザーにも向けて書かれている。個々の製品に対して報告されたエクスプロイトは、一般にベンダーがデータ持ち出しの経路を塞ぐことで修正されてきた — 出典は、2023 年から 2025 年にかけて主要なアシスタント製品に対して起きたそうした事例を長々と列挙している — が、ユーザーが自らツールを組み合わせてしまえば、何かを塞ぐ立場にあるベンダーはいない。
出典は、緩和策が未解決であることを明言している。これを確実に防ぐ方法はいまだにわかっていないと述べ、攻撃の高い割合を検出できると謳うベンダーの「ガードレール」製品には公然と懐疑的である。その理由は、Web アプリケーションセキュリティにおいて 95% の検出率は落第点だからである。出典は研究の方向性 — 信頼できない入力を取り込んだ後のエージェントを制約するデザインパターンや、CaMeL のアプローチ — を挙げつつ、これらはツールを組み合わせるエンドユーザーではなくアプリケーション開発者の助けになるものだと指摘している。エンドユーザーに対して出典が示す対処は回避である。すなわち、三つの能力を共存させないことである。
その回避には実践的な形があり、Claude Code for web:Anthropic の新しい非同期コーディングエージェント は、それをサンドボックス化されたネットワーク分離が重要である理由として説明している。その主張は、こうした攻撃を防ぐ最善の方法は三要素のうち一つを断ち切ることであり、エージェントのプロセスが到達できるドメインを制限すれば、とりわけデータ持ち出しの要素が取り除かれる、というものである — ネットワークアクセスのないエージェントは、何を読もうとも、この軸について心配することは何もない。同じ記事は、部分的な遮断の限界にも触れている。依存関係のインストール用ドメインの長いデフォルトリストを許可する環境では、許可リストの内側に意図しないデータ持ち出しの経路が残っているのではないかと筆者は不安を覚えるという。
出典は、この用語とその親概念との関係についても慎重である。同じ筆者が SQL インジェクションにちなんで名付けた「プロンプトインジェクション」が、一般的な用法では ジェイルブレイク を意味する方向へ流れてしまっていることを指摘し、両者を混同する開発者は、この問題を自分自身の問題ではなくベンダーが恥をかく問題として片付けてしまうと論じている。意味の拡散(Semantic Diffusion) を参照。
関連用語
プロンプトインジェクション、間接プロンプトインジェクション、ジェイルブレイク、Model Context Protocol、サンドボックス化、ガードレール、AI エージェントにとっての致命的な三要素:プライベートデータ、信頼できないコンテンツ、外部との通信