サイバーセキュリティ
MCPサーバーの構築のための6つのベストプラクティス

Anthropicが2024年後半にModel Context Protocolをリリースして以来、採用は急速に増加し、多くの企業がAIエージェントがデータにアクセスできるようにするために独自のMCPサーバーを立ち上げています。
これはAIの機能を拡大するために有益ですが、同時にこれらの企業を重大なセキュリティ脆弱性にさらすことにもなります。
適切な予防措置がない場合、MCPサーバーはメール、CRM、ファイルストレージツール、他のアプリケーション内の機密データに全面的なアクセスを許す可能性があります。さらに、攻撃的なセキュリティ対策を講じた場合でも、悪意のある攻撃者はプロンプトインジェクション攻撃を使用して認証情報を取得する可能性があります。
セキュリティインシデントが発生し始めています。例えば、GitHubは最近、MCPの脆弱性を経験し、プライベートリポジトリが公開されました。
私たちは、直接的な経験から、どのようにしてセキュリティ脅威に耐えられるMCPサーバーを構築するかを学びました。
そのため、MCPサーバーの構築と管理のための私のトップティップを以下に示します。
ハードブロックとパーミッション管理でセキュリティを確保する
MCPの最も重要なセキュリティ原則は、ハードブロックが常にエージェントに与えられたプロンプトやその他のソフトコントロールを上書きするということです。AIエージェントはツールを呼び出すタイミングや送信する入力を決定する柔軟性を持っていますが、ツールの実装またはそれらの前面的位置にあるハードコードされたレイヤーは、ユーザーのアイデンティティが正しく認証されている限り、パーミッションの問題を最終的に防ぎます。
セキュリティを確保するために、拡張機能を厳格なパーミッション管理で構成する必要があります。
これは、APIキーに付与されるパーミッションを管理することから始めます。ツールは静的コードをラップし、セキュリティポリシーを強制できる制御されたインターフェイスを作成する利点があります。これは、エージェントの動作に関係なく機能します。
APIキーをパスワードのように扱う
キーをハードコードするのではなく、コードや設定ファイルからすべての資格情報を環境変数または専用のシークレットマネージャー(例:HashiCorp VaultまたはAWS Secrets Manager)に移動します。
一時的な資格情報は、非常に機密性の高いデータや永久接続が必要ないユースケースに追加のセキュリティ層を提供します。この場合、AWS STSなどのツールは短期間で期限切れになるトークンを生成できます。これにより、潜在的な悪用の時間枠が最小限に抑えられます。ただし、ほとんどの実装では、適切なOAuthまたはトークン更新機能付きの基本認証でこれらの懸念に対処できます。
重要なのは、ツールごとに役割ベースのアクセス制御(RBAC)を実装し、組み込みのパーミッション管理システムを使用することです。各MCP統合に独自の役割を割り当て、必要なパーミッションに厳密にスコープを指定します。GitHubへの読み取りアクセスのみを許可するVaultポリシーは、ルートトークンよりもはるかに安全です。クラウドプロバイダーのネイティブなIdentity and Access Management(IAM)システムは、最小特権アクセスパターンを自動的に強制できます。
DLPおよびPII検出ソフトウェアで機密データを保護する
MCPツールは、組織内で大量の機密データにアクセスできます。適切なコントロールがない場合、これらのツールは顧客のPII、財務記録、または製品に関する機密情報を意図せず公開する可能性があります。
これに対処するために、MCPトラフィックをリアルタイムで検査できるデータロス防止(DLP)ソフトウェアを展開します。DLPルールを、クレジットカード番号、社会保障番号、APIキー、その他の機密パターンの送信を検知してブロックするように構成します。
さらに、プロンプト、ツールの応答、監査ログ内の個人情報を自動的に識別してマスクできるツールを使用する必要があります。構造化されたデータベースフィールド、非構造化テキスト、画像コンテンツ(OCRまたはNLPなどの高度な技術を使用)を含むさまざまな形式のPIIを検出できるソリューションを検討することもできます。
依存関係をセキュアに管理する
MCPエコシステムの急速な成長により、潜在的に信頼できないバイナリの「法less」な状況が生まれました。コミュニティによって公開されたサーバーはバックドアが付いている可能性があり、メンテナンスが不十分であるか、単に放棄されている可能性があります。検証なしに依存関係をインストールすると、悪意のあるコードを実行するリスクがあります。
デジタル署名とチェックサムを使用して、コードが改ざんされていないことを確認する厳格な依存関係管理を実装します。さらに、セキュリティのベストプラクティスに従って、認証チェックコードの再利用、包括的なテストの記述、静的アプリケーションセキュリティテスト(SAST)、動的アプリケーションセキュリティテスト(DAST)、ソフトウェアコンポジション分析(SCA)などの自動ツールを使用して、悪用される前に脆弱性を特定します。
各ツールを徹底的にテストする
直接インジェクション攻撃では、悪意のあるコマンドをツールの呼び出しプロンプトに挿入しますが、間接攻撃はより微妙で、潜在的により危険です。攻撃者は、LLMプロンプトに含まれるツールの説明またはメタデータに悪意のある命令を埋め込むことができます。
すべてのツールは、セキュリティ専門家によるレビューを含む自動テストと組み合わせた徹底的な承認プロセスを経る必要があります。レイヤードディフェンス対策を実装し、重要な操作のための手動検証、システムプロンプトとユーザー入力の明確な分離、およびユーザープロンプトとツールメタデータの両方で潜在的な悪意のある命令を検出できる自動検出システムを提供します。
セキュリティインシデントをプロアクティブに監視する
基礎的なコントロールを超えて、チームはツールの呼び出し、ユーザーのアクティビティパターン、送信URLアクセスパターンを監視するための包括的なセキュリティツールキットを活用して、セキュリティインシデントをエスカレートする前に検出する必要があります。
自動検出システムを展開することで、ツールの使用、予期せぬデータアクセス試行、またはネットワークトラフィックの異常パターンを特定し、潜在的なセキュリティインシデントを検出できます。さらに、言語モデルの推論と出力を追跡するための一貫したログの維持は、予期せぬアクションを追跡する上で非常に重要です。
MCPの最大の活用
MCPの力は、AIアシスタントを完全にプログラム可能なエージェントに変える能力にあります。しかし、その同じ力は、同等の複雑なセキュリティコントロールを必要とします。
解決策はエキゾチックなものではなく、新しいアーキテクチャパターンに適用された既存のセキュリティ実践の延長です。MCPサーバーをセキュアにするために、すでに使用しているデータロス防止ソフトウェア、PIIレダクタ、および組み込みのパーミッション管理システムを適応させることができます。
これらの脆弱性に対処する組織は、MCPの全ポテンシャルを安全に解放することになります。












