MCP セキュリティ - MCP のセキュリティリスク
Model Context Protocol(MCP)サーバー経由で LLM に外部ツールやデータを提供する仕組みにおけるセキュリティリスク。悪意あるツールの実行や過剰な権限付与による情報漏洩が問題となる。
概念図
MCP とは
Model Context Protocol(MCP)は、LLM アプリケーションが外部のツールやデータソースに接続するための標準プロトコル。
MCP サーバーが「ツール」「リソース」「プロンプト」を公開し、LLM がこれらを呼び出すことで、ファイル操作・DB アクセス・API 呼び出し等の機能を実現する。
データの流れは「ユーザー → LLM アプリ(MCP クライアント) → MCP サーバー → 外部システム」となる。
主なリスク
MCP アーキテクチャにおける主なセキュリティリスクを以下に整理する。
| リスク | 概要 |
|---|---|
| 悪意ある MCP サーバー | 信頼できないサーバーを接続すると、ツール呼び出し時に意図しないコマンド実行やデータ窃取が発生する |
| ツールポイズニング | ツールの説明文に隠し指示を埋め込み、LLM の挙動を操作する(間接プロンプトインジェクションの一種) |
| 過剰な権限付与 | MCP サーバーに必要以上の権限(全ファイルアクセス、任意コマンド実行等)を与えると、攻撃の影響範囲が拡大する |
| 認証・認可の欠如 | MCP サーバーが認証なしで公開されている場合、第三者がツールを不正利用できる |
対策
MCP のセキュリティリスクに対する主な対策を以下に整理する。
| 対策 | 概要 |
|---|---|
| 信頼できるサーバーのみ接続 | 公式・検証済みの MCP サーバーのみを利用し、サードパーティ製は十分に監査する |
| 最小権限の原則 | 各 MCP サーバーに必要最低限の権限のみを付与する |
| ツール呼び出しの承認フロー | 機密性の高い操作(ファイル書き込み、外部 API 呼び出し等)には人間の承認を必須にする |
| ツール説明文の検証 | ツールの description に不審な指示が含まれていないか定期的に確認する |
| ログ・監視 | MCP サーバーのツール呼び出しログを記録し、異常なパターンを検知する |
