MCP(Model Context Protocol)を使うと、AIが社内のファイルやチャット、チケット管理、データベースに手を伸ばせるようになる。便利さの裏で、AIにつないだサーバーが新しい入口になる。サーバーを1つ足すたびに、AIが読む文章と、AIにできる操作が増えるからだ。
MCPの仕組みそのものはMCPとはで説明した。ここでは、MCPのセキュリティを導入する側の目で整理する。報告された攻撃と脆弱性、仕様が求めていること、サーバーを入れる前に確かめる8項目の順に並べた。
MCPのセキュリティで何が新しいのか
MCPのサーバーは、使い方によって2つの形がある。利用者のPCの中で動くローカルのサーバーと、ネットワークの向こうにあるリモートのサーバーだ。どちらでも、これまでのSaaS連携と違う点が3つある。
- ローカルのサーバーは、AIの道具と同じPCで動くプログラムだ。仕様のセキュリティの文書は、サンドボックスと同意がなければ、悪意のある起動コマンドで任意のコードが実行されうると書いている
- ツールの説明は、人ではなくモデルが読む。説明に紛れ込んだ指示に、モデルが従ってしまう
- 1つのAIが複数のサーバーを同時に使う。あるサーバーから入った指示で、別のサーバーにある情報を持ち出させることができる
仕様は、ツールは任意のコードの実行にあたるので慎重に扱うよう求め、ツールの振る舞いの説明は、信頼できるサーバーから得たものでない限り信頼しないものとして扱うとしている。つまり、MCPのサーバーを入れることは、外部のプログラムを社内に入れることと同じ重さで考える必要がある。
報告された攻撃と脆弱性
MCPのセキュリティの話が具体的になったのは、2025年に入ってからだ。公開された報告と脆弱性のうち、導入する側が知っておきたいものを表にした。
| 公開 | 名前 | 何が起きるか | 出どころ |
|---|---|---|---|
| 2025年4月1日 | Tool Poisoning Attack | ツールの説明に、利用者には見えずモデルには見える指示を仕込み、AIを操る | Invariant Labsの報告 |
| 2025年4月1日 | rug pull と shadowing | 承認したあとでツールの説明を書き換える。別の信頼済みのサーバーにある情報を持ち出させる | 同じ報告 |
| 2025年5月26日 | GitHubのMCPサーバーを使うエージェントの乗っ取り | 悪意のあるIssueを読ませて、非公開のリポジトリの情報を漏らさせる | Invariant Labsの報告 |
| 2025年6月13日 | CVE-2025-49596(MCP Inspector) | 開発用の道具の内部に認証がなく、外からのリクエストでコマンドを起動できた。0.14.1で修正 | GitHubのセキュリティアドバイザリ |
| 2025年7月9日 | CVE-2025-6514(mcp-remote) | 信頼できないリモートのサーバーにつなぐと、細工されたURLでPCのOSコマンドが実行される。0.1.16で修正 | NVD、JFrogの報告 |
GitHubの例について、報告した側は、サーバーのコードの欠陥ではなく、エージェントのシステムの作りの問題だと書いている。公式のサーバーを使い、サーバーにバグがなくても、AIが外から来た文章を読み、同じ権限で非公開の情報に触れられる限り、同じことは起こりうる。
2つのCVEは、どちらも深刻度が「緊急」と評価された。NVDに載っているCVSSの値は、mcp-remoteが9.6、MCP Inspectorが9.4だ。JFrogは、mcp-remoteの件を、信頼できないリモートのMCPサーバーにつないだときに、利用者のPCで完全なリモートコード実行が現実の条件で成立した初めての例だと説明している。サーバーだけでなく、つなぐための道具も点検の対象になる。
モデルが外の文章に従ってしまう仕組みはプロンプトインジェクションとはで書いた。Tool Poisoningは、その入口がツールの説明になったものだと私は見ている。
仕様が求めていること
MCPの仕様は日付で版を呼ぶ。2026年10月時点の最新は2026-07-28版だ。仕様はまず、MCP自体はセキュリティの原則をプロトコルのレベルで強制できないとし、同意と認可の仕組みは実装する側が作るよう求めている。そのうえで、導入する側に関わる要求は次のとおりだ。
| 対象 | 仕様の要求 | 導入する側の読み方 |
|---|---|---|
| 同意 | 利用者が、すべてのデータへのアクセスと操作に明示的に同意し、理解していること | どのサーバーが何をできるかを、使う人が分かる画面にする |
| ツールの呼び出し | ツールの呼び出しを人が拒否できるようにする。機微な操作の前に確認を求める | 送信・削除・書き込みの前に確認を挟む |
| ツールの説明 | annotationsのような説明は、信頼できるサーバーのものでない限り信頼しない | 説明の文面を権限の根拠にしない |
| トークン | 自分宛てに発行されていないトークンを受け取ってはならない(token passthroughの禁止) | サーバーに利用者のトークンを素通しさせない |
| 認可 | OAuth 2.1にもとづく。クライアントはRFC 8707のResource Indicatorsで宛先のサーバーを指定する | 外部につなぐリモートのサーバーは、この形の認可に対応しているかを見る |
| ローカルのサーバー | 簡単設定に対応するクライアントは、実行するコマンドを省略せずに見せ、明示的な承認を得る | 起動コマンドと引数を読んでから入れる |
| 権限の範囲 | 最小のスコープから始め、必要なときに段階的に広げる | 読み取りだけで始める |
もう1つ、サーバーの上で動くクライアントには、SSRFへの備えが求められている。悪意のあるサーバーは、認可の手続きで使うURLに社内のアドレスやクラウドのメタデータのアドレスを入れて、クライアントに内部へのリクエストを送らせることができるからだ。社内の仕組みからリモートのサーバーにつなぐときは、つなぎに行く先を制限しておく。
サーバーを入れる前に確かめる8項目
仕様の要求と報告された事例をもとに、社内でMCPサーバーを使う前に確かめることを8項目にまとめた。並びと線引きは私の整理だ。
| # | 確かめること | 見るところ | 止める目安 |
|---|---|---|---|
| 1 | 誰が作ったサーバーか | 提供元、ソースコードの公開場所、更新の履歴 | 提供元が分からない。公式を名乗るが公式の案内から辿れない |
| 2 | 何で起動するか | ローカルなら起動コマンドと引数、取ってくるパッケージ | 起動のたびに最新版を取りに行く設定で、版を固定できない |
| 3 | どのツールを出すか | ツールの一覧と説明の全文 | 説明に、ほかのツールの使い方や、利用者に見せない指示が書いてある |
| 4 | 説明が変わったら気づけるか | 承認したときのツールの一覧と説明を記録しておく | 承認後に説明が変わっても、何も知らされない |
| 5 | 渡す権限はどこまでか | トークンのスコープ、つなぐアカウント | 管理者のアカウントや、全部のリポジトリに触れるトークンを渡す |
| 6 | どの操作に人の確認を挟むか | 送信、削除、支払い、外部への書き込み | 書き込みのツールを確認なしで呼べる |
| 7 | 同じAIに何を同時につなぐか | 外部の文章を読むサーバーと、社内の機密に触れるサーバーの組み合わせ | 外部の文章を読むサーバーと、機密を外に出せるサーバーが同じ会話に並ぶ |
| 8 | 記録が残るか | 誰が、どのツールを、どの入力で呼んだかのログ | 呼び出しの記録がどこにも残らない |
7が見落とされやすい。1つ1つのサーバーが安全でも、外部の文章を読むものと、社内の情報を外に出せるものを同時につなぐと、Tool PoisoningやGitHubの例と同じ形の持ち出しが成り立つ。私の見方では、組み合わせで考えるのがMCPのセキュリティの中心だ。権限の切り方はAIエージェントのセキュリティで詳しく書いた。
入れたあとに続けること
確かめて入れたら終わり、ではない。サーバーも、つなぐ道具も更新される。2つのCVEはどちらも、修正版に上げれば塞がる種類のものだった。使っているサーバーと道具の版を一覧にし、脆弱性の情報が出たら上げられるようにしておく。
社員が自分の判断で入れたサーバーも探す必要がある。OWASPは、MCPのリスクをまとめたMCP Top 10をベータ版として公開していて、組織の正式な管理の外で動くMCPサーバーをShadow MCP Serversとして挙げている。使ってよいサーバーの一覧を作り、一覧にないものを定期的に探す。
公式のMCP Registryは、2025年9月8日にプレビューとして公開された。公開されているサーバーを探しやすくする目録だ。私の見方では、目録に載っていることは探すときの手がかりにはなるが、上の8項目の代わりにはならない。
LLMを組み込んだアプリ全体のリスクの一覧はOWASP Top 10 for LLMにまとめた。業務の現場でAIとシステムをつなぎ、本番で動くまで直し続ける職種はFDEとは?Forward Deployed Engineerの意味と仕事内容で説明している。社内で使われているAIとつないでいる先を洗い出し、権限と設定を点検する診断は、AI利用セキュリティ診断で紹介している。