はじめに
OpenAIが2026年3月11日、AIエージェントのセキュリティに関する技術的な考え方を公開しました。本稿では、プロンプトインジェクション攻撃がどのように進化しているか、そしてOpenAIがどのような設計思想でこれに対処しているかを解説します。
参考記事
- タイトル: Designing AI agents to resist prompt injection
- 著者: Thomas Shadwell, Adrian Spânu
- 発行元: OpenAI
- 発行日: 2026年3月11日
- URL: https://openai.com/index/designing-agents-to-resist-prompt-injection/
要点
- プロンプトインジェクション攻撃は、単純な命令の上書きから、ソーシャルエンジニアリングの手法を取り入れた複雑な形態へと進化している
- 入力をフィルタリングする「AIファイアウォール」だけでは、高度化した攻撃への対処は困難である
- OpenAIはAIエージェントを「三者間システム」の中のカスタマーサポート担当者と同様に捉え、システム設計で被害範囲を制限するアプローチをとっている
- ChatGPTでは「Safe Url」という仕組みを導入しており、会話内の情報が第三者に送信されようとした場合にユーザーへの確認またはブロックを行う
- 攻撃の分析には「ソース・シンク分析」を活用しており、情報の流入経路と危険な出力先の組み合わせを検出する
詳細解説
プロンプトインジェクション攻撃の進化
プロンプトインジェクション(Prompt Injection)とは、外部コンテンツに悪意のある指示を埋め込み、AIモデルをユーザーの意図とは異なる動作に誘導しようとする攻撃手法です。初期の攻撃は比較的単純で、たとえばAIエージェントが閲覧するウィキペディアの記事に直接指示文を書き込むだけで、モデルが疑いなくその命令に従ってしまうケースもありました。
しかしOpenAIによれば、モデルの性能向上に伴い、こうした単純な攻撃への耐性は高まっています。その一方で、攻撃手法そのものも巧妙になってきました。現在確認されている実際の攻撃の多くは、ソーシャルエンジニアリングの要素を取り入れたものになっています。
ソーシャルエンジニアリングとは、技術的な脆弱性を突くのではなく、相手の心理や信頼関係を悪用して情報を引き出したり、行動を操作したりする手法です。AIエージェントへの攻撃でも同様の発想が用いられており、OpenAIが示した事例では、従業員データの確認や部門間の調整を依頼するように見せかけながら、その中にエージェントへの悪意ある指示を混在させたメール文が使われています。外部セキュリティ研究者から報告されたこの攻撃は、テストでは50%の確率で成功したとされています。
AIファイアウォールの限界と設計思想の転換
こうした攻撃への対処として、業界では「AIファイアウォール」と呼ばれる手法が推奨されてきました。これは、AIエージェントと外部世界の間に仲介層を設け、入力を「悪意ある攻撃」と「通常の入力」に分類しようとするものです。
ただし、OpenAIはこのアプローチだけでは高度化した攻撃に対処するのは難しいと説明しています。巧みにソーシャルエンジニアリングを組み込んだ攻撃を検出することは、「嘘や誤情報を見抜く」ことと同等に困難な問題であり、必要なコンテキストが欠如した状態では正確な判断が難しいためです。
そこでOpenAIが採用したのは、入力の識別に頼るだけでなく、攻撃が一部成功しても被害範囲を制限できるようシステム全体を設計するという発想です。この考え方は、人間のカスタマーサポート担当者が悪意ある第三者にさらされる状況の管理手法から着想を得ています。セキュリティの実務では長年使われてきた考え方であり、それをAIエージェントの設計に応用した点が本アプローチの特徴と言えます。
三者間システムモデルによる防御設計
OpenAIは、AIエージェントを「雇用主・エージェント・第三者(顧客など)」という三者間の関係の中に存在するものとして捉えています。人間のカスタマーサポート担当者であっても、悪意ある第三者から脅迫を受けたり、虚偽の主張をされたりすることがあります。それでも組織が機能し続けられるのは、担当者個人に与えられる権限が適切に制限されており、不正な操作を検知する決定論的なシステム(返金回数の上限設定、フィッシングメールの警告など)が設けられているためです。
AIエージェントの設計にも同様の考え方が適用できます。エージェントが一時的に誤誘導されたとしても、システム全体の権限設計や監視の仕組みによって、実際の被害を最小化できます。OpenAIはアプリケーションにAIモデルを統合する際の指針として、「同じ状況に置かれた人間のエージェントにはどのような制限を設けるか」を起点に設計することを推奨しています。
ChatGPTでの具体的な実装:Safe UrlとSource-Sink分析
ChatGPTでは、この設計思想をもとに複数の対策が実装されています。中心的な分析手法はソース・シンク分析です。攻撃者が悪用するには、「ソース」(システムに影響を与える経路)と「シンク」(危険な文脈で使われる可能性のある機能)の両方が必要です。エージェントシステムでは、信頼できない外部コンテンツの取り込みと、情報の第三者への送信やツールの操作といった機能の組み合わせが、この典型的なパターンに該当します。
この分析をもとに開発されたのが「Safe Url」という仕組みです。OpenAIによれば、ChatGPTに対して確認されている攻撃の多くは、会話内で得た情報を悪意ある第三者に送信しようとするものです。多くのケースではAIの安全性トレーニングによってエージェントが拒否しますが、それでも誘導されてしまうレアなケースに対応するため、Safe Urlが機能します。この仕組みは、会話内で学習した情報が第三者に送信されようとしていることを検出した際に、送信される情報をユーザーに提示して確認を求めるか、あるいはブロックして別の方法を試みるようエージェントに指示します。
同様の仕組みは、ChatGPTの他の機能にも展開されています。AIによるウェブ操作を行うAtlas、Deep Research(深掘り調査機能)での検索・ナビゲーション、そしてChatGPT CanvasやChatGPT Appsでも同様のアプローチが採用されており、予期しない通信が検出された場合にユーザーへの同意を求める設計になっています。
なお、最大限に高性能なAIモデルは人間のエージェントよりもソーシャルエンジニアリングへの耐性が高くなる可能性はあるものの、アプリケーションの要件やコスト面から、常にそれが実現可能とは限らないとOpenAIは述べています。
まとめ
AIエージェントのセキュリティは、入力フィルタリングだけでなく、「被害を前提とした設計」へのシフトが重要になってきています。今後、エージェントが自律的に動作する場面が増える中で、権限設計や通信の監視といったシステムレベルの対策の重要性はさらに高まると考えられます。
