MCPの危険性
MCP サーバーは「読み取り専用」と記載されていても、実装側で権限が拡張されている場合があります。
実運用では、Prompt Injection、Rug Pull(更新後の挙動改変)、SSRF などが混在し、キーワード一致だけでは見抜けません。
Abcas は「登録時の検証」と「運用中の変化検知」を分離せず、継続監視で扱います。
実際に多い攻撃シナリオ
PleaseFix Attack(ゼロクリック実行)
説明文では安全でも、実装側で自動実行が仕込まれているケースを宣言+コードの差分で検出します。
Rug Pull(更新後の事後改変)
登録時に安全だったサーバーが更新で危険化した場合、差分検知と再スキャンで検出します。
SSRF(内部ネットワーク侵入)
内部IP・localhost向けアクセスを静的/実行時ポリシーで検出し、危険呼び出しを遮断します。
Abcas MCP Guard の検出技術
19 攻撃パターンを 176 検査項目で監視します。判定は宣言・コード・実行時の 3 レイヤーを組み合わせます。
3レイヤー検出
- Layer 1(宣言): Tool schema、権限、説明文の矛盾を確認
- Layer 2(コード): AST / keyword / provenance 解析で危険操作を抽出
- Layer 3(実行時): Local Agent + proxy policy で危険呼び出しを実行前にブロック
176 検査項目のカテゴリ内訳
| 検査カテゴリ | 項目数 | 目的 |
|---|---|---|
| Operation Tags | 34 | 危険操作の即時タグ付け |
| AST / Static | 28 | 実装コードからの危険挙動抽出 |
| Keyword / Heuristic | 22 | 攻撃キーワードと異常パターン |
| Provenance / Trust | 24 | 提供元の信頼性と衝突検知 |
| Schema / Permission | 26 | 宣言権限と引数設計の検証 |
| Runtime Proxy Policy | 18 | 実行時ブロック判定 |
| Drift / History | 24 | 更新差分・再評価の追跡 |
19 攻撃パターン × 176 検査項目
19/19 を単一エンジンで管理。判定結果は dashboard / docs / pricing で同一定義を参照します。
| 攻撃パターン | 検出レイヤー | 主な検査観点 |
|---|---|---|
| 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侵入 |
クイックスタート
無料スキャンから Agent 導入まで、Layer に沿って 4 ステップで進めます。
ログイン
「無料で始める」からログインし、Dashboard を開きます。
準備
サーバー登録 + 無料スキャン
npm:xxx / pip:xxx / URL を登録し、Layer 1 の安全性チェックを実行します。
Layer 1
Pro を有効化(リモートフルスキャン)
Layer 2 で dynamic / provenance / threat intel まで広げます。
Layer 2
Agent 導入(任意)
Layer 3 でローカル実行時ブロックを有効化し、危険呼び出しを実行前に止めます。
Layer 3
スキャンステータスの見方
ステータスは「意味」と「次の行動」をセットで表示します。
検査が進行中です。
完了まで待機してください。
重大リスクは見つかっていません。
通常運用を継続できます。
追加確認が必要なシグナルがあります。
詳細を確認し、必要なら再スキャンしてください。
高リスク行動が検出されました。
利用停止、または Layer 3 でブロック保護を有効化してください。
一時障害または入力不備で判定不能です。
failure code を確認して再実行してください。
Agent 透明性
Agent が送る情報と送らない情報を明示します。挙動は Manifest とローカルログで監査できます。
Agent が行うこと
- 60秒ごとの heartbeat(状態情報のみ)
- MCP設定と server identity に基づく継続チェック
- 危険ツール呼び出しの実行前ブロック
Agent が行わないこと
- キーログ取得、ブラウザ履歴収集、スクリーンショット取得
- token / password / API key の生データ送信
- 許可外ドメインへの任意送信
- 通信先: https://mcp-guard.abcas.jp
- ローカル透明性ログ: ~/mcp-guard/logs/agent-traffic.log
- Agent は任意機能です。停止 / アンインストール可能です。
Layer 1 / Layer 2 / Layer 3 比較
| Layer 1 | Layer 2 | Layer 3 | |
|---|---|---|---|
| 安全性情報チェック | ○ | ○ | ○ |
| リスク判定 | ○ | ○ | ○ |
| 無制限サーバー登録 | − | ○ | ○ |
| 静的検査 + AI分析 + DB照合 | − | ○ | ○ |
| Abcasサーバーでの動的検査 | − | ○ | ○ |
| 信頼性検査 + 出所検証 | − | ○ | ○ |
| 意味的整合性検査 | − | ○ | ○ |
| 脅威インテリジェンス機能 | − | ○ | ○ |
| Supply Chain深度スキャン | − | ○ | ○ |
| タイポスクワッティング検出 | − | ○ | ○ |
| プロンプトインジェクション検知 | − | ○ | ○ |
| MCPサーバー内容変化の自動検知 | − | ○ | ○ |
| 権限逸脱チェック + 監査ログ記録 | − | ○ | ○ |
| Cursor / Claude / VSCode の MCP 設定を自動検出 | − | − | ○ |
| Cursor / Claude / VSCode 設定の自動検出と一括セットアップ | − | − | ○ |
| ローカル・クラウド環境のリアルタイム保護 | − | − | ○ |
| 新規危険サーバー情報提供でのディスカウントオファー | − | ○ | ○ |
