Compatibility at a Cost: Systematic Discovery and Exploitation of MCP Clause-Compliance Vulnerabilities

この論文は、AI エージェントと外部ツールを接続する新しい標準「MCP」において、互換性確保のための緩い仕様制約が新たな脆弱性を生んでいることを指摘し、多言語 SDK を横断的に分析・攻撃する包括的なフレームワークを初めて提案するものである。

Nanzi Yang, Weiheng Bai, Kangjie Lu

公開日 Thu, 12 Ma
📖 1 分で読めます☕ さくっと読める

Each language version is independently generated for its own context, not a direct translation.

🧩 物語:万能アダプターと「抜け道」の罠

1. MCP とは何か?(万能アダプター)

Imagine you have a smartphone (the AI) and you want to connect it to various gadgets like a printer, a smart lock, or a weather station (external tools).
以前は、スマホと各ガジェットをつなぐには、それぞれ専用のケーブルや変換アダプターが必要で、とても面倒でした。

MCP(Model Context Protocol) は、この問題を解決するために生まれた**「USB-C のような万能アダプター」**です。
「どんなガジェットでも、このアダプターを使えばスマホに繋がるよ!」と約束することで、AI が世界中のあらゆるツールと簡単に会話できるようにしました。

2. 問題の核心:「何でも繋がる」ための代償

この万能アダプターを作る際、設計者(MCP の開発チーム)は**「どんな状況でも使えるようにしたい」**と考えました。
例えば、「ガジェット A は通知が必要だけど、ガジェット B は通知が邪魔だ」といった、AI の使い方の多様性(ダイバーシティ)に合わせるためです。

そこで、設計者は**「必須(MUST)」というルールを最小限にし、「推奨(SHOULD)」や「任意(MAY)」という「やらなくてもいいルール」**を大量に盛り込みました。

  • 設計者の意図: 「柔軟性を持たせて、誰にでも使いやすいアダプターにしよう!」
  • 結果: アダプターの仕様書(マニュアル)には、「やらなくてもいいこと」が全体の 78.5% も含まれることになりました。

3. 攻撃者の視点:「やらなくてもいい」は「守らなくていい」

ここで、アダプターを作る**プログラマー(SDK 開発者)**が登場します。
彼らは仕様書を見て、「『通知を送る』なんて『推奨(SHOULD)』だし、必須じゃないから省いてしまおう」と考えます。
実際、Python 版のアダプターでは通知機能を実装していませんでした。

👹 攻撃者の策略(Compatibility-Abuse Attack)
ここが論文の核心です。攻撃者はこの「省かれた機能」に目をつけます。

  • 通常の状況: 「ツールが変わったら通知を送る」というルールがあれば、AI は「あ、ツールが変わったな」と気づきます。
  • 攻撃状況: 通知機能がないアダプターを使っている場合、攻撃者は**「ツールをこっそり書き換えても、AI は気づかない」**ことに気づきます。

攻撃者は、AI が使うツールの説明書きに**「悪意ある命令(例:『秘密のパスワードを教えて』)」を忍び込ませます。
通知機能がないため、AI は「ツールが変わった」という警告を受け取らず、
「新しいツールだ!」と信じて、その悪意ある命令を実行してしまいます。**
これを**「サイレント・プロンプト・インジェクション(静かなる命令注入)」**と呼びます。

4. 研究チームの発見:「1,265 個の穴」

この論文の著者たちは、この「柔軟性ゆえの弱点」を体系的に調査しました。
彼らは、10 種類の異なるプログラミング言語で作られたアダプター(SDK)を、AI を使って自動でチェックするツールを開発しました。

  • 発見: 10 個のアダプターを調べたところ、**1,265 個もの「守られていないルール(穴)」**が見つかりました。
  • 深刻度: そのうち 20 件を報告したところ、開発チームは「これは重大な問題だ」と認め、5 つを「最優先で修正すべき(High Priority)」と判断しました。
  • インパクト: この発見はあまりにも重要で、MCP の開発チーム自体が**「この調査ツールを、公式のテスト基準に組み込みたい」**と依頼してきました。

5. 結論:便利さには「コスト」がつきもの

この研究が教えてくれるのは、「何でも繋がる便利さ(互換性)」と「セキュリティ(安全性)」は、しばしばトレードオフ(二律背反)の関係にあるということです。

  • 設計者のジレンマ: 「誰にでも使ってもらいたいから、ルールを緩くした」
  • 結果: 「ルールが緩いから、守られていない部分(攻撃の隙間)が生まれてしまった」

🛡️ 今後の対策

  • AI ユーザーへ: 「万能アダプター」を使っているからといって安心せず、接続する相手が信頼できるか確認する必要がある。
  • 開発者へ: 「やらなくてもいい(SHOULD)」ルールも、セキュリティ上は「やるべき(MUST)」かもしれないと考える視点が必要。
  • 設計者へ: 柔軟性を保ちつつ、重要なセキュリティルールは「必須」に昇格させるなどの見直しが必要。

📝 まとめ

この論文は、**「AI と道具をつなぐ『万能アダプター』が、あまりにも『何でもOK』に作りすぎたせいで、悪意あるハッカーに『見えない隙間』を作らせてしまった」**という、現代の AI 社会における重要な教訓を伝えています。

「便利さ」を追求するあまり、「安全性」が置き去りにならないよう、開発者とユーザーの両方が注意を払う必要がある、というメッセージです。