MCPサーバー:新たなセキュリティの悪夢
MCPサーバー:新たなセキュリティの悪夢
私たちはここ数週間、研究開発に深く取り組んできましたが、2025年になってもなお、リモートコード実行(Remote Code Execution #RCE)の脆弱性、特にコマンドインジェクションの脆弱性が出現していることに驚いています。こうした根本的な脆弱性が現代のテクノロジーに再び現れており、セキュリティの退行に直面しているように感じます。
さらに懸念されるのは、これらの脆弱性がもはやレガシーシステムに限定されず、最新の実装でも現れていることです。
皮肉なことに、新しいテクノロジーやフレームワークは、開発者が実装時にRCE(リモートコード実行)を行える攻撃対象領域を提供しています。
技術アーキテクチャの概要
MCPは、次の要素で構成される多層アーキテクチャを実装します。
- MCPホスト: Claude Desktop、IDE、外部データアクセスを必要とする特殊なAIツールなどのアプリケーション。
- MCPクライアント: MCPサーバーとの接続を確立および維持するプロトコル実装。
- MCPサーバー: MCP仕様を実装し、データソースまたはツールをクライアントに公開するバックエンドサービス。
- データソース: MCP サーバーがアクセスできるローカル ファイル、データベース、API、またはその他のリソース。
このプロトコルは、リアルタイム通信のためのWebSocketサポート、トランスポート用のHTTP/HTTPS、シリアル化用のJSONの使用、およびデフォルトでは認証なしというRESTful設計原則に従います。
普遍的な攻撃対象領域
見落とされがちな重要な点があります。MCPサーバーはLLMだけでなく、誰でも呼び出すことができます。LLMは通常、「計画」フェーズと「実行」フェーズで何を行うかを示しますが、悪意のある攻撃者にはそのような透明性がありません。そのため、多くの開発者が適切に保護できていない、攻撃対象領域が拡大してしまいます。
このような発見をしたのは私たちだけではありません。 @junr0nのような他のセキュリティ研究者も、MCP エコシステム全体にわたって同様の脆弱性を独自に発見しています。
「一部のIDA MCPサーバーは、マルウェアサンプルから直接任意のコードを実行するように仕向けることが可能である。」
設計段階におけるセキュリティの欠如:プロトコルの基礎
モデルコンテキストプロトコル (MCP) は、主にセキュリティではなく機能性を重視して設計されたため、実装で簡単に修正できない根本的な脆弱性が生じます。
- URL内のセッションID:プロトコル仕様ではURLにセッションIDを含めることが義務付けられていますが(GET /messages/?sessionId=UUID)、これはセキュリティのベストプラクティスに根本的に違反しています。この設計では、機密性の高い識別子がログに漏洩し、攻撃者によってセッションが乗っ取られる可能性があります。
- 認証標準の欠如: プロトコルは認証に関するガイダンスを最小限しか提供していないため、一貫性がなく、セキュリティ実装が脆弱になることがよくあります。
- 整合性制御の欠如: プロトコルに必要なメッセージの署名または検証メカニズムがないため、メッセージの改ざんが可能になります。
もう一つの抽象化レイヤー?
API仕様書に基づいてMCPサーバーを生成するラッパーが、近い将来登場するだろうと考えています。しかし、根本的な問題は依然として残っています。API仕様書は依然として大部分が手作業で実装されており、エンドポイントの欠落や入力ドキュメントの不完全さといった問題がしばしば存在します。Postmanのブログ記事「開発者を信用しない(Never trust developer)」は忘れられませんが、重要な点を指摘しています。エージェントを機能させたいのであれば、抽象化のレイヤーを追加する前に、開発者が最初から高品質で信頼性の高いAPI仕様書を作成できるように支援することに注力すべきです。
従来のREST APIは通常、クライアントPC上でコマンドを実行できませんが、その開発エコシステムはセキュリティパターン、包括的なテストフレームワーク、確立されたベストプラクティスによって成熟しています。MCPサーバーはセキュリティ成熟サイクルにまだ追いついていないため、導入フェーズでは特に脆弱です。
結論
MCPプロトコルは、LLMと外部ツール、およびローカルクライアント上のデータソースとの統合における標準化の進展を表しています。しかしながら、現在のセキュリティ体制には、初期のWebアプリケーションセキュリティの課題を彷彿とさせる懸念すべき弱点が見られます。
MCPサーバーを導入する前に、組織はセキュリティへの影響を慎重に検討し、堅牢なセキュリティ対策を実装する必要があります。MCPに関する標準化の取り組みでは、脆弱性の高いAIシステムの新世代化を防ぐため、機能性に加えてセキュリティを優先する必要があります。
Equixlyでは、MCPエコシステムの監視を継続し、実装者と協力してセキュリティ対策の改善に取り組んでいます。当社の調査によると、数十年前に発生した根本的なセキュリティ問題が、この新たな状況において再び顕在化しており、イノベーションに加え、セキュリティの基礎にも新たな視点から取り組む必要があることが示されています。
※この記事はEquixly社ブログを日本語化したものです。
※この記事の無断複写及び転載を禁じます。
※原文:https://equixly.com/blog/2025/03/29/mcp-server-new-security-nightmare/
Alessio Dalla Piazza
CTO & FOUNDER
CYS4の元創業者兼CTOである彼は、2014年にデジタル監視活動に積極的に参加し、世界および地域の法執行機関と協力しながら、テロや組織犯罪と闘ってきました。高度な盗聴技術を設計・活用し、Skype、VMware、Safari、Docker、IBM WebSphereなどの製品におけるゼロデイ脆弱性を特定しました。2016年6月には国際企業の研究職に転身し、攻撃的なセキュリティと脆弱性の自動検出ツールを開発しました。彼は、悪用されると完全な制御が可能になる複数の脆弱性を発見しました。彼の専門知識は、レッドチーム作戦、インシデント管理、高度なトレーニングを通じて、銀行、保険、産業セクターのクライアントセキュリティ強化に貢献しました。