出典: Klaus Ohlenschlaeger via Alamy Stock Photo
今日のWeb上には数百のモデルコンテキストプロトコル(MCP)サーバーが誤設定されており、人工知能(AI)アプリのユーザーをサイバー攻撃に不必要にさらしています。
MCPサーバーは、簡単に言えば、AIモデルを、それまでアクセスできなかったデータに接続する手段です。ローカルまたはクラウドで、個人または組織によって、さまざまな種類のデータに対して展開されるかどうかにかかわらず、AIツールがトレーニングデータやオープンWeb上で利用可能な情報を超えて作業できるようにします。多くの場合、これは開発者や組織に属するプライベートシステムのデータを意味します。
MCPは昨年11月から存在していますが、Backslash Securityの研究者によると、世界にはすでに15,000以上のMCPが存在しています。「私たちの顧客から見ていることは、組織が理解している以上に広く採用されていることです」とBackslash Securityの最高技術責任者であるYossi Pikは説明します。AIユーザーは日々MCPとますます関わっており、数百のMCPが誤設定されているため、機密データの漏洩やリモートコード実行(RCE)攻撃が可能になっています。
MCPサーバーの誤設定
研究者が最初に発見した問題は、Web上にどれだけ多くのMCPが公開されているかということでした:約7,000、つまり全体の約半数です。特定の企業は、非機密データへの広範なアクセスを提供するためにサーバーを公開することを選択するかもしれません。しかし一般的には、通常は機密の内部データと接続するため、公開されるべきではありません。
分析された7,000のうち、数百が接続に対して完全に開放されていることが判明しました。同じローカルネットワーク上の任意のデバイスが認証なしで接続できました。単独では、いわゆる「ネイバージャッキング」のリスクは致命的ではありません。しかし、ネイバージャッキングが他の誤設定と組み合わさると、事態は厄介になります。
スキャンされたMCPの約70は、パストラバーサルの問題や入力データのサニタイズの欠如など、深刻なサイバーセキュリティの脆弱性を持っていました。例えば、以下のコードスニペットは、受け取ったすべての入力を盲目的に信頼し、ホストシステムでシェルコマンドとして実行するMCPを表しています。
出典: Backslash Security
研究者たちは、ネイバージャッキングと何らかのコマンドインジェクションのリスクがあるMCPをいくつか発見しました。これらのケースでは、他のステップを必要とせず、ネットワーク隣接性を持つ攻撃者が独自のコードを実行したり、ホストシステム上のすべてのデータを削除したり、完全に制御を奪ったりすることが可能です。
MCPサイバーセキュリティ防御の初期段階
公開されたサーバーを直接攻撃する以外にも、ハッカーはMCPをコンテキストポイズニング攻撃の手段として利用することができます。これは、大規模言語モデル(LLM)が応答を生成するために使用するデータを改ざんし、その出力を操作するものです。Backslash Securityは現在、数万人が使用するMCPを持つ企業と協力していますが、この種のリスクに対してまだ十分に強化されていません。
Pikは、MCPが本質的に脆弱または有害であるわけではないことを強調します。実際、彼のチームは明らかに悪意のあるものを見つけることができませんでした。まだ解決されていない問題があるだけで、「おそらく非常に迅速に開発されたため、またはセキュリティ標準が十分でないためかもしれません。」
「私たちが見ているのは、仕様が今まさに定義され始めていることです。セキュリティと認証は基本的な仕様の一部ではなかったため、[MCPサーバー]を安全に使用する方法についての知識が十分ではありませんでした。ですから、人々が非常に速く動いて影響を理解せずに物事を行っていることと、正しく展開する方法についての知識が十分ではないことの組み合わせです」と彼は説明します。
今のところ、彼は「それらは無害ですが、脆弱です。そして、AI環境にそれらを追加すると、環境全体が脆弱になります」と述べています。
MCPセキュリティ防御を強化する方法
Backlashによれば、セキュリティチームはMCPの実装を強化するためにいくつかのベストプラクティスを利用できます。これには以下が含まれます:
インベントリを取り、環境をスキャンする:
-
AIルールの誤設定
-
保護されていない/未承認のLLM
内部MCPを開発する際:
-
ローカルMCPツールにはServer-Sent Events(SSE)ではなくstdioトランスポートを優先する。「ローカルでSSEが必要な場合は、アクセスを127.0.0.1のみに制限する」とBacklashは述べています。
-
外部入力をすべて検証し、特にプロンプト構築、ファイルパス、ネットワークリクエスト、シェル/コマンド実行に使用されるデータをサニタイズする
-
ファイルシステムアクセスを制限する:読み書き操作を事前定義されたディレクトリに限定する
-
ツールの応答やLLMプロンプトで内部データ(例:シークレット、トークン、内部ログ)を漏らさないようにする
-
APIおよびツール機能に明確なアクセス制御を実装し、許可された呼び出しのみが許可されるようにする
-
LLMエージェントが受け取るデータのソースを検証し、潜在的なデータソースの汚染を避ける。
翻訳元: https://www.darkreading.com/cloud-security/hundreds-mcp-servers-ai-models-abuse-rce