OWASP GenAI Security Project

安全なMCPサーバー開発のための実践ガイド

Version 1.0 | 2026年2月

目次

導入と背景

組織がAI連携を保護するためには、自社のMCP(Model Context Protocol)サーバーを安全に保つことが不可欠です。これらのサーバーは、AIアシスタントと外部ツール、あるいはデータソースを繋ぐ「架け橋」として機能します。そのため、セキュリティ上の欠陥があれば、攻撃者がAIアシスタントを操作し、機密情報を盗み出したり、下流のシステムに甚大な被害を与えたりする可能性があります。

ポイント: 従来のAPIとは異なり、MCPサーバーはユーザーから委任された権限で動作し、動的なツールベースのアーキテクチャを持ち、複数のツール呼び出しを連鎖(チェーン)させることができるため、単一の脆弱性による影響が増幅されやすい性質があります。

本ガイドは、安全なMCPサーバーを設計・実装するためのベストプラクティスを提供します。対象は、MCPサーバー開発を担当するソフトウェアアーキテクト、プラットフォームエンジニア、開発チームです。初期のアーキテクチャ設計から本番デプロイに至るまで適用すべき、不可欠なセキュリティ管理策と設計上の判断について解説します。

現在の脆弱性の状況

AIシステムの普及に伴い、MCPサーバーを標的とした攻撃手法も進化しています。主なリスクとしては、プロンプトインジェクションを介したツールの不正実行、認可の不備によるデータ漏洩、およびリソースの枯渇攻撃などが挙げられます。

1. 安全なMCPアーキテクチャ

セキュリティを考慮したアーキテクチャ設計の原則は以下の通りです:

2. 安全なツール設計

エンドユーザーを危険にさらさないためのツール設計ガイドライン:

ライセンスと利用について

本ドキュメントは クリエイティブ・コモンズ CC BY-SA 4.0 の下でライセンスされています。
表示(Attribution)および継承(ShareAlike)の条件に従い、自由に共有・翻案することが可能です。 詳細は Creative Commons を参照してください。

3. データバリデーションとリソース管理

MCPサーバーは、LLMからの動的な入力を受け取るため、厳格な入力検証が必要です。

4. プロンプトインジェクション対策

LLMが外部からの悪意ある指示に従ってしまう「プロンプトインジェクション」は、MCPにおいて最大の脅威の一つです。

5. 認証と認可

MCPサーバーへのアクセス制御は、標準的なWebサービスと同等かそれ以上の厳格さが求められます。

6. 安全なデプロイとアップデート

7. ガバナンス

組織全体でのMCP利用ポリシーを策定し、シャドーAI(未承認のMCPサーバー利用)を防止するガバナンス体制を構築します。

8. ツールと継続的検証

開発サイクルにセキュリティスキャン(DAST/SAST)を組み込み、定期的なペネトレーションテストを実施します。

MCPセキュリティ最小基準(レビューチェックリスト)

項目要件
最小権限ツールを実行するユーザー/プロセスは、必要最低限の権限セットか?
入力検証すべての入力引数はスキーマ検証されているか?
承認フロー破壊的な操作(書き込み/削除)の前に人間が承認するフローがあるか?
ログ出力すべての実行ログが収集され、機密情報が含まれていないか?
エラー処理エラーメッセージに内部パスやスタックトレースが漏洩していないか?