跳轉到主要內容
能觸及網路的代理可以被轉變為資料管道。攻擊者在代理讀取的文件中植入指令—— 一個網頁、一個擷取的區塊、一個工具結果——而那些指令將代理引導到向 攻擊者控制的主機 POST 敏感資料,或探測內部服務(SSRF)。代理從未「決定」外洩; 它執行對它來說看起來像合法指令的東西。 本頁涵蓋 OrcaRouter 中的代理防火牆和防護欄堆疊如何讓你防禦 AI 資料外洩——無需更改代理程式碼。
防火牆只對透過 MCP 派發路徑或評估鉤子路由穿越閘道的目的地看見外向請求。 你的代理完全在其自己行程內執行的工具在其視野之外。透過閘道路由你的代理的 網路綁定工具呼叫,它們就受到治理。

1. 攻擊如何運作

透過代理的標準路徑分三步執行:
  1. 注入——代理讀取攜帶嵌入指令的不可信內容(一個網頁、一份擷取的文件、一個 CRM 備註)。
  2. 收集——注入的指令告訴代理使用它已擁有的工具收集敏感材料——API 金鑰、資料庫行、使用者 PII。
  3. 外洩——代理被告知通過擷取形狀工具發送該材料:http_fetchweb_searchfetch_urlrequest。 目的地是攻擊者控制的。
SSRF 是相同形狀,但重定向到內部:代理被引導到 169.254.169.254(雲端元資料)、 內部 Redis 連接埠或另一個私有服務,而不是外部主機。 參見提示注入了解注入步驟; 本頁重點是網路步驟。

2. 外向允許清單——鎖定外向目的地

最持久的防禦是外向允許清單:列舉你的代理被合法允許觸及的主機, 並拒絕其他一切。 外向規則使用 stage: egressegress 欄位。裁決控制極性—— allow 通過列出的目的地;較低優先順序的 deny 兜底封鎖其餘的:
[
  {
    "priority": 10,
    "label": "Allow known API endpoints",
    "stage": "egress",
    "tool_name_glob": "*",
    "verdict": "allow",
    "egress": {
      "allow": [
        "api.openai.com",
        "api.anthropic.com",
        "api.orcarouter.ai"
      ]
    }
  },
  {
    "priority": 20,
    "label": "Deny all other outbound destinations",
    "stage": "egress",
    "tool_name_glob": "*",
    "verdict": "deny"
  }
]
條目作為 CIDR、IP 字面值或不分大小寫的主機名匹配。主機名被盡力解析並 對照 IP/CIDR 條目重新檢查,所以 DNS 返回的像 169.254.169.254 這樣的目的地 仍然被 10.0.0.0/8 CIDR 拒絕條目捕捉。被封鎖的呼叫返回帶有錯誤代碼 firewall_blockedHTTP 400 要拒絕已知的惡意範圍而不需要明確允許清單,撰寫一個針對性的外向拒絕規則, 列出雲端元資料端點(169.254.169.254)和 RFC-1918 私有範圍(10.0.0.0/8172.16.0.0/12192.168.0.0/16)。在更低的優先順序數字上疊加你的允許清單, 使拒絕規則先被評估。

3. 在名稱層面封鎖擷取形狀工具

在外向目的地甚至被評估之前,你可以完全移除這個能力。tight 自主等級 以工具名稱 glob 拒絕 http_fetchweb_searchfetch_urlrequest, 作為 SSRF 和外洩的最後防線。如果你的代理不需要任何這些工具, tight 在一步中移除攻擊面:
POST /api/workspace/firewall/autonomy
{ "level": "tight" }
要在不採用完整 tight 姿態的情況下拒絕擷取工具,撰寫一個 inbound 表面拒絕規則。 inbound模型能夠選擇工具之前封鎖工具——代理在其工具清單中永遠不接收該能力:
{
  "priority": 5,
  "label": "Deny fetch-shaped tools",
  "stage": "inbound",
  "tool_name_glob": "http_fetch",
  "verdict": "deny"
}
對你的代理堆疊使用的每個擷取形狀工具名稱重複。

4. Secrets Blocker 防護欄——在提示詞層面阻止憑證

Secrets Blocker 防護欄在輸入階段執行,在請求離開閘道之前掃描提示詞中的 AWS 風格存取金鑰、OpenAI 金鑰、Anthropic 金鑰、GitHub 權杖和類似的憑證模式。 如果偵測到密鑰,請求就被封鎖——憑證永遠不會到達模型,也永遠不會出現在工具呼叫中。 從防護欄面板啟用它,或作為 tight 自主等級的一部分。它獨立於防火牆外向規則。
威脅阻止它的層次
提示詞攜帶 API 金鑰Secrets Blocker(輸入防護欄)
代理呼叫擷取工具到攻擊者主機外向允許/拒絕規則
向模型公告的擷取形狀工具Inbound 拒絕規則或 tight 自主
代理觸及雲端元資料或 RFC-1918列出那些 CIDR 的外向拒絕規則

5. 用影子模式推出

如果你不確定你的代理今天合法觸及哪些主機,在強制執行之前以影子模式開始:
  1. 使用你預期的允許清單建立外向規則,並在政策上設定 shadow_mode: true
  2. 觀察 Events 動態——被封鎖的呼叫以 [shadow] would deny 加目的地出現。
  3. 調整 allow 清單,直到只有攻擊者可觸及的目的地會被拒絕,然後禁用影子模式以開始強制執行。
影子模式開啟時沒有流量被封鎖。

6. 下一步去哪裡

防火牆規則參考

完整的匹配語言——外向清單、CIDR、引數子句和所有裁決。

代理防火牆概覽

政策、表面、自主等級和可觀測性。

提示注入

將代理引導到外洩的注入步驟。

MCP 工具投毒

登錄擷取形狀能力的惡意 MCP 工具。