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 和结构化文件写入参数分类为 denyask 或 unchanged。

主要能力包括:

  • 提供 standardstrictpermissive 三种 profile,在保留不可协商 deny 规则的同时提供不同审批级别。
  • 支持自定义正则表达式规则,用于添加部署相关的 denyask 决定。
  • Guardian 始终通过 next() 委派;如果其他策略监听器返回决定,最严格结果胜出:deny 高于 askask 高于 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 || >=24v0.1.3 在 DSH 0.1.0-rc.80.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 只能包含 imsu。无效表达式和 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
羽毛球分组比赛记分
小程序二维码

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

小夜