MCPサーバーが攻撃面になる日|200,000台のサーバーを揺るがした脆弱性から学ぶ防御設計
「自分が作ったMCPサーバーが、攻撃の踏み台になっている」
それが、現実になりつつある。
2026年4月、セキュリティ研究者チームがAnthropicのMCPに関して驚くべき報告を公表した。MCPのSDK(Python・TypeScript・Java・Rust全対応)に設計レベルの脆弱性があり、7,000台以上の公開サーバー・1億5千万ダウンロード分に影響が及ぶとされた。The Hacker Newsは「AnthropicのMCP設計の欠陥がRCEを可能にし、AIサプライチェーンを脅かす」と報じた
自分もMCPサーバーを実装して本番環境に置いている身として、この報告は他人事ではなかった。
2026年4月、MCPに何が起きたか
OX Securityのチームはこの脆弱性を「AIサプライチェーンの母」と表現した(確認日: 2026年5月9日)。大げさに聞こえるが、中身を見ると納得する。
MCPの設計では、サーバーがAIエージェントに対して「ツールの説明文」を返す仕組みがある。問題は、この説明文が信頼されすぎる点だ。悪意あるMCPサーバーを経由すると、AIエージェントは本来実行しないはずのコマンドを実行させられる可能性がある。
The Registerは「200,000台以上のサーバーがリスクにさらされた」と報じた(確認日: 2026年5月9日)。
自分がAntigravity向けに通知サーバーを作ったのは半年ほど前だ。認証・ツール定義・エラーハンドリングで相当時間を使った。その実装が「攻撃面」として成立しうるとわかったとき、正直焦った。「動いている」と「安全」は別の話だと改めて思い知らされた。
OWASPはこの状況に呼応して「OWASP MCP Top 10」を公開している(確認日: 2026年5月9日)。AIエージェントのリスクが体系化される速度が、実装の速度に追いついてきた。
MCPを狙う3つの攻撃パターン
Palo Alto NetworksのUnit 42チームが、MCP経由の具体的な攻撃ベクターを分析している。整理すると3パターンになる。

ゼロクリックプロンプトインジェクション
Claude Code、Cursor、Windsurf、Gemini-CLIなど主要なAI対応IDEが対象になりうる。攻撃者がGitHubのissueに悪意ある指示を仕込み、AIエージェントがissueを読んだだけで実行させるケースが実証されている。「クリック不要」という部分が怖い。自分が何も操作しなくても、エージェントが代わりに動かされる設計になっている。
ツールポイズニング
MCPサーバーのツール説明文を改ざんし、エージェントを騙して意図しない動作をさせる手法。たとえば「このツールはファイルを読む」と書かれたツールが、実際には外部にデータを送信する実装になっていた場合を考えると分かりやすい。外部パッケージを使っているなら、その説明文を一度も確認していないケースは少なくないはずだ。
STDIO経由のコマンドインジェクション
MCPサーバーの入力処理に古典的な設計ミスが残っていると、コマンドインジェクション(SQLインジェクションに構造が近い)が成立する。Trend Microがこの経路を詳細分析しており、本番のMCPサーバーでも発生しうることを示している。新しい脆弱性ではなく、実装上のミスが原因だという点が重要だ。
自分の環境を確認するチェックリスト
MCPを使っているなら、今日確認したい4点がある。
外部から到達できるMCPサーバーはあるか: ローカルでしか動かないなら攻撃面は限定的。リモートで動かしているなら要確認
ツールの説明文は自分が書いたものか: 外部のMCPパッケージを使っている場合、その説明文の内容を確認したことはあるか
MCPサーバーへの入力をサニタイズしているか: ユーザーからの入力をそのままシェルコマンドに渡していないか
MCPパッケージのソースを確認したか: npmやPyPIから取得するMCPライブラリ、実際のコードを見たことがあるか。2026年2月にはClawHubのスキルマーケットプレイスで341個の悪意あるスキルが発見されている
4つ全部「はい」と言えるなら、今の時点では相当安全側にいる。1つでも「確認していない」があれば、今日中に見直す価値がある。
今日から設定できる防御の第一歩
完璧な対策より、今日1つ動くことを優先する。
MCPサーバーをローカルに閉じる(最優先)
本番用途でなければ、外部に公開しない。localhostのみ受け付ける設定にするだけで攻撃面が大幅に減る。リモートで動かす必然性がないなら、今すぐローカル限定に戻す。
使うMCPパッケージをリストアップする
プロジェクトのMCP設定ファイルを開いて、実際に使っているサーバーを一覧にする。それだけでいい。「把握している」状態を作ることが起点になる。把握できていないものは守れない。
OWASP MCP Top 10を一読する
英語の原文でも5分あれば全体像はつかめる。自分の環境と照らし合わせながら読むと、見落としていたリスクに気づく。チェックリストとして使えるレベルで整理されている。
MCPは便利だ。自分でサーバーを実装してから、できることが一段と増えた。だからこそ、攻撃面としてどう見えるかを知っておく必要がある。便利さと脆弱性は、同じコインの表と裏にある。今日1つ確認してみてほしい。
いいなと思ったら応援しよう!
よろしければ応援お願いします!
今月のClaude に大切に使わせていただきます!
