.env 檔案貼進提示詞。一份擷取來的文件挾帶了一個內嵌的 API 金鑰。
一個被要求「顯示設定」的模型,把一個 AWS 存取金鑰直接回吐給客戶端。
一個代理建構了一個工具呼叫,把一個有效的權杖烘焙進引數裡。其中每一項
都是讓憑證脫逃的一條路徑——進入上游供應商的日誌、進入一份客戶端
逐字稿,或進入一個第三方工具。
本頁說明 OrcaRouter 的 防護欄與
代理防火牆如何讓你防禦 llm secret
leakage——無需更動你的應用程式碼。
偵測發生在閘道處,位於每個綁定金鑰之前——所以單一政策就能涵蓋每個
供應商、每個模型與每個代理,無需任何 SDK 變更。
1. 密鑰會在哪裡外洩
一個憑證可以在一個請求的三個不同點脫逃:在提示詞中(輸入)
在提示詞中(輸入)
在模型運行之前,憑證就已在請求中——一個貼上的金鑰、一段
.env
片段、一個擷取來的 RAG 區塊裡的權杖。若不加以檢查,它會抵達上游
供應商並可能落入他們的日誌。用 Secrets Blocker 輸入防護欄阻止它
(§2)。在回應中(輸出)
在回應中(輸出)
模型把一個密鑰回吐給你的客戶端——它從其情境複述一個金鑰,或幻覺出
一個憑證形狀的字串。用一條輸出密鑰規則捕捉它
(§3)。
在工具呼叫引數中
在工具呼叫引數中
你的代理建構了一個引數中帶有權杖的工具呼叫。防火牆的 sanitize
裁決會在呼叫派發之前,從引數中遮蓋掉匹配到的子字串
(§4)。
2. Secrets Blocker——阻止提示詞中的憑證
Secrets Blocker 是 secrets 類別下的一個防護欄預設集,在 input 介面執行。它會掃描請求尋找憑證形狀——AWS 存取金鑰、OpenAI 風格的金鑰, 以及 GitHub 權杖——並在呼叫離開閘道之前封鎖它。憑證永遠不會抵達 模型。 在主控台中撰寫它一次,附加一個金鑰,那個金鑰的每個請求就都會被審查:建立防護欄
在主控台中,開啟
/console/guardrails,按一下 New guardrail,
並套用 secrets 類別中的 Secrets & API-Key Blocker 預設集。它會
為常見的憑證形狀植入帶有輸入介面封鎖規則的防護欄——從那裡可自由
編輯。[JWT] / [AWS_ACCESS_KEY] 標籤),
一條涵蓋 jwt、aws_access_key 與 api_key_openai 的 pii 規則是
實體驅動的替代方案;參見
防護欄參考。
3. 封鎖模型輸出中的密鑰
一個密鑰也可以在回應中離開——模型從其情境複述一個金鑰,或發出一個 憑證形狀的字串。在 output 介面上加一條規則,在模型的回覆返回客戶端 之前審查它。 secrets 類別正為此提供一個 Code Secret in Output 預設集:針對 PEM 私鑰、AWS 存取金鑰與 OpenAI 風格密鑰權杖的輸出介面封鎖規則。輸出 masking(把一個匹配替換成一個帶型別的標籤,而不是拒絕整個回應)
目前僅套用於非串流回應。對於輸出中的憑證,block 動作是串流流量上
可靠的選擇。在依賴它之前,先在防護欄 Test 分頁中驗證你的介面/串流
組合。
4. 從工具呼叫引數中淨化密鑰
當你的代理建構一個工具呼叫時,一個憑證可能會搭便車進入引數。防火牆的 sanitize 裁決會從工具呼叫引數中遮蓋掉匹配到的子字串,並轉送 清理後的呼叫——在response 與 mcp 介面上,那裡有即時的呼叫時引數
可供改寫。
一條 sanitize 規則會在其 sanitize_json 設定中指名要遮蓋哪些偵測器
——一組內建的預設集加上可選的自訂 regex。匹配到的素材會被替換成
[redacted:<preset>](自訂匹配則為 [redacted:custom]):
aws_access_key、aws_secret_key、
openai_key、anthropic_key 與 bearer_token(加上用於 PII 的 email、
ssn_us 與 credit_card)。一條 sanitize 規則必須指名至少一個預設集或
自訂模式——一個空的淨化器在儲存時會被拒絕。
Secrets Blocker 防護欄(§2)
仍然是你針對請求主體中憑證的主要防線——防火牆淨化器則是針對特別出現在
工具呼叫引數內部的密鑰的動作層補充。
5. 把三道防禦疊起來
| 密鑰在哪裡 | 阻止它的層 | 動作 |
|---|---|---|
| 在提示詞中 | Secrets Blocker(輸入防護欄) | block |
| 在模型的回覆中 | 輸出密鑰規則(輸出防護欄) | block |
| 在工具呼叫引數中 | 防火牆淨化器 | sanitize |
6. 觀察觸發了什麼
每一條觸發的防護欄規則都會記錄一個匹配——規則型別、動作、介面, 以及一個細節字串——到工作區 Matches 動態(GET /api/guardrail/match,
Member)。匹配到的子字串只在「Log raw content」打開時才會被記錄,
而它預設關閉——這是隱私保守的姿態,所以 Matches 動態本身不會變成一個
密鑰累積之處。除非你特別需要那個子字串來做分流,否則對憑證規則就讓它
保持關閉。
防火牆 sanitize 決策會落入防火牆 Events 動態(GET /api/workspace/firewall/events,Developer+),密鑰與規則 blob 永不被記錄。
7. 下一步去哪裡
防護欄參考
完整的規則型別、PII 實體、預設集、測試沙盒,以及評估工具。
防火牆規則參考
匹配語言——工具 glob、引數子句與淨化器。
PII 外洩
同胞內容威脅:提示詞與回應中的個人資料。
資料外洩
當一個外洩的憑證成為一次外送外洩呼叫的酬載時。
防護欄與防火牆
哪個平面阻止哪一類外洩,以及它們如何組合。
安全代理基準
把這些防禦一起打開的起始姿態。
