MCPの危険性
MCP サーバーは「読み取り専用」と記載されていても、実装側で権限が拡張されている場合があります。
実運用では、Prompt Injection、Rug Pull(更新後の挙動改変)、SSRF などが混在し、キーワード一致だけでは見抜けません。
Abcas は「登録時の検証」「公開Registryの継続更新」「運用中の変化検知」を分離せず、継続監視で扱います。
実際に多い攻撃シナリオ
PleaseFix Attack(ゼロクリック実行)
説明文では安全でも、実装側で自動実行が仕込まれているケースを宣言+コードの差分で検出します。
Rug Pull(更新後の事後改変)
登録時に安全だったサーバーが更新で危険化した場合、差分検知と再スキャンで検出します。
SSRF(内部ネットワーク侵入)
内部IP・localhost向けアクセスを静的/実行時ポリシーで検出し、危険呼び出しを遮断します。
Abcas MCP Guard の検出技術
19 攻撃パターンを 179 canonical検査項目と 540 種類の V795 source-first signal値で監視します。判定は宣言・コード・実行時の 3 レイヤーを組み合わせます。
3レイヤー検出
- Layer 1(宣言): Tool schema、権限、説明文の矛盾を確認
- Layer 2(コード): AST / keyword / provenance 解析で危険操作を抽出
- Layer 3(実行時): 対応するローカルstdio設定で、上流起動後の特定済みツール呼び出しをLocal Agentが拒否
179 canonical検査項目のカテゴリ内訳
| 検査カテゴリ | 項目数 | 目的 |
|---|---|---|
| Operation Tags | 35 | 危険操作の即時タグ付け |
| AST / Static | 29 | 実装コードからの危険挙動抽出 |
| Keyword / Heuristic | 22 | 攻撃キーワードと異常パターン |
| Provenance / Trust | 24 | 提供元の信頼性と衝突検知 |
| Schema / Permission | 26 | 宣言権限と引数設計の検証 |
| Runtime Proxy Policy | 19 | 特定済みツール呼び出しの拒否判定 |
| Drift / History | 24 | 更新差分・再評価の追跡 |
19 攻撃パターン × 179 canonical checks + 540 V795 signals
19 threat family と 179 seed check をtaxonomyとして管理し、V795 production profileでは 540 種類のsource-first signal値を集計します。
| 攻撃パターン | 検出レイヤー | 主な検査観点 |
|---|---|---|
| Tool Poisoning | 宣言 + Provenance | 出自、署名、提供元整合 |
| Tool Name Collision | 宣言 + DB照合 | 同名衝突、乗っ取り候補 |
| Prompt Injection | 宣言 + 実行時 | 危険プロンプト、越権要求 |
| Supply Chain | Provenance + 依存解析 | パッケージ出自、既知脆弱性 |
| Argument Injection | Schema + 実行時 | コマンド連結、危険引数 |
| Path Traversal | 宣言 + 実行時 | ../・絶対パス逸脱 |
| Shell RCE | AST + 実行時 | exec/eval/subprocess 系 |
| Function Hijacking | 宣言 + 実行時 | TOCTOU、呼び出し差し替え |
| Insecure Plugin Design | 宣言 | 権限過剰、責務逸脱 |
| SSRF | コード + 実行時 | 内部ネットワーク宛アクセス |
| MITM | コード + 実行時 | TLS検証無効化、平文経路 |
| Unicode Injection | 宣言 + キーワード | 不可視文字・同形異字 |
| Data Exfiltration | コード + 実行時 | 外部送信チェーン、転送先 |
| OAuth Scope Abuse | 宣言 + コード | scope 過剰要求 |
| PleaseFix Attack | 宣言 + AST | 自動実行トリガー |
| Rug Pull | Drift + 再スキャン | 更新差分、挙動変化 |
| Clawdrain | 実行時 | 過剰呼び出し、コスト爆発 |
| Indirect Theft | コード + 実行時 | 他MCP経由の窃取経路 |
| DNS Rebinding | コード + 実行時 | 解決先切替、localhost侵入 |
クイックスタート
Freeの全件簡易検索からProの検査根拠、任意のローカル監視までを4段階で確認します。
Freeで全件簡易検索
ログイン後、MCPサーバーDBで名称、配布元、分類、検査結果、同期日時を検索します。
Free
検査結果を確認
安全、要注意、高リスク、利用禁止の利用判断と、別枠の判定不能を確認します。
Free
Proで検査根拠を確認
検出された権限、出所確認、外部接続、更新差分を確認し、必要に応じてCSV/JSONを出力します。
Pro
ローカル監視(任意)
Proに含まれるLocal Agentを必要な端末だけへ導入し、対応するローカルstdio設定で上流起動後の特定済みツール呼び出しを拒否します。
Pro・任意
検査結果と進行状態
検査結果の5種類と、検査が完了していないときの進行状態は別のものです。
検査結果の見方
安全・要注意・高リスク・利用禁止は、利用判断の厳しさの順に並んでいます。判定不能は危険度ではなく、検査に必要な情報が不足している状態です。
検査で問題は確認されませんでした。
注意が必要な項目が確認されました。
高リスクの動作、権限、または脆弱性が確認されました。必須の技術的制限を強制し、動作確認できた場合だけ利用できます。
高影響の利用禁止基準に該当しました。このサーバーを使用しないでください。
危険度とは別の状態
検査に必要な情報が不足しているため、安全性を判定できません。
検査中の進行状態
検査が進行中です。
完了まで待機してください。
一時障害または入力不備により、検査が完了していません。
エラー内容を確認して再実行してください。
ローカル監視ツールの透明性
Proに含まれる任意のローカル監視ツールについて、送信する情報と送信しない情報を明示します。挙動はManifestとローカルログで監査できます。
ローカル監視ツールが行うこと
- 60秒ごとの heartbeat(状態情報のみ)
- MCP設定と server identity に基づく継続チェック
- 対応するローカルstdio設定で、上流起動後の特定済みツール呼び出しを拒否
ローカル監視ツールが行わないこと
- キーログ取得、ブラウザ履歴収集、スクリーンショット取得
- token / password / API key の生データ送信
- 許可外ドメインへの任意送信
- 通信先: https://mcp-guard.abcas.jp
- ローカル透明性ログ: ~/mcp-guard/logs/agent-traffic.log
- ローカル監視ツールはProの任意機能です。停止 / アンインストール可能です。
Free / Pro 提供範囲
ローカル監視ツールは独立した第3プランではなく、Proに含まれる任意導入機能です。
| 提供項目 | Free | Pro |
|---|---|---|
| 全サーバーの簡易検索 | ログイン後に利用可 | 利用可 |
| 名称・出所・分類・公開状態・同期日時 | 利用可 | 利用可 |
| 検査根拠・検出された権限・外部接続 | 含まない | 利用可 |
| コピー・CSV・JSON出力 | 含まない | 利用可 |
| ドリフト監視 | 含まない | 利用可 |
| ローカル監視ツール(任意導入) | 含まない | 利用可 |
