MCPサーバー:モデルコンテキストプロトコルサーバーを保護する方法
モデルコンテキストプロトコル(MCP)サーバーは、AIエージェントと外部ツール間の重要な橋渡し役となっていますが、その接続性には深刻なリスクが伴います。本稿では、MCPサーバーにおける最も差し迫ったセキュリティ脆弱性を検証し、プロンプトインジェクションやセッションハイジャックに対する実践的な防御策を概説するとともに、AIインフラストラクチャを保護するための強化されたチェックリストを提供します。
MCPサーバーとは何か、そしてなぜセキュリティが重要なのか?
MCPフレームワークは、構造化されたプロトコルを通じてAIモデルが外部データソース、API、ツールと連携できるようにするオープンスタンダードです。MCPサーバーは、AIエージェントからのリクエストを受け取り、実行可能な操作に変換して結果を返す中間層として機能します。このアーキテクチャは、大規模な言語モデルが外部と接続する方法を標準化し、脆弱なカスタム統合を統一されたインターフェースに置き換えるため、急速に普及しています。
MCPフレームワークの仕組み
MCPフレームワークの中核は、クライアントとサーバーの関係を定義することです。AIエージェント(クライアント)は構造化されたリクエストをMCPサーバーに送信し、サーバーはデータベースへのクエリ、APIの呼び出し、ファイルの読み込み、ワークフローのトリガーなどの操作を実行します。サーバーは、モデルが解釈して処理できる形式で結果を返します。この設計により、強力なエージェント動作が可能になりますが、同時に攻撃対象領域が集中するリスクも生じます。
セキュリティを後回しにしてはいけない理由
MCPサーバーはAIモデルと特権バックエンドシステムの間に位置しているため、この層での侵害は連鎖的に影響を及ぼす可能性があります。MCPサーバーを悪用する攻撃者は、以下のようなことを行う可能性があります。
● AIエージェントが照会を許可されている機密データにアクセスする
●接続されたインフラストラクチャに対して不正なコマンドを実行する
●モデルが受け取るコンテキストを汚染することで、AIの動作を操作する
●サーバーの認証情報を使用して内部ネットワークに横方向に移動する
2026年に注目すべき主要なMCPサーバーの脆弱性
MCPの導入が加速するにつれ、攻撃者の関心も高まっています。以下のカテゴリは、セキュリティチームが2026年を通して優先的に取り組むべき、MCPサーバーの最も重要なセキュリティ脆弱性を示しています。
脆弱性の分類とリスクレベル
| 脆弱性 | リスクレベル | 主な影響 |
|---|---|---|
| 即時注入 | クリティカル | 不正なコマンド実行、データ漏洩 |
| サーバーサイドリクエストフォージェリ (SSRF) | 高い | 内部ネットワークへのアクセス、認証情報の盗難 |
| ハイジャックセッション | 高い | なりすまし、権限の拡大 |
| 混乱した副官の問題 | 高い | 正当な経路を通じた特権の濫用 |
| サプライチェーンの侵害 | 高いメディア | バックドア挿入、悪意のあるツールの登録 |
| 安全でないツールの定義 | 中程度 | 権限が広すぎる、意図しない操作 |
攻撃対象領域の拡大
MCPサーバーに登録されるツールやデータソースが増えるごとに、攻撃対象領域も拡大します。20個のツールが設定されたサーバーには、20個の悪用可能な経路が存在します。攻撃者は、ツール登録および検出メカニズム自体を標的にするケースが増えており、悪意のあるツール定義を挿入したり、既存の定義を改変してサーバーの動作を変更しようと試みています。
これらの脆弱性を理解することは、防御力の高いMCPサーバーアーキテクチャを構築するための第一歩です。以降のセクションでは、主要な脅威カテゴリごとに、MCPサーバーセキュリティのベストプラクティスに沿った具体的な対策戦略を解説します。
プロンプトインジェクションと不正なコマンド実行の軽減
Prompt InjectionがMCPサーバーを標的にする方法
データベースやオペレーティングシステムを標的とする従来のインジェクション攻撃とは異なり、プロンプトインジェクションはAIモデルの解釈層を悪用します。攻撃者は、エージェントに要約を依頼する文書やチャットインターフェースのユーザーメッセージなど、一見無害なコンテンツの中に悪意のある命令を埋め込みます。モデルは正当な命令と埋め込まれた命令を区別できないため、有害なリクエストをMCPサーバーに転送して実行させてしまいます。
MCPサーバーに接続されたAIエージェントが、ファイルシステムツールとメールツールにアクセスできるシナリオを考えてみましょう。ドキュメントに隠されたプロンプトインジェクションによって、エージェントは機密性の高い設定ファイルを読み取り、その内容を外部アドレスに送信するように指示される可能性があります。MCPサーバーは、要求が正規のクライアントから送信されたように見えるため、両方の操作を忠実に実行します。
防衛戦略
- MCPサーバー層における入力サニタイズ: すべての受信リクエストに対して厳格な検証を実施してください。AIクライアントが有効と判断したかどうかに関わらず、サーバーはインジェクション攻撃に関連するパターンを含むリクエストを拒否する必要があります。
- 最小権限のツールスコープ設定: MCPサーバーに登録される各ツールは、可能な限り限定的な権限を持つべきです。要約エージェントは、ファイルシステムへの書き込み権限やメール送信機能を必要としません。
- リクエスト確認ゲート: 影響の大きい操作(ファイル削除、データ転送、構成変更など)については、MCPサーバーがコマンドを実行する前に、明示的な人間の承認を必要とする。
- 出力フィルタリング: MCPサーバーからAIエージェントに返されるデータを監視します。認証情報、APIキー、またはモデルのコンテキストに公開すべきでないその他の機密情報を含む応答には、フラグを立てるかブロックします。
不正なコマンド実行を防止するには、MCPサーバーを単なる中継地点ではなく、セキュリティ対策の拠点として扱う必要があります。Stellar Cyberの複数の検出レイヤーにわたるシグナル相関分析手法は、 AIエージェントが確立された基準値から逸脱する異常なツール呼び出しを開始したタイミングを組織が特定するのに役立ちます。
サーバーサイドリクエストフォージェリ(SSRF)の理解と防止
MCP環境におけるSSRF
MCPサーバーは、AIエージェントに代わって頻繁に外部へのリクエストを行い、URLからデータを取得したり、APIにクエリを実行したり、クラウドサービスにアクセスしたりします。攻撃者がこれらのリクエストのターゲットに影響を与えることができれば、サーバーをリダイレクトして、決して公開されるべきではない内部リソースにアクセスさせることができます。一般的なターゲットには以下が含まれます。
- クラウドメタデータサービス (例:AWS IMDSv1、169.254.169.254)認証情報収集用
- 内部マイクロサービス ネットワークレベルの分離を前提としているため、認証機能を持たない
- 管理インターフェース ローカルホストまたはプライベートIPアドレス範囲で
予防措置
MCPサーバーレベルでSSRF攻撃から防御するには、複数の対策を連携させる必要があります。
- URL許可リスト: MCPサーバーが接続を許可されるドメインとIPアドレス範囲を厳密にリスト化してください。その他の宛先への接続はデフォルトで拒否してください。
- DNSリバインディング保護: リクエストを行う前にホスト名を解決し、結果として得られるIPアドレスを検証してください。DNSリバインディング攻撃を防ぐため、リダイレクト後には必ずホスト名を再度解決してください。
- ネットワーク セグメンテーション: MCPサーバーは、機密性の高い内部サービスにアクセスできないネットワークセグメントに配置してください。ファイアウォールルールを使用して、この境界を強制的に適用してください。
- 不要なものを無効にする プロトコル:MCPサーバーへのリクエストをHTTPSのみに制限します。攻撃者がSSRF攻撃で悪用することが多いfile://、gopher://などのプロトコルハンドラをブロックします。
組織は、定期的な侵入テストの一環として、MCPサーバーの設定をSSRFシナリオに対してテストする必要があります。自動スキャンツールは明らかな設定ミスを特定できますが、MCPツール定義に固有のロジックレベルのSSRFパスを明らかにするには、手動テストが不可欠です。
セッションハイジャックと混乱した副管理者問題への対策
MCPアーキテクチャにおけるセッションハイジャック
- トークンの盗難 暗号化されていないチャネルでのネットワーク傍受を通じて
- クロスサイトスクリプティング(XSS) セッション識別子を公開するウェブベースのMCPインターフェースにおいて
- 予測可能なトークン生成 総当たり攻撃を可能にする
混乱した副官の問題
混乱した代理人問題は、信頼できる仲介役として機能するMCPサーバーが、要求元が実行権限を持たない操作を実行するように操作された場合に発生します。MCPサーバーは複数のバックエンドシステムにわたって高い権限を保持しているため、権限のない要求に代わってその権限を使用するように「混乱」する可能性があります。
例えば、読み取り専用権限を持つAIエージェントが、MCPサーバーが書き込みアクセスを要求するものと解釈するようなリクエストを作成する可能性があります。サーバーが個々の操作ごとにエージェントの認証レベルを個別に検証しない場合、サーバーは自身の昇格された認証情報を使用して書き込み操作を実行する可能性があります。
対策
- リクエストごとの承認: MCPサーバーは、セッションが認証されているかどうかだけでなく、要求元のエージェントが特定の操作を行う権限を持っているかどうかも検証する必要があります。
- 能力ベースのアクセス制御: 各エージェントが呼び出せるツールと操作を正確に指定する、きめ細かな機能トークンを発行する。
- 監査ログすべてのリクエストとレスポンスを、リクエスト元のエージェントのID、呼び出されたツール、渡されたパラメータ、結果など、完全なコンテキストとともに記録します。Stellar Cyberのようなプラットフォームは、これらのログを取り込み、より広範なセキュリティテレメトリと関連付けることで、混乱した代理攻撃パターンを検出できます。
第三者MCPサプライチェーンリスクの監査と管理
MCPのエコシステムは、コミュニティが提供するツール定義、サーバー実装、プラグインなどによって急速に成長しています。この成長に伴い、組織が積極的に管理しなければならない重大なサプライチェーンリスクが生じています。
サードパーティ製のMCPコンポーネントは、いくつかの点でリスクをもたらす可能性があります。
- 悪意のあるツールパッケージ: 攻撃者は、一見便利そうなMCPツールを公開するが、そのツールにはバックドアが含まれており、サーバーにインストールされるとデータを漏洩させたり、リモートアクセスを許可したりする。
- 依存関係の不具合: 正規のMCPサーバーの実装はオープンソースライブラリに依存しているが、それらのライブラリは後に依存関係の混乱やメンテナーアカウントの乗っ取りによって侵害される可能性がある。
- 検証されていないサーバー実装: 組織は、ソースコードを検証することなくコミュニティMCPサーバーを導入し、実装がセキュリティ境界を正しく適用していると信頼している。
サプライチェーンリスク管理の実践
| 専門 | 詳細説明 | 優先 |
|---|---|---|
| ソースコードレビュー | 展開前にすべてのサードパーティ製MCPツールとサーバーコードを監査する。 | クリティカル |
| 依存関係の固定 | すべての依存関係を特定の検証済みバージョンに固定する | 高い |
| ソフトウェア部品表(SBOM) | MCPスタック内のすべてのコンポーネントの完全な在庫を維持してください。 | 高い |
| 署名検証 | ダウンロードしたすべてのパッケージの暗号署名を検証する | 高い |
| サンドボックステスト | 本番環境に展開する前に、隔離された環境で新しいツールを実行してください。 | 中程度 |
| 継続的な監視 | MCPの依存関係に影響を与える脆弱性の開示に注意してください。 | 中程度 |
MCPサーバーセキュリティのための強化されたチェックリスト
認証とアクセス制御
- 相互TLS(mTLS)を強制する AIエージェントとMCPサーバー間
- ツールごとの認証を実装する 機能ベースのトークンを使用
- セッショントークンをローテーションする 頻繁にクライアント属性にバインドする
- 多要素認証を要求する MCPサーバーへの管理者アクセス用
入力検証と出力制御
- すべての入力をサニタイズする 処理前のMCPサーバー境界にて
- 厳密なURLを適用する アウトバウンドリクエストを行うツールを許可リストに追加する
- 機密データをフィルタリングする AIエージェントに返す前に、応答から除外する
- ツールパラメータを検証する 定義されたスキーマに反して、不正なリクエストを拒否する
ネットワークとインフラストラクチャ
- MCPをデプロイする セグメント化されたネットワークゾーン内のサーバー(送信制限あり)
- クラウドメタデータエンドポイントへのアクセスをブロックする MCPサーバーから
- 使用されていないプロトコルとポートを無効にする サーバーホスト上
- MCPサーバープロセスを最小限のOSレベルの権限で実行する
監視とインシデント対応
AIエージェントアーキテクチャのセキュリティ確保の未来
MCPフレームワークはまだ発展途上にあり、組織が自律型AIエージェントをますます導入するにつれて、それを取り巻くセキュリティ対策も進化し続けるでしょう。今後数年間、MCPサーバーとAIエージェントの接続セキュリティの方向性は、いくつかのトレンドによって形作られていくと考えられます。
ワードゼロトラストMCPアーキテクチャ
標準化されたセキュリティ仕様
AIシステムのためのAIを活用した防御
AIエージェントアーキテクチャの防御には、AIを活用したセキュリティ対策が不可欠であるという認識が広まりつつあります。Stellar Cyberのようなプラットフォームは、機械学習による検出をMCPサーバーが生成する独自のテレメトリデータに適用し、ルールベースのシステムでは見逃してしまうような微妙な攻撃パターンを特定するのに適しています。これには、静的フィルタを回避する即時インジェクション攻撃の検出、行動分析による混乱した代理人の悪用認識、サプライチェーンの異常のリアルタイム検出などが含まれます。
信頼性とセキュリティを統一目標として捉える
MCPサーバーの保護に関する議論は、信頼性とセキュリティは切り離せないものであるという原則に収束しつつあります。安全ではあるものの信頼性の低いMCPサーバーは、苛立った開発者によって回避されてしまうでしょう。一方、信頼性は高いものの安全性の低いサーバーは、いずれ悪用されることになります。最も効果的なアーキテクチャは、信頼性とセキュリティの両方を提供し、セキュリティ制御がエージェントの本来の機能を損なうのではなく、むしろ強化するように設計されるべきです。
MCPベースのAIシステムに投資する組織は、インシデント発生後に防御策を後付けするのではなく、今すぐにアーキテクチャにセキュリティを組み込むべきです。攻撃対象領域は現実のものであり、脅威は十分に文書化され、それらに対抗するためのツールも利用可能です。問題は、MCPサーバーがAIインフラストラクチャの最も脆弱なリンクとなる前に、チームが行動を起こせるかどうかです。

