研究者ら、MCPサーバー上のAIエージェントツール343件で253件のセキュリティバグを発見

オープンソースのModel Context Protocol(MCP)サーバー118台にまたがるAIエージェントツール343件で、検証済みのセキュリティバグ253件が新たに確認されました。大規模言語モデル(LLM)が生成した引数をソフトウェアがどう扱うかという点で、不備があることが明らかになっています。

この成果は、ツールを考慮したファジングフレームワーク「ToFu」の評価によるものです。ToFuは、従来のクラッシュ検知型テストでは見逃されかねないセキュリティ違反を検出するために設計されました。

評価の対象には、到達可能なMCPサーバー273台と、抽出された3,405件のツールが含まれていました。ただし、研究者らが実際に動作させられたのは、その一部にとどまります。

arXivの論文によると、当初は508件のバグ候補が記録されました。その後、手作業によるレビューで脆弱性ではないものが103件、重複が152件取り除かれています。一つのバグが複数のツールに影響する場合があるため、影響を受けたツール数が検証済みバグの総数を上回っています。

この研究が注目するのは、LLM、そのオーケストレーション層、そしてツール呼び出しを実行するソフトウェアの間にある信頼境界です。リクエストが入力スキーマを満たしていても、ツールのドキュメントに記載されたセキュリティ要件には違反している場合があります。

たとえば、ワークスペース内のファイルパスとして受け付けられた文字列が、許可されたディレクトリの外を指してしまうことがあります。arXivはまた、「Repeat-After-Me」と呼ぶ手法を6つのオーケストレーションフレームワーク(LangGraph、Microsoft Agent Framework、Google ADK 2.0、AutoGen、Strands、CrewAI)で実証しました。

評価した構成では、ツールと引数を指定した攻撃者提供のテキストを、モデルがそのまま繰り返すだけで、実行可能な呼び出しになり得ました。つまり、スキーマに準拠しているからといって、リクエストが信頼できるとは限りません。

ToFuは、テストのたびにプロンプト操作の成功に頼るのではなく、スキーマ上は有効な敵対的引数をツールの実装に直接投げ込みます。これにより、脆弱性の発見と、攻撃者がエージェント経由で引数を届ける方法とを切り離しています。

ToFuは、ツールの説明、引数名、スキーマをセキュリティ仕様として再利用します。コーパスには、共通脆弱性タイプ一覧(CWE)のカテゴリに基づく、意味を考慮したサニタイザー74種類が含まれています。

LLMは関連するチェックを選び、ファジングの初期シードを生成しますが、実行が脆弱かどうかは判定しません。フレームワークはAtherisによるカバレッジ誘導型の変異を用い、ランタイムのイントロスペクションや結果ベースのオラクルで実行を検査します。

Pythonのランタイムトレーサーがファイルシステム、プロセス、ネットワークの操作を監視します。一方、結果チェックでは、ツールが禁止された入力を拒否するか、適切で安全なフォールバックを返すかを評価します。こうした仕組みにより、ツールが正常に完了した場合でも、安全でない操作を検出できます。

検証済みの発見の内訳は、出力の反射バグが115件、パストラバーサルの欠陥が64件、ログインジェクションの問題が58件、サーバーサイドリクエストフォージェリ(SSRF)の脆弱性が7件、データ流出バグが5件、OSコマンドインジェクションの欠陥が3件、一時ファイルの消し忘れが1件でした。

出力の反射が、そのまま悪用可能なクロスサイトスクリプティングに当たるわけではありません。影響の有無は、下流のソフトウェアがそのコンテンツを安全でない方法で描画するかどうかに左右されます。

あるケーススタディでは、webpage-screenshot-mcpのスクリーンショット取得ツールがファイルURLを受け付けていました。そのため、読み取り可能なローカルファイルの画像や、ディレクトリ一覧の画像が返されました。URLパーサーは構文こそ検証していたものの、ナビゲーションはブラウザーにそのまま渡されており、ツールが謳うウェブページという境界は強制されていませんでした。

標準の60秒というファジング予算で、検証済みバグ231件が見つかりました。より深いテストでは、さらに22件が見つかっています。ただし、認証情報の欠如、利用できないバックエンド、起動の失敗によって、実行時の到達性は制限されました。一方、静的解析は、実行時の挙動として観測できない問題の検出に引き続き有用でした。

今回の発見が示すのは、テスト対象のサーバーに実装上の弱点があるということです。実際に展開されている環境全体で侵害が起きている証拠ではありません。

研究者らは、ツールのメタデータを、強制力のあるセキュリティ契約にすべきだと主張しています。また、セキュリティをLLMに委ねるのではなく、実装側がモデル生成の引数を独自に検証する必要があるとしています。

評価では、想定された境界の外にあるファイル、ターミナルセッション、プロセスに影響を及ぼすツールも確認されました。このことから、セキュリティテストはサンドボックス内で実施する必要性が改めて浮き彫りになっています。

ANY.RUNを利用する16,000以上のSOCチームに加わり、脅威調査を効率化して手作業を減らしましょう。チームで試してみる

翻訳元: https://cyberpress.org/researchers-find-253-security-bugs-343-ai-agent-tools/

本記事は cyberpress.org の記事を翻訳・要約したものです。