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 提供了轻量级的命令安全层。

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

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

Xiaoye