2024年 11 月に Anthropic によってリリースされて以来、モデル コンテキスト プロトコル (MCP) は大規模に採用され、AI エージェントと AI エージェントが行動するツール、API、データとの間の結合組織になりつつあります。
エージェントは、わずか数行の設定で、コードの検索、チケットのオープン、SaaS システムのクエリ、さらにはインフラストラクチャのデプロイを行うことができます。このような柔軟性は強力ですが、新たなセキュリティ上の課題ももたらします。実際、MCPエコシステムを分析したセキュリティ研究者は、 分析されたサーバーの 43%にコマンドインジェクションの欠陥が影響していることを発見しました。1 つの誤った構成または悪意のあるサーバーがシークレットを盗み出したり、安全でないアクションをトリガーしたり、エージェントの動作を静かに変更したりする可能性があります。
このガイドは、エージェントを使用して構築する開発者およびプラットフォームチームを対象としています。MCP ワークフローが AI インフラストラクチャにとって特有のリスクである理由を解明し、プロンプト インジェクションやシャドウ ツールなどのよくある間違いに焦点を当て、 コンテナ化された MCP サーバー や ポリシーベースのゲートウェイなどの安全なデフォルトが、AI ロードマップを遅くすることなくすべてのツール呼び出しを管理するのにどのように役立つかを示します。
MCPセキュリティとは何ですか?
モデル コンテキスト プロトコル は、AI エージェントが外部ツール、データベース、およびサービスと対話できるようにする標準化されたインターフェイスです。MCP セキュリティとは、エージェントが MCP サーバーを 検出、接続、および実行 する方法を管理する制御とリスクを指します。これらのセキュリティリスクは、開発ライフサイクル全体に及び、以下が含まれます。
- サプライチェーン:サーバーのパッケージ化、署名、バージョン管理、承認の方法。
- ランタイムの分離: ホストとコンテナーでの実行方法、CPU/メモリ/ネットワークの制限。
- 仲介型アクセス: 通話がリアルタイムで仲介、ログに記録、ブロック、または変換される方法。
- クライアントの信頼: 特定の IDE/エージェントが表示および使用できるツール。
MCPセキュリティが重要な理由
AI エージェントが「コード」と「ランタイム」の間の境界線を曖昧にするため、MCP ワークフローのセキュリティ保護はこれまで以上に重要になっています。プロンプトまたはツールの説明によって、コード・リリースなしでシステムの機能が変更される場合があります。
これは、セキュリティプラクティスが、 エージェントとツールの相互作用よりも静的分析からポリシーまで、レイヤーを上に進める必要があることを意味します。Docker は、そのポリシーをゲートウェイに体系化し、日常の開発者にとって安全なデフォルトを実用的にします。
Docker のアプローチは、コンテナ化された実行、ポリシーを適用する MCP ゲートウェイ 、およびチームがエージェントができることを標準化するのに役立つ厳選された MCP カタログとツールキット を通じて、MCP を 簡単 かつ 安全 にすることです。エージェントを使用して構築している場合、このガイドは、リスク、従来のツールが不十分な理由、および Docker が AI ロードマップを遅くすることなく爆発半径を縮小する方法を理解するのに役立ちます。
MCP セキュリティリスクの理解
MCP リスクは開発ライフサイクル全体でさまざまな形で現れる可能性がありますが、通常は特定のカテゴリに分類されます。以下のセクションでは、これらのリスクが実際のワークフローでどのように表面化するか、その影響、チームの速度を低下させることなく軽減する実用的なガードレールに焦点を当てます。
設定ミスと弱いデフォルト
- 広範な権限または永続的な状態でホスト上でサーバーを直接実行します。
- ツールからパブリック インターネットへの無制限のネットワーク出力。
- クライアント構成の未検証のカタログ/レジストリにより、エージェントが未知のツールにさらされます。
- ツール呼び出しの監査証跡がなく、調査や対応が困難です。
インパクト: 横方向の移動、データの流出、再現不可能な動作。
緩和: コンテナ化の活用、リソースとネットワークの制限の適用、承認されたツールの許可リストの維持、通話ログの一元的なキャプチャなど、 MCP サーバーのベスト プラクティス に常に従ってください。
悪意のあるサーバーまたは侵害されたサーバー (サプライ チェーン)
- タイポスクワッティング/ポイズニングされたイメージ または署名されていないビルド。
- 隠れた副作用 や、エージェントを危険な行動に駆り立てるツールメタデータの変更。
インパクト: 秘密の行動変更、資格情報の盗難、永続的なアクセス。
緩和: 署名の検証、バージョン/ダイジェストのピン留め、 MCP Catalog & Toolkit などの厳選されたソースからの取得を要求します。
シークレット管理の失敗
- 環境変数、プロンプト、またはツール引数のプレーンテキスト資格情報。
- ツール出力またはモデル補完による漏れ。
インパクト: アカウントの乗っ取り、データ損失。
緩和: マネージドシークレットを使用し、プロンプトの露出を最小限に抑え、ブローカーで機密値を編集またはブロックします。
迅速な注入と工具中毒
- プロンプトインジェクション:敵対的なコンテンツは、データを盗み出したり、危険なツールを呼び出したりするようにモデルに指示します。
- ツールポイズニング/シャドウイング:誤解を招くツールの説明や、エージェントを操縦する予期しないデフォルト。
インパクト: エージェントは自信を持って間違ったことをします。
緩和: 厳密なツール許可リスト、通話前/通話後のインターセプター、およびゲートウェイでの出力フィルタリング。DockerのMCPゲートウェイは、 アクティブなセキュリティ機能 (署名チェック、通話ログ、シークレットおよびネットワーク制御、インターセプター)を提供します。
MCPセキュリティが難しい理由は何ですか?
- 動的で非決定的な動作: 同じプロンプトでも、異なるツール呼び出しにつながる可能性があります。
- 命令とデータのあいまいさ: LLM は、コンテンツ (ツール ドキュメントを含む) を指示として扱うことができます。
- 拡大し、変化する攻撃対象領域:新しいツールごとに、エージェントが即座にできることが拡張されます。
- 従来のAppSecのギャップ:静的分析ツールでは、エージェントツールの呼び出しやMCPセマンティクスは認識されません。エージェントとツールの間の仲介が必要なのは、より良いプロンプトだけでなくです。
開発者への影響: エージェントとツールの境界に存在し、何が実行されるかを検証し、何が許可されているかを仲介し、何が起こったかを記録するガードレールが必要です。
MCP サーバーのセキュリティ上の懸念を防止および軽減する方法
このプラクティショナーのチェックリストを使用して、床を上げます。
- すべてのMCPサーバーをコンテナ化する
サーバーは、 CPU/メモリの上限 と読み取り専用のファイルシステムを備えたコンテナー(ホスト上ではない)で実行します。各サーバーは、必要な最小限の権限を持つ信頼できないコードとして扱います。
役立つ理由: 爆発半径を制限し、動作を再現可能にします。 - ゲートウェイ (ブローカー) での適用を一元化する
クライアント (IDE/エージェント) とサーバーの間に ポリシー適用ゲートウェイ を配置します。次の目的で使用します。- サーバーを実行する前に 署名 を確認します。
- ツールの許可リストを維持します (承認されたサーバーのみが検出可能です)。
- ネットワーク エグレス制御とシークレット編集を適用します。
- 監査とインシデント対応のための要求/応答をログに記録します。
- シークレットをエンドツーエンドで管理する
シークレットを管理対象システムに保管します。.env を避けるファイル。有効期間の短いトークンを優先します。プロンプトとツール出力をサニタイズして、露出を減らします。 - プロンプトレイヤーの防御
呼び出し前インターセプター (引数/型チェック、安全分類子) と呼び出し後インターセプター (編集、PII スクラブ) を使用します。厳密なツールスコーピングと組み合わせて、即時注入ブラスト半径を縮小します。 - サプライチェーンの強化
キュレーションされたソース ( MCP Catalog & Toolkit など) からサーバーをプルし、署名を要求し、不変バージョンに固定します。 - モニターとリハーサル
異常なツールシーケンス(突然の資格情報アクセスなど)を警告し、卓上演習を実行してトークンをローテーションし、アクセスを取り消します。
DockerがMCPセキュリティを実用的にする方法
MCP セキュリティを理論から実践に変えるには、エージェントがツールと出会う場所にガードレールを設け、信頼できるサーバーをエージェント ワークフローに簡単に導入できるようにすることを意味します。Docker の MCP スタックは、Docker Gateway がすべての呼び出しにポリシーと可観測性を適用し、Docker MCP Catalog & Toolkit は、チームが安全に使用できるサーバーをキュレーション、検証、バージョン管理します。
Docker MCP ゲートウェイ: 適用ポイント
ゲートウェイはクライアントとサーバーの間に位置し、すべてのツール呼び出しに 検証、ポリシー、および可観測性 を提供します。署名検証、通話ログ、シークレットおよびネットワーク制御、事前/事後インターセプターなどのアクティブなセキュリティ対策をサポートしているため、危険なアクションがシステムに到達する前にブロックまたは変換できます。
詳細については、「 Docker MCP Gateway: Unified, Secure Infrastructure for Agentic AI」 および「 Gateway Active Security 」のドキュメントを参照してください。
Docker MCP カタログとツールキット: キュレーションと利便性
MCP Catalog & Toolkit を使用して、組織が信頼するサーバーを標準化します。このカタログは、サプライチェーンのリスク(パブリッシャーの検証、バージョン管理、出所)を軽減し、開発者が承認されたツールをワークフローに簡単に取り込むことができるようにします。150+ 厳選された MCP サーバーの選択肢が増えているため、MCP カタログは MCP を使い始めるための安全で簡単な方法です。
Docker が AI 開発にどのように役立つかについて、より広い視野をお探しですか?Docker for AI をチェックしてください。
すべてをまとめる: 実践的なフロー
- カタログからサーバーを選択し 、ダイジェストでピン留めします。
- サーバーをゲートウェイに登録して 、クライアントに承認されたツールのみが表示されるようにします。
- アクティブセキュリティの有効化:署名の検証、すべての通話のログ記録、シークレットの編集/拒否、およびエグレスの制限。
- 事前/事後インターセプターの追加: 引数の検証 (前)、出力の編集/正規化 (後)。
- 監視と調整: 新しいツールの導入に応じて、通話ログの確認、異常のアラート、シークレットのローテーション、許可リストの更新を行います。
結論
MCPは、強力なエージェントワークフローを解き放ちますが、迅速な注入からツールポイズニング、サプライチェーンの改ざんまで、新しいクラスのリスクも導入します。MCP セキュリティは、プロンプトを改善するだけではありません。 これは、安全なパッケージ化、検証済みの配布、およびポリシー付きの仲介型ランタイムです。
キーテイクアウト
- MCP は、単なる SDK ではなく、 管理されたツールチェーンとして扱います。
- エージェントとツールの間に ポリシーゲートウェイ を配置して、検証、仲介、監視を行います。
- MCP Catalog & Toolkit からサーバーをプルし、バージョン/ダイジェストをピン留めします。
- シグネチャチェック、インターセプター、ロギング、シークレット/ネットワーク制御 などの アクティブなセキュリティ 機能を使用して、爆発範囲を縮小します。
さらに詳しく
MCP カタログを参照: 200+ コンテナ化されたセキュリティ強化された MCP サーバーを検出する
Docker Desktop で MCP Toolkit をダウンロードする: 安全な資格情報管理とコンテナーの分離にすぐにアクセスできます
サーバーを送信する: 安全でコンテナ化された MCP エコシステムの構築を支援します。詳細については、 提出ガイドラインを確認してください 。
進捗状況をフォローする: 最新のセキュリティ アップデートと脅威インテリジェンスを入手するための リポジトリにスターを付け ます