dsh-egress-guard: DeepSeek Harness 運行時安全網關

前言

DeepSeek Harness (DSH) 的生態插件通常在智能體運行前掃描配置文件。dsh-egress-guard 位於工具執行流水線中,針對工具調用本身進行安全檢查。它通過三個擴展點工作:執行前的出口主機白名單、執行後的密文脫敏,以及全量的追加式審計日誌。

核心功能

dsh-egress-guard 作爲運行時安全網關,具備以下能力:

  1. 出口主機白名單(pre-execute):在工具執行前檢查網絡目標。若目標不在允許列表中(例如向不明站點發起 curl 或未知的 git push),則進行攔截或詢問。
  2. 密文脫敏(post-execute):在結果返回給模型或持久化會話之前,重寫結果中的敏感信息。
  3. 追加式審計日誌(JSONL):記錄每一次決策,包括 monitor 模式下僅審計而不阻斷的決策。
  4. 實現方式:基於文檔化的擴展點監聽,無 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 並運行一段時間後,可以通過以下步驟分析實際訪問的主機並生成白名單:

  1. 安裝插件並保持 monitor 模式運行。
  2. 修改配置啓用 audit.logAllowed: true,記錄所有通過的請求。
  3. 分析日誌文件,統計訪問頻率最高的主機:
    jq -r '.hosts[]?' ~/.dsh/egress-guard.jsonl | sort | uniq -c | sort -rn
  1. 將統計出的合法主機添加到 allowHosts,並將 mode 改爲 enforce。

侷限性與注意事項

  1. 安全邊界定位:它是護欄而非圍欄。它提高了事故或提示注入的門檻,無法阻止在機器上運行代碼的攻擊者。
  2. 檢測機制:檢測基於文本掃描。通過運行時拼接、Base64 編碼或十進制 IP 組裝的 destination 可能無法被檢測到。
  3. 進程級限制:工具若自行打開套接字(除非參數中包含目標地址),網關無法攔截。
  4. 脫敏機制:基於正則模式,可能對非密文產生誤判,也可能遺漏未知的密文格式。建議在強制模式前檢查審計日誌中的誤報。
  5. 二進制內容:插件不掃描二進制內容(如圖像塊)。
  6. 審計日誌:日誌本地存儲且未簽名,任何能寫入文件系統的進程均可篡改。

兼容性

該插件基於 @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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜