dsh-guardian:爲 DeepSeek Harness 增加危險操作策略與輸出脫敏

前言

在 DeepSeek Harness(DSH)的插件機制下,智能體可以調用 shell、SQL、文件寫入等工具。如果這些調用直接執行,危險操作和憑證泄露會依賴底層環境兜底。lonelymoon87/dsh-guardian 提供執行前策略、執行後 canonical 輸出脫敏,以及只讀安全審查 skill。

下面介紹它的定位、核心能力、安裝方式、配置示例,以及使用時需要注意的邊界。

這是什麼

dsh-guardian 是 DSH 插件,倉庫地址爲 lonelymoon87/dsh-guardian,許可證爲 MIT。

它檢查工具名稱、參數、canonical 結果和渲染輸出,可以拒絕調用或請求審批,但從不自己執行所請求操作。它不是進程沙箱、授權系統、數據防泄漏服務,也不替代其下掛載的 provider 策略。

核心能力

執行前策略

dsh-guardian 提供 tools/pre-execute 瀑布策略,將危險 shell、SQL 和結構化文件寫入參數分類爲 deny、ask 或 unchanged。

主要能力包括:

  • 提供 standard、strict、permissive 三種 profile,在保留不可協商 deny 規則的同時提供不同審批級別。
  • 支持自定義正則表達式規則,用於添加部署相關的 deny 或 ask 決定。
  • Guardian 始終通過 next() 委派;如果其他策略監聽器返回決定,最嚴格結果勝出:deny 高於 ask,ask 高於 allow。

內置規則包括:

  • deny:遞歸強制刪除根目錄或家目錄、網絡響應管道進入 shell、向 /dev 原始寫入、向 /etc 寫入。
  • ask:force push、破壞性 SQL 等請求。

執行後脫敏

dsh-guardian 提供 tools/post-execute 瀑布,從 canonical JSON 結果、失敗、渲染文本和 block feedback 中刪除常見憑證。

具體行爲如下:

  • 內置刪除模式覆蓋 AWS access-key ID、GitHub token、sk- API key、PEM 私鑰塊和常見憑證賦值。
  • 連續文本塊作爲一條流掃描,避免憑證跨塊拆分繞過刪除。
  • 當 canonical JSON 值存在時,刪除應用於該值,並保留數組、對象、數字、布爾值和 null。
  • 日誌只包含工具名稱、匹配計數和刪除標籤。

安全審查

/security-review 會加載內置的只讀安全審查 skill。

安裝與升級

插件支持 DSH >=0.1.0-rc.6 <0.2.0 插件 API 和 Node.js ^22.19 || >=24。v0.1.3 在 DSH 0.1.0-rc.8 和 0.1.1-rc.1 上測試,並保留 rc.6 兼容 peer 範圍。

預構建包通過 GitHub Releases 分發;未加作用域 npm 名稱由其他發佈者擁有,因此該項目不發佈到該名稱。

安裝預構建發佈包:

dsh plugin --profile web add https://github.com/lonelymoon87/dsh-guardian/releases/download/v0.1.3/dsh-guardian-0.1.3.tgz

這個 release tarball 是預構建的,不需要額外構建允許。

固定版本源碼安裝:

dsh plugin --profile web add github:lonelymoon87/dsh-guardian#v0.1.3

源碼安裝會運行 prepare 構建。pnpm 10 和更高版本會拒絕它,直到 profile allowlist 了失敗命令打印的精確 package key;按提示 allowlist 後,重新運行相同的 dsh plugin add 命令。

如果目標是 one-shot agent profile,可以把 web 替換爲 headless。

升級時重新運行 dsh plugin add,並使用較新的 release URL。

卸載:

dsh plugin --profile web remove dsh-guardian

配置示例

配置使用 YAML 數組,示例如下:

- id: guardian
  name: dsh-guardian
  config:
    profile: standard
    rules:
      - name: production-host
        pattern: production\\.internal
        action: ask
        reason: production target requires review
    redaction:
      enabled: true
      patterns:
        - label: internal-token
          pattern: INT_[A-Z0-9]{12}

正則表達式 flags 只能包含 i、m、s、u。無效表達式和 label 會在插件加載時失敗。

適用場景與注意

dsh-guardian 適合在 DSH 環境中需要約束危險工具調用、避免常見憑證進入模型可見輸出的開發者。安裝前應先檢查源碼和 MIT 許可證,並確認當前 DSH 進程權限是否符合預期。

需要注意:

  • 它是 MVP,不是進程沙箱、授權系統、數據防泄漏服務,也不是替代其下掛載的 provider 策略。
  • 它不讀取憑證存儲、不發起網絡請求、不寫工作區文件、不傳輸遙測、不持久化自定義會話事件。
  • 插件不追加自定義會話事件,因爲當前外部插件 API 未暴露可忽略事件信封;發出必需的未知事件可能使卸載後舊會話不可讀。
  • 它檢查工具名稱、參數、canonical 結果和渲染輸出,可以拒絕調用或請求審批,但從不自己執行所請求操作。
  • 源碼安裝可能觸發 pnpm 10 和更高版本的構建命令 allowlist 流程。

結尾

經過上面的安裝和配置,dsh-guardian 爲 DSH 提供了一組運行時危險操作策略、canonical 輸出脫敏和只讀安全審查入口。它適合與現有 provider 策略一起使用,而不是替代底層安全機制。

GitHub 倉庫:

  • https://github.com/lonelymoon87/dsh-guardian
羽毛球分组比赛记分
小程序二维码

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

小夜