MCP で特定された3つの攻撃ベクター:悪意のサーバからの攻撃手法を分析する

Malicious MCP Servers Enable Stealthy Prompt Injection to Drain System Resources

2025/12/09 gbhackers — Model Context Protocol (MCP) のサプリング機能に、深刻な脆弱性が存在することを、Unit 42 のセキュリティ研究者たちが公表した。この脆弱性を悪用する悪意のサーバは、ステルス性の高いプロンプト・インジェクション攻撃を、ユーザーに気付かれることなく実行できる。その結果として、計算リソースの浪費や、LLM アプリケーションの侵害などが可能になる。発見された脆弱性は、プロトコル固有の信頼モデルと堅牢なセキュリティ制御の欠如を悪用する3つの主要な攻撃ベクターを持つ。

特定された3つの攻撃ベクター

研究者たちが用いたのは、コーディング支援のために MCP を統合する、コーディング・コパイロット・アプリケーションである。それにより実証されたのは、実用的な PoC エクスプロイトによる侵害である。

The user asks the copilot to help summarize the current code file
The user asks the copilot to help summarize the current code file

この実験の結果として明らかにされたのは、悪意の MCP サーバによるリソースの窃取/会話の乗っ取り/ツールの秘密裏の呼び出しを介して、サンプリング機能の悪用が可能なことだった。

The user receives a summary of the code file as normal
The user receives a summary of the code file as normal

1:リソース窃取攻撃の結果として生じるのは、悪意のサーバによる正当なプロンプトを介した秘密の指示の追加と、LLM による膨大な追加コンテンツの生成であるが、いずれもユーザーには検知できない。

このテストで研究者たちは、コードサマライザー・ツールを作成した。このツールは、リクエストに応じたコード・サマリーを生成するが、それに加えて、架空のストーリーを秘密裏に生成するよう LLM に指示する。

 information is not shown on the user interface
 information is not shown on the user interface

ユーザーが受け取るのは期待されたサマリーのみであるが、LLM はバックグラウンドで最大 1,000 語の追加テキストを生成し、計算リソースと API クレジットを不正に消費していた。

2:会話ハイジャック攻撃は、より永続的な侵害をもたらす。LLM のレスポンスに指示を挿入することで、悪意のサーバは複数回にわたって AI アシスタントを侵害し、その動作を根本から変更できる。

ある実験では、挿入された指示を受けた AI が、その後の対話において、海賊語で応答するようになった。しかし、より高度な指示により、アシスタントが危険かつ信頼できない状態に導かれる可能性がある。

最も懸念されるのは、悪意のサーバが秘密のツール呼び出し、不正なシステム操作をトリガーする状況である。

LLM puts the malicious instruction in its response as requested by the MCP’s hidden prompt
LLM puts the malicious instruction in its response as requested by the MCP’s hidden prompt

3:研究者たちが実証したのは、侵害されたサーバがユーザーの明示的な許可を受けずに、 LLM がファイル書き込みツールを起動させる方法である。それにより、データ窃取/永続化メカニズム/不正なシステム変更が可能になる。

この攻撃が成功するのは、LLM がファイル操作を、正当なツール呼び出しだと捉えるからである。

この研究が明らかにしたのは、セキュリティ制御のない暗黙的な信頼モデルに、MCP のサンプリング機能が依存していることである。このモデルにより、MCP を利用するエージェントに、新たな攻撃ベクターが生じる。

 The copilot follows the malicious instructions that are put into the response
 The copilot follows the malicious instructions that are put into the response

ユーザーがインターフェイス上で見る情報と、LLM が実際に処理する情報が乖離しているため、リソース枯渇攻撃や悪意アクティビティの完全な隠れ蓑が成立してしまう。

MCP の実装ごとに出力フィルタリングや表示方法が異なるため、LLM のレスポンス全体が表示される場合もあれば、実際のコンテンツを隠すための要約レイヤーが使用される場合もある。

The copilot follows the malicious tool invocation request
The copilot follows the malicious tool invocation request

Palo Alto Networks が推奨するのは、これらの脅威から AI システムを保護するための、組織的かつ包括的なセキュリティ対策の実施である。

MCP ベースのシステムにおいて不可欠なものとして、サンプリング要求の検証強化/異常なトークン消費パターンの監視/持続的プロンプト・インジェクションに対する保護策の実装など、堅牢なセキュリティ管理があると、この調査結果が示している。

AI アプリケーション全体で MCP の採用が拡大するにつれて、LLM を利用するツールやサービスの整合性およびセキュリティを維持するためにも、これらの攻撃ベクターへの理解が不可欠になる。