この記事は、新しい脆弱性を報告するものではなく、あるパターンに名前を与えるものである。その貢献は、プロンプトインジェクションがデータの窃取に変わる具体的な組み合わせ、すなわちプライベートデータへのアクセス、信頼できないコンテンツへの露出、外部への通信を同じシステムが併せ持つという組み合わせを切り出し、チェックリストとして使えるほど短いラベルを与えたことにある。この記事が導入した用語は、致命的な三要素 で独立したテーマとして扱われている。

この記事は開発者と同じくらいユーザーにも向けて書かれており、その選択が議論を支えている。記事は、主要なアシスタント製品に対して報告されたデータ持ち出し攻撃のほとんどが、ベンダーによって速やかに修正されたこと、それも通常はデータ持ち出しの経路を塞ぐことで修正されたことを指摘したうえで、ユーザーが自分でツールを組み合わせた途端にこの対処法は使えなくなると述べる。結論もそれに見合って率直である。ベンダーは私たちを救ってはくれない。エンドユーザーにとって唯一確実な手は、この組み合わせを避けることである。

要点

  • 3 つの能力は、それぞれ単独ではありふれた有用なものである。リスクは 3 つすべてを同時に持つことから生じる性質であり、だからこそ記事は、単一の能力ではなくその組み合わせを名前を与えるべき対象として扱っている。
  • LLM はコンテンツの中に見つけた指示に従ってしまい、すべてが 1 つのトークン列に連結されるため、指示をその出どころによって確実に重み付けすることができない。そのため、ページを要約すること、メールを読むこと、画像を見ることのいずれもが、潜在的なインジェクションの経路となる。
  • これらのシステムは非決定論的であるため、記事はリスクを確実なものではなく「かなりの確率」として位置づけている。可能性を下げる方法の 1 つとしてモデルに従わないよう指示することを挙げつつ、考えられる言い回しが無限にある以上、そうした防御が毎回機能すると誰がどれだけ確信できるのか、と問いかけている。
  • Model Context Protocol は、異なる出どころのツールを混ぜて使うことを促すため、この組み合わせを意図せず組み上げやすくしている。記事は、HTTP リクエストを送れるツールであれば、画像を読み込むためであれクリック可能なリンクを表示するためであれ、ほぼどんなものでもデータ持ち出しの要素になり得ると主張する。
  • メールは、攻撃者がアシスタントに直接語りかけられるため、信頼できないコンテンツの完璧な供給源だとされる。記事は、パスワードリセットのメールを転送するようアシスタントに求めるサンプルメッセージを示している。
  • 報告された GitHub MCP のエクスプロイトは、1 つのツールが 3 つの要素すべてを備えていた事例として引かれている。攻撃者が起票した公開 issue を読むこと、プライベートリポジトリにアクセスすること、そしてデータを持ち出すプルリクエストを作成することである。
  • 記事は商用のガードレール製品に明確に懐疑的であり、検出率 95% をうたうことは、Web アプリケーションセキュリティの基準からすれば落第点だと主張している。
  • 記事は、アプリケーション開発者がこの種の攻撃を緩和するために取れるアプローチとして、著者が最近まとめたものを紹介しつつ、それらのどれも、ツールを自由に組み合わせて使うエンドユーザーの助けにはならず、そうしたユーザーにとって唯一安全な手はこの組み合わせを避けることだと結論づけている。
  • 記事は、プロンプトインジェクション という用語の意味が ジェイルブレイク の方向へずれてきていると主張し、この 2 つを混同する開発者は、この問題を自分自身の問題ではなくベンダーの恥だと誤って捉えてしまうと述べている。

注記

著者は、数年前に「プロンプトインジェクション」という用語を自ら作ったと述べている。信頼できるコンテンツと信頼できないコンテンツを 1 つのコンテキストに混在させるという、根底にある共通の問題から、SQL インジェクションにちなんで名付けたものであり、ジェイルブレイクは別の問題だと考えているという。記事ではまた、この種の攻撃の事例を数十件、自身のブログの exfiltration-attacks タグの下に集めているとも述べている。