AN-06 L3 符合性等級: Guard 概念組: 權限
Trust Labels 信任標籤
來源與敏感度兩個小標籤,加上工作階段污點,強制執行 Rule of Two。
Trust Labels(信任標籤) 是附在資料上的兩個很小的標籤集,來源(owner、agent、external)與敏感度(public、private、secret),再加上工作階段污點。NAS 把 Rule of Two 當作工作階段不變數來強制:一次工作階段不能同時擁有 [A] 讀過外部內容、[B] 接觸敏感資料、[C] 改變受保護狀態或對外通訊;要補全第三項,就走 Human Gate。
要解決的問題
提示詞注入之所以奏效,是因為模型分不清「指令」和「資料」。模型層的防禦(分類器、提示加固)會漏,攻擊者還可以自適應。Meta 在 2025 年 10 月底提出 Agents Rule of Two:在注入問題被可靠解決之前,一次工作階段最多隻應同時具備三個性質中的兩個。
更可靠的做法是在模型之外限定後果。儲存恰好是「讀」和「寫」的必經之地,所以適合把這條規則變成可以測試的不變數。
工作方式
- 標籤。 來源 3 檔、敏感度 3 檔,外加
reviewed標記(由閘門批准設定)。匯入點(網頁、郵件、上傳)預設標為external;金鑰掃描器發現憑據時,自動標為secret。 - 工作階段污點。 一次執行讀過的一切的彙總(來自讀清單);在一個工作階段內只增不減,新工作階段重置。
- 不變數。 A = 工作階段讀過
external;B = 租約允許讀private或以上(閾值可配置);C = 租約允許向受保護樹提議合併、共享、刪除或出口。三者在同一工作階段裡同時成立時,觸發 C 的那次呼叫被拒絕或轉交閘門。 - 實際效果: 在同時具備 B 和 C 的租約下,工作階段一旦讀過外部內容,之後的 C 類動作都要經過人。想避免這種摩擦,就把「讀外部內容」放到另一個沒有 B 的工作階段裡,只透過結構化交接傳遞結果。
- 傳播。 NAS 自己的派生(索引、摘要)確定性地繼承輸入標籤的並集;執行寫入的檔案繼承該執行的工作階段污點(保守做法)。
- 降級。 只能經由 Human Gate,或結構化交接: 把受污染工作階段的輸出限定為經 JSON Schema 校驗的欄位(列舉、ID、有界字串),校驗通過後才允許被特權工作階段讀取。能被確定性校驗的,才可能被信任。
- 強制點在閘道器與掛載層(它們知道租約與工作階段),不在模型內部。
從小處開始
- 只做兩件事:給匯入目錄裡的檔案打上
external;讀過external的執行預設沒有出口和受保護合併的權限,需要閘門。 - 策略用 Cedar 或 Rego 寫成確定性的規則,拒絕時給出可讀的原因。
- 先用「僅記錄」模式跑一週,看看會誤攔什麼,再開啟強制。
介面草圖
僅作示意。欄位名在規範 v0.3 之前可能調整。
# Deterministic policy (Cedar- or Rego-style rules can express the same thing)
session_invariant: rule_of_two
properties:
A: session.read_origin includes "external"
B: lease.sensitivity_max >= "private"
C: lease allows propose_protected | share | delete | egress
on_would_complete_ABC: gate # never "allow"
rules:
- id: r-merge-1
when: session.A and op == "merge" and target.protected
then: gate
- id: r-secret-1
when: session.read_sensitivity == "secret" and op == "egress"
then: deny 規範的要求
- 每個匯入點必須賦予預設標籤;外部內容必須標為
external。 - 工作階段污點必須在工作階段內只增不減。
- 策略求值必須是確定的,不得呼叫 LLM。
- 會讓同一工作階段補全 A+B+C 的呼叫必須被拒絕或轉交閘門。
- 降級必須經過閘門或經模式校驗的結構化交接。
- 派生資料必須繼承其輸入標籤的並集。
借鑑與區別
下面這些都是現成的思路。真正新的部分: 在儲存邊界用讀清單實作工作階段污點,並把標籤用到記憶寫入和派生資料上。我們刻意把標籤格縮小到 3×3,因為細粒度的格在實踐中會導致標籤膨脹。OpenClaw 已經在單個執行環境裡做了來源標籤與隔離,我們的區別只是把它放到共享的儲存中。
- Agents Rule of Two (Meta)
- The lethal trifecta
- CaMeL
- Fides
- Design Patterns for Securing LLM Agents against Prompt Injections
- OpenClaw memory architecture
坦誠的侷限
- 這不是提示詞注入的防禦,它限制的是後果。
- NAS 看不到它之外的工具(瀏覽器、郵件),需要執行環境配合。
- 污點是保守的,會帶來摩擦與誤報;結構化模式之外的自由文本仍然可以攜帶攻擊者的話。
- 隱蔽通道無法消除。
開放問題
- 標籤的粒度應當是檔案還是段落?
- 多租戶下標籤詞彙表如何治理?
- 如何降低誤報?
常見問題
Rule of Two 能防住提示詞注入嗎?
不能阻止注入發生。它讓一次被注入的工作階段無法同時擁有「讀過不可信內容、接觸敏感資料、能改變受保護狀態或對外傳送」三項,從而限制後果。Meta 自己也強調它是減輕風險的啟發式,不替代最小權限。
為什麼只有三個來源和三個敏感度?
因為細粒度的標籤格在實踐中會膨脹、會被關掉。3×3 足夠表達「誰寫的、有多敏感」,也容易讓人理解拒絕的原因。更細的分割槽可以靠路徑與租約來做。
工作階段污點會不會讓智能體什麼都幹不了?
只會限制三類動作:改動受保護樹、共享或刪除、對外傳送。分支內的讀寫不受影響。需要避開摩擦時,可以把讀外部內容的工作放進一個沒有敏感資料的工作階段,只傳回經模式校驗的結果。
相關概念
- Human Gate (人類閘門) 只在不可逆、對外或提權的動作之前出現,展示真實的差異。
- Agent Memory (智能體記憶) 筆記是你能讀能改的真相,索引只是可以丟棄的快取。
- Capability Lease (能力租約) 發給一次執行的、有期限與預算的窄域授權;子租約只能更窄。
引用本頁
為讀者、搜尋引擎和智能體提供穩定的網址與建議的引用格式。
- 建議引用格式
- Agent NAS project. “Trust Labels (信任標籤).” agentnas.com, 2026-11-11. https://agentnas.com/zh-tw/concepts/trust-labels/