前言¶
DeepSeek Harness (DSH) 的生態插件通常在智能體運行前掃描配置文件。dsh-egress-guard 位於工具執行流水線中,針對工具調用本身進行安全檢查。它通過三個擴展點工作:執行前的出口主機白名單、執行後的密文脫敏,以及全量的追加式審計日誌。
核心功能¶
dsh-egress-guard 作爲運行時安全網關,具備以下能力:
- 出口主機白名單(pre-execute):在工具執行前檢查網絡目標。若目標不在允許列表中(例如向不明站點發起
curl或未知的git push),則進行攔截或詢問。 - 密文脫敏(post-execute):在結果返回給模型或持久化會話之前,重寫結果中的敏感信息。
- 追加式審計日誌(JSONL):記錄每一次決策,包括
monitor模式下僅審計而不阻斷的決策。 - 實現方式:基於文檔化的擴展點監聽,無 forking,無修補循環。
安裝與啓用¶
安裝插件不會破壞現有工作流,默認處於 monitor 模式:
dsh plugin --profile <name> add dsh-egress-guard
默認配置中 mode: monitor,這意味着規則會被評估並記錄,但不會阻斷或重寫任何內容。確認審計日誌符合預期後,可在 cordis.patch.yml 中啓用強制模式。
配置說明¶
配置文件位於插件的 cordis.patch.yml 中。安裝後,請在你的配置中完整覆蓋 id: egress-guard 的 config 節。
基礎配置項¶
| 配置項 | 默認值 | 說明 |
|---|---|---|
mode |
monitor |
monitor 僅審計;enforce 阻斷並脫敏;off 不註冊任何規則。 |
egress.allowHosts |
[] |
允許的主機列表,支持通配符(如 *.github.com)。空列表意味着僅使用黑名單。 |
egress.denyHosts |
[] |
永久拒絕的主機列表,優先級高於 allowHosts。 |
egress.allowLoopback |
true |
允許 localhost、127.0.0.0/8、::1 等迴環地址。 |
egress.onViolation |
deny |
違規時的動作。deny 直接拒絕;ask 請求批准(若未掛載批准服務則降級爲 deny)。 |
redact.builtins |
true |
自動脫敏內置模式(私鑰、API Key、JWT、Bearer Header 等)。 |
redact.extraPatterns |
[] |
額外的正則表達式源,用於匹配自定義格式的密文。 |
redact.placeholder |
[redacted:{name}] |
脫敏後的佔位符,{name} 爲匹配到的正則名稱。 |
audit.path |
$DSH_HOME/egress-guard.jsonl |
審計日誌的本地路徑。 |
audit.logAllowed |
false |
記錄通過檢查的調用。開啓此選項可用於從真實流量構建白名單。 |
示例配置¶
- id: egress-guard
config:
mode: enforce
egress:
enabled: true
allowHosts: ['*.github.com', '*.npmjs.org', 'api.deepseek.com']
denyHosts: []
allowLoopback: true
onViolation: deny
redact:
enabled: true
builtins: true
extraPatterns: []
placeholder: '[redacted:{name}]'
audit:
enabled: true
path: ''
logAllowed: false
典型用法:從日誌構建白名單¶
在啓用 audit.logAllowed: true 並運行一段時間後,可以通過以下步驟分析實際訪問的主機並生成白名單:
- 安裝插件並保持
monitor模式運行。 - 修改配置啓用
audit.logAllowed: true,記錄所有通過的請求。 - 分析日誌文件,統計訪問頻率最高的主機:
jq -r '.hosts[]?' ~/.dsh/egress-guard.jsonl | sort | uniq -c | sort -rn
- 將統計出的合法主機添加到
allowHosts,並將mode改爲enforce。
侷限性與注意事項¶
- 安全邊界定位:它是護欄而非圍欄。它提高了事故或提示注入的門檻,無法阻止在機器上運行代碼的攻擊者。
- 檢測機制:檢測基於文本掃描。通過運行時拼接、Base64 編碼或十進制 IP 組裝的 destination 可能無法被檢測到。
- 進程級限制:工具若自行打開套接字(除非參數中包含目標地址),網關無法攔截。
- 脫敏機制:基於正則模式,可能對非密文產生誤判,也可能遺漏未知的密文格式。建議在強制模式前檢查審計日誌中的誤報。
- 二進制內容:插件不掃描二進制內容(如圖像塊)。
- 審計日誌:日誌本地存儲且未簽名,任何能寫入文件系統的進程均可篡改。
兼容性¶
該插件基於 @deepseek-ai/dsh-tools 0.1.0-rc 流水線契約構建。測試套件運行在 0.1.0-rc.6,並在 dsh 0.1.0-rc.5 環境下進行了四種安裝方式的驗證。
總結¶
dsh-egress-guard 通過在工具調用流水線中插入檢查點,爲 DeepSeek Harness 提供了運行時級別的出口控制和數據脫敏能力。配合審計日誌,可以逐步構建安全策略,適合需要在生產環境中控制智能體網絡行爲與數據泄露風險的場景。
- 插件目錄:https://www.skillhub.cn/plugins/tancheng33/dsh-egress-guard
- 源碼地址:https://github.com/tancheng33/dsh-egress-guard