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_mode | none、bearer、oauth、basic |
status | ok、degraded、down(由健康探測設定) |
credentials | 在靜態時加密,永不以明文回傳 |
/api/workspace/firewall/*)操作,需要 Developer+,而不是一個中繼
金鑰——註冊、探測與規則撰寫全都發生在管理平面上:
tool_name_glob: <server>.* 的防火牆
規則範圍限定為 pending_approval,直到你看過一段乾淨的呼叫歷史——那個
伺服器的每個呼叫在執行之前都會為一個人類保留。一旦你信任它,把規則放寬到
audit 或 allow。從那一刻起,MCP 閘道在派發之前於 mcp 介面上評估
每一次 tools/call——所以如果一次 rug-pull 稍後加了一個未宣告的工具,
是你的政策、而不是伺服器的 manifest,決定它是否執行。
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 鏈的
序列規則結合,那麼一個試圖把一份擷取來的文件運往一個未知主機的被下毒
工具,就會在閘道處被拒絕。
6. 加密的憑證——一個被攻陷的伺服器讀不到你的金鑰
伺服器驗證密鑰在靜態時加密,並由閘道在派發時注入。它們永遠不會抵達模型、 代理,或工具呼叫引數——所以一個被攻陷或惡意的伺服器無法靠讀取它自己的 憑證 blob 來外洩你的 API 金鑰。主控台永遠回傳遮罩過的密鑰——即使對一個 Admin 也是。解密後的值只在一條路徑上被交出:一個攜帶防火牆閘道範圍 權杖(一個 Admin 為閘道/代理明確鑄造的專用權杖型別)的請求,所以一個 普通的外洩中繼金鑰無法列舉你的 MCP 憑證。7. 為一次稽核彙整起來
供應鏈治理也是一個稽核成品。OrcaRouter 對映到 OWASP Top 10 for LLM Applications——包括 LLM05 Supply Chain 控制——作為合規引擎的一部分, 與soc2、iso_27001、iso_42001、nist_ai_rmf 及 eu_ai_act 等框架
並列。
安裝一個合規包
(POST /api/compliance/packs/:key/install,工作區 Admin,付費方案)
會物化對應的防護欄與防火牆政策,並以一個觀察優先的姿態開始。合規報告
包含一個 AI 供應鏈證據章節——你的工作區實際路由到的上游供應商,加上
一份特權存取與金鑰衛生審查——並經 Ed25519 簽署且可公開驗證。瀏覽目錄與
就緒度對每個 Member 免費;完整的生命週期參見
合規。
MCP 治理是兩個互補的層:在
mcp 介面上的逐呼叫防火牆評估(對一個相依
做什麼的強制執行),加上一個工具 schema 完整性基線(對公告工具集的
trust-on-first-use 雜湊,在每次探測時重新檢查——漂移會把伺服器的
schema_status 翻成 changed 並讓派發失敗關閉,直到一個管理員重新建立
基線或隔離它)。連同技能風險分級與隔離,那就是對一個相依做什麼的強制執行,
以及對它宣告了什麼的可驗證記錄兩者兼具。8. 一個供應鏈基準
在你信任一個新的 MCP 伺服器或技能之前
在你信任一個新的 MCP 伺服器或技能之前
註冊它、探測它的工具集,並把一條
<server>.* 規則範圍限定為
pending_approval 或 audit。閱讀掃描發現——任何未宣告工具或外部
egress 的發現都是讓它保持隔離的理由。驗證誰控制著端點 URL。在穩態下
在穩態下
對任何帶 fetch/search/export 工具的代理,保持一份 egress 允許清單釘住。
觀察 Discovered tools檢視中那些沒有規則
就出現的能力,以及異常動態中新奇的工具到工具路徑。
在一次疑似 rug-pull 之後
在一次疑似 rug-pull 之後
停用該伺服器(
PUT .../mcp_servers,"enabled": false)——它的憑證在
停用期間永不被解密。重新探測以浮現新工具、重新掃描該技能,並審查
pending_approval 佇列,而不是批量核准。9. 相關威脅與概念
- MCP 工具下毒與 rug-pull—— 關於惡意與被劫持 MCP 伺服器的深入探討。
- 資料外洩——限制工具呼叫 可以把資料送往何處的 egress 規則。
- 危險的工具呼叫——無論 工具來自何處,都封鎖破壞性動作。
- 密鑰外洩——把憑證擋在提示詞、 引數與日誌之外。
- 保護 AI 代理與 控制堆疊——這些控制如何契合 更廣的姿態。
防火牆:MCP 伺服器
在閘道後方註冊 MCP 伺服器、探測它們的工具,並在任何呼叫抵達真實伺服器
之前套用一個逐呼叫裁決。
防火牆:技能
掃描並為每個可安裝能力評定風險分數。在風險技能的工具執行之前隔離或
封鎖它們。
