Connect with us

サイバーセキュリティ

6つのベストプラクティス:セキュアなMCPサーバーの構築

mm

AnthropicがModel Context Protocolを2024年後半にリリースして以来、採用は急速に増加し、多くの企業が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キー、その他の機密パターンの送信を検出してブロックするように構成します。

プロンプト、ツールの応答、監査ログで個人情報を自動的に識別してマスクするツールも使用します。また、構造化されたデータベースフィールド、構造化されていないテキスト、画像コンテンツを含むさまざまな形式でPIIを検出できるソリューションを検討します。OCRまたはNLPなどの高度な技術を使用します。

依存関係をセキュアに管理する

MCPエコシステムの急速な成長により、潜在的に信頼できないバイナリの「法のない土地」が生まれました。コミュニティによって公開されたサーバーは、バックドアが開けられたり、メンテナンスが不十分であったり、放棄されたりする可能性があります。検証せずに依存関係をインストールすると、潜在的に悪意のあるコードを実行するリスクがあります。

デジタル署名とチェックサムを使用して、コードが改ざんされていないことを確認する厳格な依存関係管理を実装します。さらに、セキュリティのベストプラクティスに従い、認証チェックコードの再利用、包括的なテストの記述、静的アプリケーションセキュリティテスト(SAST)、動的アプリケーションセキュリティテスト(DAST)、およびソフトウェアコンポジション分析(SCA)などの自動ツールを使用して、悪用される前に脆弱性を特定します。

各ツールを徹底的にテストする

ダイレクトインジェクション攻撃では、ツールの呼び出しプロンプトに悪意のあるコマンドが挿入されますが、間接攻撃はより微妙で、潜在的により危険です。攻撃者は、LLMプロンプトに含まれるツールの説明またはメタデータに悪意のある命令を埋め込むことができます。

すべてのツールは、セキュリティ専門家によるレビューを組み合わせた徹底的なテストプロセスを経て、展開前に承認される必要があります。システムプロンプトとユーザー入力の明確な分離、ツールメタデータとユーザープロンプトの両方で潜在的な悪意のある命令を検出できる自動検出システムなど、複数の防御対策を実装します。

セキュリティインシデントを積極的に監視する

基礎的なコントロールを超えて、チームは、ツールの呼び出し、ユーザーのアクティビティパターン、送信URLのアクセスパターンを監視するための包括的なセキュリティツールキットを活用して、セキュリティインシデントをエスカレートする前に検出します。

自動検出システムを展開することで、ツールの使用における異常なパターン、予期せぬデータアクセスの試み、または潜在的にシステムが侵害されたことを示す可能性のある異常なネットワークトラフィックを特定できます。さらに、言語モデルの推論と出力を追跡するために一貫したログを保持することは、予期せぬアクションを追跡する上で非常に重要です。

MCPの最大の効果を発揮する

MCPの力は、AIアシスタントを完全にプログラム可能なエージェントに変える能力にあります。しかし、その同じ力は、同等の洗練されたセキュリティコントロールを必要とします。

解決策は、エキゾチックなものではありません。新しいアーキテクチャパターンに適用された既存のセキュリティプラクティスの延長です。MCPサーバーをセキュアにするために適応できる、すでに使用している可能性のあるデータロス防止ソフトウェア、PIIレダクタ、および組み込みのパーミッション管理システムです。

これらの脆弱性に対処する組織は、MCPの全ポテンシャルを安全に解放することになります。

ギル・ファイグは、Mergeの共同創設者兼CTOです。Mergeは、統一APIプラットフォームのリーダーです。以前、ギルはUntappedのエンジニアリング担当者であり、WealthfrontとLinkedInでソフトウェアエンジニアとして働きました。コロンビア大学の卒業生であり、ニューヨーク市で生活し、仕事をしています。