メインコンテンツへスキップ
サードパーティの MCP サーバーまたはインストールされたスキルはサプライチェーンの依存関係です。 2 つの障害モードが際立ちます:
  • ポイズニング — サーバーは最初から悪意のあるものでした。マニフェストは 無害に見えました;危険な動作はツールの実装にあり、宣言されたスコープではありませんでした。
  • ラグプル — あなたはそれを信頼し、その後変更されました。サーバーのオペレーターが 静かに追加した新しいツールが現れた、またはコミュニティレジストリエントリがハイジャックされて ホームへのコールを行うよう更新されました。
両方の脅威には共通の根本原因があります:「このサーバーを信頼する」と言った後、 エージェントはさらなるレビューなしに — 新しいまたは変更されたものも含めて — そのツールを呼び出し続けます。

1. MCP ツールポイズニングがエージェントに到達する方法

エージェントが発行するすべての tools/call は MCP サーバーの宣言されたツールセットを 通じて移動します。ポイズニングまたはラグプルされたサーバーはいくつかの方法でその信頼を 悪用します:
ベクター何が起きるか
未宣言のツールサーバーのマニフェストが宣言しなかった新しいツールが tools/list に現れます。エージェントがそれを見つけて呼び出します。
ハイジャックされたレジストリエントリコミュニティレジストリのリストが乗っ取られます;エンドポイントが攻撃者が制御するサーバーを指すようになります。
クレデンシャルハーベスティングサーバーのツール実装が収集した入力を外部ホストに送ります。
ツール結果経由のプロンプトインジェクションツールがエージェントの次のアクションをリダイレクトする攻撃者が制御するテキストを返します。

2. OrcaRouter の防御

2.1 すべての tools/call は実行前にファイアウォール評価される

MCP サーバーは /api/v1/firewall/mcp のファイアウォール MCP ゲートウェイを通じて エージェントに接続します。ゲートウェイはファイアウォールエンジンが ポリシーに対して評価するまでツール呼び出しを転送しません。 つまり、あなたの許可リストが信頼の根拠です — サーバーのツールマニフェストではありません。 ラグプルが shell.exec を追加し、ポリシーにそれを許可するルールがない場合、判定は deny であり、呼び出しはゲートウェイを離れません。モデルはツールエラー (firewall deny: …)を受け取って反応できます;攻撃者が追加したツールは到着時に 無効化されます。 エンジンが返せる判定:
判定効果
allow / audit呼び出しが転送されます;audit は追加で引数をログします。
sanitize引数が転送前に書き換えられます。
deny呼び出しがブロックされます;モデルはツールエラーを受け取ります。
pending_approval呼び出しが保留されます;人間が進める前に承認しなければなりません。
cap_costコスト上限が強制されます;超えた場合、呼び出しがブロックされます。

2.2 自動検出されたケイパビリティはレビューまで隔離される

エージェントがケイパビリティを自己インストールする場合 — またはラグプルがサーバーを 登録したときに存在しなかった新しいツールを追加する場合 — ファイアウォールはホットパスを 外れた新しいケイパビリティを 自動検出し、マニフェストを 合成し、スキャンし、リスクバンドと強制モードを割り当てます。重要なことに、自動検出された ケイパビリティはスキャン結果に関わらず常に隔離されます:人間がレビューするまで pending_approval に保留されます。 これがラグプルが封じ込められる方法です。オペレーターは静かに新しいツールを追加して エージェントがそれを使用し始めることはできません — それらの呼び出しは新しいケイパビリティを 検査・承認するまで保留されます。

2.3 スキルスキャニングがリスクバンドと強制モードを割り当てる

インストール可能なすべてのケイパビリティ — 登録したものでもファイアウォールが自動検出 したものでも — はスキルスキャナーを 通過します。スキャナーはマニフェストと宣言されたスコープに対して決定的なパスを実行します:
  • prompt_injection — 指示をハイジャックしようとするマニフェストテキスト。
  • tool_creep — マニフェストが使用するが決して宣言しないツール。
  • network_egress — 承認されたネットワークスコープ外の HTTP(S) ホスト。
  • fs_write_unsafe/tmp 外の書き込みモードファイルシステムアクセス。
発見がリスクバンドにロールアップされます(low / medium / high / critical) そして強制モードに:
モード実行時に起きること
allowスキルは独自のものを課しません;ポリシールールが決定します。
quarantinedeny 以外の判定は pending_approval にエスカレートします。人間がすべてのツール呼び出しを承認しなければなりません。
blockポリシールールに関わらず、このスキルのすべてのツールに deny を強制します。
high バンドのスキルは自動的に隔離されます;critical はブロックされます。 ひとつの error 発見(例:未宣言の shell.exectool_creep)は数値スコアが 低く見えても、スキルをブロックするのに十分です。モードは締まる方向にのみラチェットします — スキルを承認しても新しいスキャンで設定されたブロックは緩和されません。

2.4 クレデンシャルは暗号化して保存される

サーバー認証シークレットはワークスペースシークレットキーで保存時に暗号化され、 ディスパッチ時にゲートウェイによってインジェクションされます。それらはモデル、エージェント、 または呼び出し引数に決して到達しません。侵害されたサーバーは独自の auth_json を読んで API キーを持ち出すことはできません。
サードパーティ MCP サーバーの審査チェックリスト外部 MCP サーバーを登録する前に:
  • パブリッシャーのアイデンティティを確認します — エンドポイント URL を誰が管理していますか?
  • ソースまたは変更ログを読みます;初期リリース後に追加された新しいツールを 探します。
  • 登録時にスキルスキャンが tool_creep または prompt_injection の発見を 返すかどうかを確認します。
  • 呼び出し履歴ができるまで tool_name_glob: <server>.* でファイアウォールルールを audit または pending_approval にスコープします。
  • network_egress の発見を確認します:マニフェストはひとつのドメインのみが必要だと 主張していますが、ツールの説明では他のものに言及していますか?
  • アップストリームのバージョンバンプの後にサーバーを再プローブします (POST /api/workspace/firewall/mcp_servers/:id/probe)して新しいツールを 表面化します。

3. 疑われるラグプルの後に何をするか

  1. すぐにサーバーを無効にします — 無効化されたサーバーはランタイムレジストリから 削除され、クレデンシャルは決して復号化されません。"enabled": falsePUT /api/workspace/firewall/mcp_servers を使用します。
  2. 変更を表面化するために再プローブしますPOST /api/workspace/firewall/mcp_servers/:id/probetools/list を実行し、 前回のプローブ以降に現れた新しいツールを返します。
  3. スキルレコードを再スキャンしますPOST /api/workspace/firewall/skills/:id/rescan が更新されたマニフェストに対してスキャナーを再実行します。判定が flagged または blocked に悪化した場合、ファイアウォールはフィードにイベントを発行します。
  4. pending_approval キューを確認します — ラグプル以降に保留された呼び出しが キューにあります。一括承認するのではなく検査して deny します。
  5. 呼び出しログを監査します — 変更を検出する前に通過した呼び出しについて ファイアウォールイベント証跡を確認します。

4. スキルスキャニングとファイアウォールルールをペアにする

スキルスキャニングとファイアウォールルールは補完的で構成されます:
  • tool_name_glob: community.*pending_approval に設定されたルールは、 リスクバンドに関わらず、コミュニティソースのサーバーからのすべての呼び出しを 確認することを保証します。
  • 隔離されたスキルは allow ルールをオーバーライドします — ポリシーが http.fetch を広く許可していても、それを所有する隔離されたスキルは依然として呼び出しを保留します。
  • skill_name_glob を ルールで使用して、ファーストパーティの統合に影響を与えずに信頼されていない サーバーに対してより厳格なポリシーをスコープします。
完全なゲートウェイモデルについてはファイアウォール:MCP サーバー を参照し、スキャナーと強制モードリファレンスについては ファイアウォール:スキルを参照してください。

5. 関連脅威

  • 危険なツール呼び出し — ソースに関わらず 破壊的または不可逆なツールアクションをブロックするルール。
  • データ持ち出し — ツール呼び出しがデータを 送れる場所を制限する egress ルール。
  • 脅威モデル — OrcaRouter が防御するよう設計された 完全な攻撃表面。

ファイアウォール:MCP サーバー

MCP サーバーをゲートウェイの背後に登録し、ツールをプローブし、実際のサーバーに 到達する前に呼び出しごとの判定を適用します。

ファイアウォール:スキル

すべてのインストール可能なケイパビリティをスキャンしてリスクスコアリングします。 リスクのあるスキルをツールが実行できる前に隔離またはブロックします。