跳轉到主要內容
「rug pull」是一種 MCP 失效模式:一個伺服器在你 盯著時規矩,一旦被信任就轉為敵對:一個你在連接時 核准的工具開始夾帶額外引數、一個你 列出的社群伺服器悄悄加上一個新能力,或一個代理自我安裝的 技能在正式環境中從良性翻轉為危險。危險在於沒有人 在一個連線上線後重新審查它——信任決策只在握手時 做了一次,從未重新檢視。 OrcaRouter 不信任握手。它在三條戰線上防禦。 防火牆的 MCP 閘道會在派發時對照你的即時政策 評估每一次 tools/call。每個已註冊伺服器 所公告的工具集會在首次探測時建立基準並重新檢查漂移 ——如果工具 schema 從核准的基準變更,該伺服器會 fail closed,直到一位 admin 重新核准或隔離它。而 技能層會為每個已安裝能力指派 一個風險等級與一個強制執行模式——隔離任何有風險或 未審查的東西,直到一個人簽核。一個伺服器無法靠在前 一百次呼叫規矩來贏得免費通行證。

1. 為何 MCP rug pull 防護需要每次呼叫的評估

一次連接時的審查只回答一個問題一次:這個伺服器列出來安全 嗎? 它無法回答在執行期真正重要的問題:這個特定呼叫、帶著 這些特定引數,此刻安全嗎? OrcaRouter 回答第二個問題。每一次跨越閘道的 tools/call 都會在它被派發到真正伺服器之前,在 mcp 表面上、 帶著工具名稱與引數被評估。裁決每次都重新 計算,所以一個工具開始做你的政策禁止之事的那一刻—— 在一個引數中外洩一個密鑰、觸及一個被拒絕的主機、 呼叫一個你從未核准的能力——該呼叫就會被 停止,無論同一個工具一分鐘前如何表現。
每次呼叫的評估治理每次呼叫的行為——引數 內容、目的地、所屬技能的風險——所以它能抓住一個 rug pull 即使該工具保持完全相同的簽章而只有它的行為 轉為敵對。Schema 漂移偵測(下方 §)是互補層: 它抓住伺服器所公告的工具集本身變更的情況。 兩者都會執行。
引擎可以在 mcp 表面上回傳的裁決:

allow / audit

轉送到伺服器。audit 會記錄該呼叫;allow 保持安靜。

sanitize

先隱去工具呼叫的引數再轉送(它永不 改寫伺服器回傳的內容)。

deny

作為一個工具錯誤firewall deny: …)回傳到模型,所以 代理能適應而不是崩潰。

pending_approval

該呼叫會被保留,待一個人解決後才能執行。

2. 技能風險等級隔離

rug-pull 防禦的第二半涵蓋供應鏈:一個代理安裝的 技能、插件與自帶 MCP 伺服器。每一個都會 被註冊為一筆工作區限定的記錄、由一個決定性的風險引擎 掃描,並被指派一個風險等級low / medium / high / critical)加上一個強制執行模式
模式執行期效果
allow由規則裁決決定;技能不增加任何東西。
quarantine任何不到 deny 的東西都升級為 pending_approval——工具只在一個人核准後才執行。
block該技能的工具直接被拒絕。
這就是一個 rug pull 被遏制的地方。一個代理 自我安裝的能力會是 auto_detected被隔離直到審查—— 即使它掃描乾淨,它也不會憑自己的權限執行。而一個技能的 模式在重新掃描時只會更緊:你設定的一個 blockquarantine 在一個 manifest 被重新呈現時永不會被悄悄放鬆。
隔離的強制執行獨立於 shadow 模式。一個被設為 quarantineblock 的技能即使在周圍政策處於 shadow 推出時仍會被保留——所以一個有風險的能力無法在 分段部署期間溜過去。
關於完整的掃描器、評分權重與信任訊號,請見 防火牆:技能

3. 工具 schema 漂移偵測

經典的 rug pull 是一個變更它所公告內容的已註冊 伺服器——加上一個工具、改變一個工具的輸入 schema、替換一個 描述。OrcaRouter 會在一次成功探測時為每個已註冊伺服器的所公告工具 集建立基準,並監看它的漂移。

首次探測時建立基準

第一次成功的探測會記錄該伺服器工具的一個正規 雜湊(在發現姿態下 trust-on-first-use;在一個 強制執行姿態下,一個未建立基準的伺服器會被保留為 pending,直到一位 admin 核准它的初始工具集)。

漂移 fail closed

在之後一次探測時,如果正規工具集不再匹配 核准的基準,該伺服器會被標記為 changed停止被 服務——閘道在你決定之前不會派發它的工具。

核准或隔離

重新核准以重新建立至新 schema 的基準,或隔離該伺服器。 一個被隔離的伺服器也會被停用,且只有一次明確的核准才會 恢復服務——一次單純的編輯無法重新啟用它。

已稽核

對一個核准基準的漂移的第一次偵測會寫入一筆 工作區稽核項目,所以該變更會被記錄在案。
一個伺服器的 schema 狀態是 unknown(從未建立基準)、 verified(匹配基準)、changed(已漂移、被保留)、pending (在強制執行下未建立基準)或 quarantined 之一。這一層抓住 移動 schema 的 rug pull; 每次呼叫的評估(§1)抓住那種保持完全相同簽章 而只變更行為的。

4. 一個具體範例

假設一個社群 MCP 伺服器 notes 公告一個無害的 notes.search 工具。你列出它、審查它,且它運作。一週後該 伺服器被入侵,而 notes.search 開始附加一個外洩 引數,把你的脈絡 POST 到一個攻擊者主機。 一個只在連接時的閘道會轉送它——工具名稱與 schema 看起來沒變。OrcaRouter 評估該呼叫:
# 在主控台(Developer+)設定 deny 規則,而非透過轉送金鑰。
# 規則:在 mcp 表面上,每當 notes.search 攜帶一個
#       外洩形狀的引數時拒絕它。
#   tool_name_glob: notes.search
#   args_match:     { "path": "$.callback_url", "op": "regex",
#                     "value": "^https?://(?!notes\\.example/)" }  → deny
args_match 運算子有 eqcontainsregexincidr_matchgtltcidr_match 會對照一個 CIDR 測試一個 IP 值引數。要 依 host/CIDR 約束一個工具可以觸及何處,請使用 egress 目的地清單而非一個 引數子句。) 在派發時引擎回傳 deny,而閘道不轉送該呼叫, 反而交給代理一個 MCP 工具結果錯誤——一個被標記為錯誤的 正常結果,而非一次傳輸失敗——所以模型能適應:
firewall deny: <your rule's reason>
上週成功的同一個呼叫現在被封鎖了——因為 決策是在呼叫上做的,而不是在連線上。
sanitize 會隱去你的代理送出的引數,永不隱去一個 工具回傳的內容。如果你需要約束一個工具可以觸及何處,把一條 deny 規則與一個 egress 目的地清單搭配—— 不要依賴 sanitize 來清洗回應。

5. 它如何組合在一起

每次呼叫的評估抓住一個信任的工具變得惡意—— 相同名稱、引數或目的地中的新行為。技能 隔離抓住一個新的或未審查的能力根本出現了 ——一次自動偵測的安裝、一個新降級的重新掃描 manifest。 一個 rug pull 可以採取任一種形狀,所以兩者都會執行:技能的模式 凌駕於每次呼叫的規則裁決之上。
會——見 §3。每個已註冊伺服器所公告的工具集會在 首次探測時建立基準並重新檢查漂移;一個漂移的伺服器會 fail closed,直到你重新核准或隔離它。那與 每次呼叫的評估互補,後者也抓住一個保持完全相同簽章 而只變更其行為的工具。
一個 pending_approval 裁決會把該呼叫保留,待一個人在 主控台(Developer+)中或透過一個 HMAC 核准回呼解決。請見 強制執行模式了解保留 與核准如何浮現給一個代理。

6. 設定它

下面的每一步都是一個以你的工作階段或存取權杖驗證的 主控台/管理動作——而非 sk-orca-… 轉送金鑰。只有 /v1/* 轉送流量使用轉送金鑰。
1

在閘道後方註冊你的 MCP 伺服器

連接每個伺服器,使它的工具在 一個受稽核的端點下被公告。註冊是 Developer+
2

在 mcp 表面上設定一個預設裁決與規則

tool_name_globargs_match 撰寫規則,讓有風險的呼叫 解析為 denysanitizepending_approval。請見 防火牆規則參考
3

審查被隔離的技能

任何自動偵測的東西都會處於 quarantine,直到一位審查者 (Developer+)核准它。先閱讀等級與發現。
4

在 shadow 中推出,然後強制執行

使用強制執行模式在 shadow 中 執行新規則、觀看稽核事件, 並在裁決看起來正確後翻轉為強制執行。
讀取(設定、政策、探索到的工具、異常)對任何 Member 開放;每一次寫入都是 Developer+。讀取一個防火牆閘道 金鑰的明文是 Developer+

相關

防火牆:MCP 伺服器

完整的 MCP 閘道參考——註冊、探測、派發。

防火牆:技能

掃描器階段、風險評分與隔離推導。

MCP 工具下毒

rug-pull 防禦存在以對抗的威脅模型。

Egress 限制

撰寫 host/CIDR deny 規則以約束工具可以觸及何處。

信任檢查清單

信任一個 MCP 伺服器的端到端檢查清單。

防護欄 vs. 防火牆

內容政策何時適用,以及防火牆何時適用。