ツールポイズニングとは、攻撃者が悪意のある指示を、ツールが実行するコードの中ではなく、AI エージェントに公開されるツールのメタデータ——その説明、パラメータスキーマ、または設定——の中に隠すプロンプトインジェクション攻撃である。エージェントはツールの使い方を判断するためにツールの説明を読むので、モデルは騙されて、ツールが呼び出されたことに誰かが気づく前に、機密ファイルを読み取って持ち出すといった意図しないサブタスクを実行してしまうことがある。このリスクは、MCP クライアントがファイルアクセス、コマンド実行、API 呼び出しといったアクションを実行できるツールにモデルを接続する Model Context Protocol 上に構築されたシステムにとって特に重要である。関連するパターンとして「ラグプル(rug pull)」がある。これは、最初に承認されたときには無害に振る舞っていたツールが、承認されて一定回数使われた後に、隠されていた悪意のある指示を作動させるものである。
MCP-ITP: MCP における暗黙的ツールポイズニングのための自動化フレームワーク は、ツールポイズニングを 間接プロンプトインジェクション の特殊な形態に分類している。従来の間接プロンプトインジェクションが外部データに指示を仕込むのに対し、MCP におけるツールポイズニングは指示をツールの説明に直接埋め込み、MCP の登録段階でモデルのコンテキストに注入することで、エージェントが推論している間にその判断に影響を与える。同論文は二つの形態を区別している。明示的ツールポイズニングでは、エージェントは汚染されたツールそのものを呼び出すよう誘導されるが、同論文によれば、そのため攻撃はツール実行の監視にさらされたままになる。暗黙的ツールポイズニング では、汚染されたツールは一度も呼び出されない。その代わりに、その説明がエージェントを誘導して、別の、正当だが高い権限を持つツールを呼び出させる。
用法
AI 支援開発ツールはプロンプトインジェクションに対して免疫があるのか? は、七つの MCP クライアントを四つのツールポイズニング攻撃パターンに対して実証的にテストした。そのパターンとは、エージェントに機密性の高いローカルファイル(認証情報を含む MCP クライアントの設定やローカルの SSH 認証情報ファイルなど)を読み取らせ、その内容を隠しツールパラメータとして渡させるもの、偽の実行優先度を主張して、ツールにその後のすべてのツール使用を記録させ、密かに監視を行わせるもの、ツールに無害に見える表示テキストを持つフィッシングリンクを生成させる隠し指示を埋め込むもの、そして定期メンテナンスを装ってリモートスクリプトをダウンロードして実行するようツールに指示するものである。四つの攻撃すべてを防いだクライアントはなかった。最も成績の良いクライアントでさえ少なくとも一つは安全でない結果を出し、一つのクライアントは四つすべてで失敗した。
MCP-ITP: MCP における暗黙的ツールポイズニングのための自動化フレームワーク は攻撃者の側に立ち、暗黙的に汚染されたツールの構築を自動化している。エージェントに対する効果をテストする LLM と、悪意あるツールの検出をシミュレートする LLM からのフィードバックを用いて、ツールの説明を反復的に改良するのである。MCPTox データセット上で 12 の LLM エージェント設定にわたって評価したところ、生成されたツールは最大 84.2% の攻撃成功率を達成する一方、悪意あるものとして検出される割合を最低 0.3% まで下げ、同データセットが提供する手作業で作成された汚染ツールを上回った。
MCPTox: 実世界の MCP サーバーに対するツールポイズニング攻撃のベンチマーク は、実行を伴わずにツールのメタデータ内に悪意のある指示を埋め込むツールポイズニングを、先行研究が焦点を当ててきたツール出力を通じて注入される攻撃よりも根本的な脆弱性と位置づけ、それがこれまで主に個別の事例を通じて示されてきたにすぎないと指摘している。同論文のベンチマークである MCPTox は、この脅威を大規模に評価する。稼働中の実世界の MCP サーバー 45 台と実在のツール 353 個をもとに構築され、10 カテゴリの潜在的リスクを網羅する 1312 件の悪意あるテストケースを含んでいる。20 の LLM エージェント設定にわたって、同論文は脆弱性が広く見られることを報告しており、o1-mini の攻撃成功率は 72.8% に達した。また、この攻撃はより強い指示追従能力を突くため、より高性能なモデルほどかえって攻撃を受けやすいことが多いと結論づけている。エージェントがこれらの攻撃を拒否することはまれで——最も高い拒否率だった Claude-3.7-Sonnet でも 3% 未満だった——著者らはこれを、正当なツールを無許可の操作に用いる悪意ある行動に対して、既存の安全性アラインメントが効果を持たないことを示すものと解釈している。
適用される場面
AI 支援開発ツールはプロンプトインジェクションに対して免疫があるのか? は、発見したツールポイズニングの脆弱性の大半を、少数の構造的な欠落にさかのぼって特定した。すなわち、登録前にツールの説明を静的に検証する仕組みがないこと、実行前にエンドユーザーがツールのパラメータを完全には確認できないこと、実行のサンドボックス化が欠けていること、そしてサーバーが提供するツールのメタデータを暗黙のうちに信頼しており、MCP サーバーに対する評判システムが存在しないことである。この研究がクライアントを比較するために用いた定性的なリスク尺度では、プロンプトインジェクションによるポイズニングのリスクは、信頼できない入力が存在するかどうか、モデルに与えられた権限の程度、ツール呼び出しがゲートで制御されているか、サンドボックス化されているか、あるいはユーザーの承認を必要とするか、そしてシステムがコンテキストを分離しているか、それとも単一のコンテキストにまとめてしまっているかに左右される。
関連用語
- Model Context Protocol — ツールポイズニングが悪用する、ツール公開モデルを持つプロトコル
- AI 支援開発ツールはプロンプトインジェクションに対して免疫があるのか? — 七つの MCP クライアントにわたるツールポイズニングへの耐性の実証的評価
- 暗黙的ツールポイズニング — 汚染されたツールが一度も呼び出されない変種
- 間接プロンプトインジェクション — MCP-ITP: MCP における暗黙的ツールポイズニングのための自動化フレームワーク においてツールポイズニングが分類される攻撃ファミリー
- MCP-ITP: MCP における暗黙的ツールポイズニングのための自動化フレームワーク — 暗黙的に汚染された MCP ツールを生成するための自動化フレームワーク
- MCPTox — 実世界の MCP サーバーをもとに構築された、1312 件のツールポイズニングのテストケースからなるベンチマーク