どの機能構成が高リスクと結びつきやすいか: 2,867件のMCPサーバー観測
2,867の固有MCPサーバーを分析した結果、動的コード実行機能と安全でないネットワーク公開設定が最も高いBLOCK率を示した。複数の高リスク機能が重なると、BLOCK率がさらに上がる傾向が見られた。
用語
| 用語 | 意味 |
|---|---|
| 機能構成 | スキャンで観測されたサーバーの機能のまとまり |
| 固有サーバー | 同一サーバーへの複数回スキャンを正規化して重複を除いた単位 |
| BLOCK率 | その機能構成を持つサーバーのうち、BLOCK判定になった比率 |
| 共起 | 2つ以上の機能が同じサーバーで同時に観測されること |
リード
MCPサーバーのリスクを考える際、重要なのは「何という名前のサーバーか」よりも「どのような機能を持っているか」である。ファイル操作、外部送信、動的コード実行、外部コマンド実行といった機能は、それぞれ異なる攻撃面を作る。
本稿では、2,867の固有MCPサーバーを対象に、11種類の公開向け機能分類と PASS / WARN / BLOCK 判定の関係を整理した。目的は、内部分類を見せることではなく、どの機能構成が高リスクと結びつきやすいかを読者に伝えることである。
Key Findings
- 安全でないネットワーク公開設定を持つ71サーバーのうち、67サーバーがBLOCKだった。BLOCK率は94.4%。
- 動的コード実行機能を持つ134サーバーのうち、104サーバーがBLOCKだった。BLOCK率は77.6%。
- 2,867サーバーのうち、**明確な高リスク機能が観測されたサーバーは484件(16.9%)**だった。
- 高リスク機能が複数重なると、BLOCK率はさらに上がる。今回のデータでは、13の機能ペアでBLOCK率100%が観測された。
- 高リスク機能が直接観測されなかったサーバーでも、WARNは多く、「高リスク機能が見えない = 低リスク」ではない。
データセット
| 項目 | 値 |
|---|---|
| 分析対象 | 2,867固有MCPサーバー |
| 観測期間 | 2026年4月 |
| 公開向け機能分類 | 11種類 |
| 高リスク機能が観測されたサーバー | 484件(16.9%) |
| 高リスク機能が直接観測されなかったサーバー | 2,383件(83.1%) |
11種類の公開向け機能分類
| 機能分類 | 内容 | サーバー数 | 全体比 |
|---|---|---|---|
| ローカルファイル読み取り | ローカルファイルの参照 | 144 | 5.0% |
| 外部データ取得 | Webや外部APIからの取得 | 144 | 5.0% |
| 動的コード実行 | 実行時にコードを評価・実行 | 134 | 4.7% |
| 外部送信 | 外部サービスへのデータ送信 | 88 | 3.1% |
| 安全でないネットワーク公開設定 | TLS検証不足や危険なバインド設定 | 71 | 2.5% |
| ローカルファイル書き込み | ファイル生成・更新 | 68 | 2.4% |
| 外部コマンド実行 | シェルや外部プロセスの起動 | 61 | 2.1% |
| サーバー間リレー | 他サーバーや別系統への呼び出し | 38 | 1.3% |
| ローカルファイル削除 | ファイル削除 | 27 | 0.9% |
| 大量リソース消費 | 高負荷処理やループ的消費 | 16 | 0.6% |
| 広いOAuth権限要求 | 機能に比べて広すぎる認可要求 | 2 | 0.1% |
機能別のBLOCK率
| 機能分類 | サーバー数 | PASS | WARN | BLOCK | BLOCK率 |
|---|---|---|---|---|---|
| 安全でないネットワーク公開設定 | 71 | 0 | 4 | 67 | 94.4% |
| 動的コード実行 | 134 | 26 | 4 | 104 | 77.6% |
| ローカルファイル削除 | 27 | 7 | 2 | 18 | 66.7% |
| 外部コマンド実行 | 61 | 20 | 1 | 40 | 65.6% |
| 大量リソース消費 | 16 | 6 | 2 | 8 | 50.0% |
| 外部送信 | 88 | 23 | 22 | 43 | 48.9% |
| ローカルファイル書き込み | 68 | 22 | 13 | 33 | 48.5% |
| サーバー間リレー | 38 | 12 | 10 | 16 | 42.1% |
| 外部データ取得 | 144 | 55 | 33 | 56 | 38.9% |
| ローカルファイル読み取り | 144 | 54 | 36 | 54 | 37.5% |
何が特に危険か
1. 安全でないネットワーク公開設定
今回のデータでは、危険な公開設定が観測された71サーバーのうち94.4%がBLOCKだった。
この種の問題は、単独でも強いリスク要因だが、他の操作機能と重なるとさらに危険になる。
2. 動的コード実行
134サーバーのうち77.6%がBLOCKだった。
動的コード実行は、入力処理、権限境界、外部通信、実行結果の扱いが同時に問題になりやすく、MCPサーバーの中でも特に注意が必要な機能である。
3. 読み取り系も無害ではない
ローカルファイル読み取りと外部データ取得のBLOCK率は約4割だった。
他の機能より低く見えても、攻撃面が小さいとは言えない。読み取り機能は、Path Traversal や SSRF の入口になりやすい。
共起するとリスクが上がる組み合わせ
今回のデータでは、13の機能ペアでBLOCK率100%が観測された。代表例は以下。
| 組み合わせ | サーバー数 | BLOCK率 |
|---|---|---|
| 動的コード実行 + 外部コマンド実行 | 9 | 100% |
| 動的コード実行 + ローカルファイル書き込み | 8 | 100% |
| 動的コード実行 + 安全でないネットワーク公開設定 | 9 | 100% |
| 外部コマンド実行 + 外部送信 | 9 | 100% |
| ローカルファイル読み取り + 外部送信 | 18 | 100% |
ここで重要なのは、「単独で危険な機能」よりも「組み合わせで攻撃面がつながる機能」の方が、実務上はさらに厄介だという点である。
高リスク機能が見えないサーバーは安全か
そうではない。
高リスク機能が直接観測されなかった2,383サーバーの判定は次の通りだった。
| 判定 | 件数 | 比率 |
|---|---|---|
| PASS | 615 | 25.8% |
| WARN | 1,718 | 72.1% |
| BLOCK | 47 | 2.0% |
直接的な攻撃面が観測されなくても、出所の不透明さ、権限要求の過大さ、通信設定の不備などで WARN になるケースは多い。
したがって、目立つ高リスク機能がないことは、低リスクの証明ではない。
実務的な読み方
MCPサーバーの選定では、次の順で見るのが実用的である。
- 動的コード実行や外部コマンド実行があるか
- 外部送信やサーバー間リレーがあるか
- 危険な公開設定がないか
- それらが単独か、複数重なっているか
個票を1つずつ精査する前に、この順で絞り込むとレビュー効率が大きく変わる。
限界
- 本稿は公開向けに抽象化した機能分類であり、内部実装そのものを説明するものではない。
- 小さい母数の分類は参考値であり、例えば広いOAuth権限要求は2件のみである。
- BLOCK率100%の組み合わせは今回のデータでの観測結果であり、将来の全データで同じ比率を保証するものではない。
- 3つ以上の機能が重なったときの分析は、今後の別記事で扱う。
まとめ
2,867の固有MCPサーバーを観測した結果、動的コード実行と安全でないネットワーク公開設定が最も強くBLOCKと結びついていた。さらに、高リスク機能が複数重なると、BLOCK率は一段と上がった。
MCPサーバーを評価する際は、「人気かどうか」や「用途が便利かどうか」よりも、まずどの機能が同居しているかを見るべきである。リスクは単一機能より、組み合わせで増幅しやすい。
MCP Guard は、MCPサーバーの実検出データを継続的に蓄積し、機能構成と脅威傾向の関係を追跡している。
