跳轉到主要內容
你註冊的每個 MCP 伺服器、代理安裝的每個技能,以及一個工具觸及的每個 主機,都是一個你並未撰寫的相依。一個代理的供應鏈是動態的——它在執行期 成長,往往沒有人類在迴圈中——所以典型的「在建置時審查 lockfile」模型 站不住腳。一個社群技能在你信任它之後可能被劫持;一個遠端 MCP 伺服器 可以悄悄加一個工具;一個擷取工具可以被引向一個攻擊者控制的主機。 OrcaRouter 的回答是在供應鏈行動之處治理它——在閘道處、於首次使用時 ——而不是試圖在安裝時審查每個相依。本頁是 ai supply chain security 的 使用案例落地頁;防火牆技能參考承載完整的機制。

1. 為代理在閘道處做 ai supply chain security

咽喉要道是中繼路徑。無論一個能力是手動註冊的、被代理自動安裝的,或從 一個社群 registry 拉來的,它的第一個工具呼叫都會穿越 api.orcarouter.ai ——而那正是防火牆評估它之處。四個控制組合成單一姿態:

MCP 閘道,逐呼叫評估

每一次 tools/call 都會在派發之前對照你的政策評估——manifest 永遠 不是真相的來源。

技能風險分級與隔離

已安裝的能力會被掃描、評分,並保留待審查,直到一個人類核准它們。

加密的 MCP 憑證

伺服器驗證密鑰在靜態時加密,並在派發時注入——永不暴露給模型、代理或 呼叫引數。

Egress 允許清單

釘住工具呼叫可以把資料送往何處,這樣一個被攻陷的相依無法外洩到一個 你從未核准的主機。
偵測在閘道處、於首次使用時——而不是在你的套件管理器或檔案系統裡。這是 刻意的:它是那條唯一能看見每一個代理與每一次工具呼叫、無論該能力是 如何進來的路徑。

2. 威脅:一個在你信任它之後成長的相依

向量發生什麼
Rug-pull一個已註冊的 MCP 伺服器加了一個你從未核准的工具(shell.exec、一個新的 fetch)。
技能蔓延一個已安裝的技能使用它的 manifest 從未宣告的工具或主機。
憑證竊取一個被攻陷伺服器的工具實作讀取它自己的驗證密鑰來回撥外部。
Egress 外洩一條 retrieve→send 鏈把你的資料運往一個攻擊者控制的主機。
共同的根本原因:「我信任這個伺服器」被當成永久,而代理持續呼叫新的或被 修改的工具,不再有進一步審查。

3. 一個具體範例——註冊並釘住一個 MCP 伺服器

你從主控台註冊一個第三方 MCP 伺服器(Settings → Firewall → MCP servers;寫入需要 Developer+)。伺服器的驗證密鑰被加密儲存——你提供它 一次,閘道在派發時注入它,而此後每次讀取它都被遮罩。 一筆 MCP 伺服器記錄攜帶:
欄位
auth_modenonebeareroauthbasic
statusokdegradeddown(由健康探測設定)
credentials在靜態時加密,永不以明文回傳
註冊之後,從主控台探測它以列舉它目前的工具。探測是一個工作區工作階段 (/api/workspace/firewall/*)操作,需要 Developer+,而不是一個中繼 金鑰——註冊、探測與規則撰寫全都發生在管理平面上:
# Console / management plane — workspace session, Developer+.
# (The relay sk-orca-... key is for /v1/* traffic only.)
curl -X POST https://api.orcarouter.ai/api/workspace/firewall/mcp_servers/<id>/probe \
  -H "Authorization: Bearer <workspace-session-token>"
探測會持久化伺服器的可達性,並對它公告的工具集快照一個基線雜湊 (trust-on-first-use)。然後把一條帶 tool_name_glob: <server>.* 的防火牆 規則範圍限定為 pending_approval,直到你看過一段乾淨的呼叫歷史——那個 伺服器的每個呼叫在執行之前都會為一個人類保留。一旦你信任它,把規則放寬到 auditallow。從那一刻起,MCP 閘道在派發之前於 mcp 介面上評估 每一次 tools/call——所以如果一次 rug-pull 稍後加了一個未宣告的工具, 是你的政策、而不是伺服器的 manifest,決定它是否執行。
在任何上游版本升級之後重新探測 (POST /api/workspace/firewall/mcp_servers/:id/probe,Developer+)。如果 公告的工具集從已核准基線漂移,伺服器的 schema_status 會翻成 changed, 而派發會失敗關閉,直到一個管理員重新建立基線(approve_schema)或 隔離它——rug-pull 無法默默上線。

4. 技能風險分級與隔離

每一個可安裝的能力——無論是你註冊的,還是閘道在執行期自動偵測到的—— 都會被跑過 技能掃描器。發現會彙整成一個 風險等級(risk band)與一個強制執行模式
low · medium · high · critical。等級是從對 manifest 與宣告範圍的 確定性掃描器掃描衍生的(未宣告的工具使用、超出已核准範圍的網路 egress、 不安全的檔案系統寫入、注入形狀的 manifest 文字)。
allow(由你的政策規則決定)、quarantine(任何非 deny 裁決升級為 pending_approval——一個人類核准每個呼叫)、block(無論規則如何, 對這個技能的所有工具強制 deny)。一個 high 等級的技能會自動隔離; critical 則封鎖。
一個代理自行安裝的能力,或一次 rug-pull 加的一個工具,無論其掃描分數 如何,都會被保留在 pending_approval,直到一個人類審查它。一個操作者 無法悄悄加一個工具就讓你的代理開始使用它。
強制執行模式只會越收越緊——核准一個技能永遠不會放寬一次全新掃描所設定 的封鎖。

5. Egress 允許清單——遏制「回撥外部」

最具破壞性的供應鏈後果,是一個被攻陷的相依進行外洩。防火牆的 egress 介面評估一個工具回報的外送目的地(host / IP / CIDR),所以你可以釘住 資料被允許去往何處。 你自己撰寫一條 egress 規則:一份帶 cidr_match 判定式的 host/CIDR 允許清單會拒絕一切不在清單上的東西。把它與一條打斷 retrieve→egress 鏈的 序列規則結合,那麼一個試圖把一份擷取來的文件運往一個未知主機的被下毒 工具,就會在閘道處被拒絕。
tight 自主等級提供一個 SSRF 預設集,但它拒絕的是擷取形狀的工具名稱http_fetchweb_searchfetch_urlrequest)——它不是一份 CIDR/雲端中繼資料拒絕清單。如果你需要 RFC-1918/中繼資料/特定 CIDR 的 egress 封鎖,請自己撰寫 egress host/CIDR deny 規則。cidr_match 運算子與 egress 範圍限定參見 防火牆:規則

6. 加密的憑證——一個被攻陷的伺服器讀不到你的金鑰

伺服器驗證密鑰在靜態時加密,並由閘道在派發時注入。它們永遠不會抵達模型、 代理,或工具呼叫引數——所以一個被攻陷或惡意的伺服器無法靠讀取它自己的 憑證 blob 來外洩你的 API 金鑰。主控台永遠回傳遮罩過的密鑰——即使對一個 Admin 也是。解密後的值只在一條路徑上被交出:一個攜帶防火牆閘道範圍 權杖(一個 Admin 為閘道/代理明確鑄造的專用權杖型別)的請求,所以一個 普通的外洩中繼金鑰無法列舉你的 MCP 憑證。

7. 為一次稽核彙整起來

供應鏈治理也是一個稽核成品。OrcaRouter 對映到 OWASP Top 10 for LLM Applications——包括 LLM05 Supply Chain 控制——作為合規引擎的一部分, 與 soc2iso_27001iso_42001nist_ai_rmfeu_ai_act 等框架 並列。 安裝一個合規包 (POST /api/compliance/packs/:key/install,工作區 Admin,付費方案) 會物化對應的防護欄與防火牆政策,並以一個觀察優先的姿態開始。合規報告 包含一個 AI 供應鏈證據章節——你的工作區實際路由到的上游供應商,加上 一份特權存取與金鑰衛生審查——並經 Ed25519 簽署且可公開驗證。瀏覽目錄與 就緒度對每個 Member 免費;完整的生命週期參見 合規
MCP 治理是兩個互補的層:在 mcp 介面上的逐呼叫防火牆評估(對一個相依 做什麼的強制執行),加上一個工具 schema 完整性基線(對公告工具集的 trust-on-first-use 雜湊,在每次探測時重新檢查——漂移會把伺服器的 schema_status 翻成 changed 並讓派發失敗關閉,直到一個管理員重新建立 基線或隔離它)。連同技能風險分級與隔離,那就是對一個相依做什麼的強制執行, 以及對它宣告了什麼的可驗證記錄兩者兼具。

8. 一個供應鏈基準

註冊它、探測它的工具集,並把一條 <server>.* 規則範圍限定為 pending_approvalaudit。閱讀掃描發現——任何未宣告工具或外部 egress 的發現都是讓它保持隔離的理由。驗證誰控制著端點 URL。
對任何帶 fetch/search/export 工具的代理,保持一份 egress 允許清單釘住。 觀察 Discovered tools檢視中那些沒有規則 就出現的能力,以及異常動態中新奇的工具到工具路徑。
停用該伺服器(PUT .../mcp_servers"enabled": false)——它的憑證在 停用期間永不被解密。重新探測以浮現新工具、重新掃描該技能,並審查 pending_approval 佇列,而不是批量核准。

9. 相關威脅與概念

防火牆:MCP 伺服器

在閘道後方註冊 MCP 伺服器、探測它們的工具,並在任何呼叫抵達真實伺服器 之前套用一個逐呼叫裁決。

防火牆:技能

掃描並為每個可安裝能力評定風險分數。在風險技能的工具執行之前隔離或 封鎖它們。