dsh-approval-gate:DeepSeek Harness 命令審覈與阻斷插件

DeepSeek Harness 的插件生態允許自定義行爲,但若沙箱配置寬鬆,智能體仍可能執行危險操作。dsh-approval-gate 通過註冊 tools.guard,在工具執行前進行攔截。它將無法完全檢查的命令路由到 DSH 的原生審批流程,並阻斷已識別的危險操作。

插件簡介

這是 GooDAnDReaY 維護的 DeepSeek Harness 原生命令審覈插件。它是一個基於 MIT 許可的開源工具,旨在爲 bash 命令和文件寫入工具提供安全攔截。

安裝與啓用

通過 npm registry 安裝插件。安裝後需在對應 profile 中保持 gate 啓用。

dsh plugin --profile web add @goodandready/dsh-approval-gate@0.1.3

核心功能

插件通過註冊 tools.guard 在工具體運行前拒絕調用。其核心能力包括:

  1. 命令預處理與阻斷:使用 lib/bands.js 進行快速兩頻段預過濾(Band 0 硬阻斷,Band 1 安全檢查)。對於已知危險的操作(如 rm -rf、DROP TABLE),直接返回阻斷字符串。
  2. 不確定命令路由:對於無法完全檢查的命令(如未閉合引號、管道、heredoc),路由至 DSH 原生審批流。
  3. 文件寫入防護:按路徑而非正則文本分類文件寫入工具(如 write, edit, str_replace),防止寫入敏感文件(如 .env, id_rsa, /etc/shadow)。
  4. 環境與憑證保護:通過 lib/inspect-env.js 防止環境變量泄露、procfs 讀取和密鑰轉儲。通過 lib/redact.js 在審計消息中脫敏敏感信息。
  5. 熔斷機制:通過 lib/breaker.js 防止因安全阻斷導致的無限智能體重試循環。

配置

插件支持通過 cordis.patch.yml 配置。可選字段包括:

字段 類型 默認值 說明
toolName string bash 指定要檢查的 tool 的 command 參數
fileWriteTools string[] write, edit, Write, Edit, str_replace, apply_patch 按路徑分類的文件寫入工具

示例配置:

- insert:
    - id: dsh-approval-gate
      name: @goodandready/dsh-approval-gate
      config:
        toolName: bash
        fileWriteTools:
          - write
          - edit
          - Write
          - Edit
          - str_replace
          - apply_patch

典型用法

插件對命令行爲的分類如下:

  • 阻斷:
    • rm -rf /tmp/x, sudo rm -r ...:阻斷。
    • chmod/chown 修改 .env / id_rsa:阻斷。
    • mysql << EOF DROP TABLE...:阻斷。
    • curl ... \| python3:阻斷。
    • bash -c "rm -rf /tmp/x":阻斷(嵌套 shell)。
    • kill / pkill / killall 作爲主命令:阻斷。
  • 請求審批:
    • source script.sh, . script.sh:請求審批。
    • 帶有未閉合引號、$IFS、$(...) 或 heredoc << 的命令:請求審批。

注意事項與適用場景

  • 非完整解析器:它不是完整的 bash 解析器。未知或不完整的語法會請求審批。如果審批不可用或配置爲 approval=never,DSH 會拒絕該調用。
  • 文件掃描限制:對於先前創建並稍後執行的腳本文件,插件不會打開並掃描該文件(僅檢查執行命令本身)。
  • 非系統沙箱:它僅攔截 DSH 工具調用。cron 和 systemd 從不經過 tools.guard。
  • 權限要求:插件以當前 dsh 進程權限運行。安裝前應檢查源碼與許可證。

結語

該插件通過命令前攔截和不確定命令路由,爲 DSH 提供了輕量級的命令安全層。

羽毛球分组比赛记分
小程序二维码

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

小夜