shell.exec 的一個 deny、一個 egress
允許清單、一個只在 rm -rf 上觸發的引數子句——而現在你想知道它在
改變任何一次生產工具呼叫之前恰好做你認為的事。防火牆給你三種
非破壞性的方式來測試防火牆規則,每一個都回答一個不同的問題:
乾跑一次呼叫
Test 沙盒把一次合成的工具呼叫餵過真實引擎並傳回裁決——不派發、
不記錄任何東西。Developer+。
重放一個姿態
Simulate 對照你近期的流量重放一個自主等級,並計算它會封鎖
多少次呼叫。Member 可讀。
對照即時流量執行
影子模式在真實呼叫上評估一整個政策,但把每個強制執行的裁決
降級為
audit。零波及範圍。三者都透過主控台設定(或
/api/workspace/firewall/* 管理路由,
後者以你的工作階段/存取權杖驗證——而非一個中繼 sk-orca-…
金鑰)。你測試時,你代理的 /v1/* 中繼呼叫絕不改變。1. 以乾跑 Test 沙盒測試防火牆規則
Test 沙盒是最緊的迴圈:交給它一次合成的工具呼叫,它就執行真實 評估引擎——完整的政策解析、按優先順序走訪規則、第一個匹配者 勝出——然後傳回裁決、產生它的規則,以及人類可讀的原因。該呼叫是 一個乾跑:沒有東西被派發到任何工具,也沒有東西被寫入事件動態或 Discovered-tools 庫存。 它精確地回答一個問題:給定這個確切的工具名稱與這些引數,我的政策 決定什麼——以及哪條規則決定它?一次具體的乾跑
假設你已加入一條應該只在指令包含rm -rf 時拒絕 shell.exec 的
規則。你想一坐下就確認兩件事:危險的指令被拒絕,而一個無害的仍會
通過。
測試危險的呼叫
在 Security → Firewall 中,開啟 Test 分頁、挑選
response
介面、輸入工具名稱 shell.exec 與引數 {"command": "rm -rf /data"},
並執行。回應指名裁決與匹配到的規則:測試無害的呼叫
以
{"command": "ls -la"} 再執行一次。引數子句不再匹配,所以規則
落到政策預設值——你應該看見 allow 或 audit 與一個空的
rule_label。如果 rm -rf 拒絕而 ls -la 不拒絕,你的
引數子句就限定
正確了。inbound、response、mcp、
egress(預設 inbound)——所以在每條規則所固定的介面上測試它。在
inbound 上沒有呼叫時引數,所以一條 sanitize 規則會在那裡升級為
一個封鎖,與它在生產環境中完全相同;關於為何介面很重要,參見
介面。
2. 在你套用一個自主等級之前模擬它
Test 沙盒檢查一次呼叫。Simulate 回答姿態層級的問題:如果我把 這整個工作區切換到一個更嚴格的 自主等級, 它會封鎖我近期流量的多少? Simulate 對照你的尾隨防火牆事件重放一個候選等級的 deny 規則,並 傳回會發生的影響——只有工具名稱與計數,絕無引數。它是唯讀且 Member 可讀的,所以團隊上的任何人都能在一個 Developer 承諾之前 預覽tight 的波及範圍。
這三個等級會做什麼
這三個等級會做什麼
tight——default-deny、拒絕破壞性 shell、拒絕擷取形狀的工具 (SSRF 向量)、強制執行 PII Shield + Secrets Blocker。Simulate 顯示 這個底線會捕捉你真實流量的多少。balanced——預設audit、拒絕破壞性 shell、PII Shield 僅稽核 (標記 PII)。建議的起始姿態。permissive——僅觀察;不強制執行任何東西。
Simulate vs. 套用
Simulate vs. 套用
Simulate 什麼都不改變——它是對過去事件的一次假設。套用一個
自主等級(一項 Developer+ 寫入)會具體化出真實、可編輯的
autonomy_* 政策與防護欄列,並支援從稽核快照一鍵還原。用
Simulate 預覽,然後在計數看起來對的時候套用。3. 影子模式:對照即時流量測試而零波及範圍
Test 沙盒與 Simulate 是離線預覽。影子模式是即時的那個:一個 每政策的旗標,在真實代理流量上評估該政策、走訪每一條規則、挑選 一個裁決——然後把每個強制執行的裁決(deny、sanitize、
pending_approval)降級為 audit,並把原因加上前綴 [shadow] would …。呼叫總是會通過;沒有東西被封鎖、遮罩或保留。
那讓事件動態讀起來就像一次
關閉了強制執行的生產執行。按 [shadow] 篩選,你就有了該政策即將
開始封鎖的每一次呼叫的完整清單——就在它封鎖任何一次之前。
| 測試方法 | 對照執行 | 它回答的問題 |
|---|---|---|
| Test 沙盒 | 一次合成呼叫 | 「這個確切的呼叫得到什麼裁決,以及哪條規則決定?」 |
| Simulate | 近期事件 | 「一個更嚴格的自主等級會封鎖多少次呼叫?」 |
| 影子模式 | 即時流量 | 「跨真實生產流量,這個政策會封鎖什麼?」 |
影子模式是三者中最深入的——完整的即時涵蓋而零波及範圍。它有自己的
頁面:以影子模式推出防火牆政策
走過切換開關、
[shadow] would … 原因,以及切換為強制執行。4. 一個實用的測試順序
三個工具組合成一條安全推出路徑——最便宜的檢查在先、最廣的涵蓋 在後:5. API 參考
這些管理路由使用你的工作階段/存取權杖且是工作區範圍的:| 方法與路徑 | 角色 | 用途 |
|---|---|---|
POST /api/workspace/firewall/test | Developer+ | 對照解析後的(或一個草稿 policy_id)政策乾跑一次合成工具呼叫。傳回 verdict、policy_name、rule_label、reason、gap、shadow_mode。不派發、不記錄任何東西。 |
GET /api/workspace/firewall/simulate?level= | Member | 對照近期事件重放一個自主等級;傳回會被封鎖的計數。 |
GET /api/workspace/firewall/policies/:id | Member | 讀取一個政策目前的 shadow_mode 旗標。 |
PUT /api/workspace/firewall/policies | Developer+ | 切換政策上的 shadow_mode。 |
surface(預設 inbound)、一個必填的 tool_name、
可選的 args_json,以及一個用來覆寫解析的可選 policy_id。
接下來去哪裡
影子模式
即時流量推出:
[shadow] would …、事件篩選,以及切換為強制執行。驗證引數
把一條規則限定到哪些引數——Test 沙盒讓你對照
rm -rf vs
ls -la 驗證的子句。裁決
當一次測試不再是測試時,
allow / audit / deny / sanitize /
pending_approval / cap_cost 各做什麼。事件記錄
被影子化的裁決落入的地方——篩選、鑽入執行與匹配到的規則。
