DeepSeek Harness 插件

dsh-safeguard

DSH plugin: block dangerous shell commands and secret leakage before execution (tools/pre-execute veto)(英文原文)

跳到安装方式

来源信息

GitHub 仓库
ZhijiangTang/dsh-safeguard
最近更新
2026年8月16日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/ZhijiangTang/dsh-safeguard
插件名:dsh-safeguard
作者:ZhijiangTang

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

dsh-safeguard

面向 DeepSeek Harness(DSH)的危险命令 + 密钥泄漏拦截插件。挂载到 tools/pre-execute waterfall,在工具解析前短路拒绝,被拦截的副作用不会发生。

简介

  • 危险命令拦截:对 bash 工具的命令做正则匹配,命中即 deny
  • 密钥泄漏拦截:对所有工具的 arguments 做 JSON.stringify 后扫描常见密钥模式,命中即 deny
  • 可配置:危险/密钥检测开关、额外正则、精确豁免名单。
  • 两个辅助工具guard_list(列出当前规则)与 guard_check(纯检查不拦截,供调试/自检)。

> 重要:本插件是基于正则的启发式拦截,不验签、不识别密钥真伪、不做沙箱隔离。它无法替代密钥扫描器、签名校验或操作系统级沙箱,只能拦截明显的高风险动作。

安装

dsh plugin --profile <profile> add dsh-safeguard

本地开发安装:

dsh plugin --profile <profile> add file:./plugins/dsh-safeguard

默认规则表

危险命令(enableDanger

| 规则名 | 匹配内容 | |---|---| | rm -rf | rm -rf / rm -fr 且目标是 /*./../., ~$HOME | | git push --force | git push --force / --force-with-lease / -f | | git reset --hard | git reset --hard | | git clean -fd | git clean-fd / -df 等同时含 f、d 的标志 | | chmod -R 777 | chmod -R 777 | | mkfs | mkfs / mkfs.ext4 等 | | dd 写盘 | dd if=... of=/dev/... | | 重定向到块设备 | > /dev/sd[a-z] | | curl\|sh 管道执行 | curl ... \| shwget ... \| bash 等 | | SQL DROP | 以 DROP TABLE/DATABASE/INDEX/... 开头 | | SQL DELETE | 以 DELETE FROM 开头 | | SQL TRUNCATE | 以 TRUNCATE [TABLE] ... 开头 |

密钥泄漏(enableSecrets

| 规则名 | 匹配模式 | |---|---| | AWS Access Key (AKIA) | AKIA[0-9A-Z]{16} | | sk- API Key | sk-[A-Za-z0-9]{20,} | | GitHub PAT (ghp_) | ghp_[A-Za-z0-9]{30,} | | GitHub Fine-grained PAT (github_pat_) | github_pat_[A-Za-z0-9_]{10,} | | PEM 私钥 | -----BEGIN (RSA\|OPENSSH\|EC\|PGP) PRIVATE KEY----- | | Slack Token (xox-) | xox[baprs]-... |

> eyJ 开头的长 JWT 不拦截(模式太宽,误报率高)。

配置项

在 profile 的 cordis.patch.yml(或 bundle 配置)中覆盖:

- insert:
    - id: guard
      name: dsh-safeguard
      config:
        enableDanger: true      # 危险命令拦截开关(默认 true)
        enableSecrets: true     # 密钥泄漏拦截开关(默认 true)
        extraPatterns:          # 额外正则字符串(额外危险命令规则)
          - 'curl.*\|.*bash'
        allowList:              # 精确豁免名单(字符串完全一致才豁免)
          - 'rm -rf /tmp/safe-dir'
配置项类型默认说明
enableDangerbooleantrue是否拦截危险命令
enableSecretsbooleantrue是否拦截密钥泄漏
extraPatternsstring[][]额外危险命令正则(非法正则以警告跳过)
allowListstring[][]精确豁免:危险命令按整条命令、密钥按命中片段做完全一致匹配

两个工具的用法

guard_list

无参,列出当前启用的规则类别与条目数:

[dsh-safeguard] 规则清单
危险命令: 启用(12 条规则)
密钥检测: 启用(6 条规则)
额外正则: 0 条
豁免名单: 0 条

guard_check

参数 text(必填 string)。纯检查不拦截,返回命中规则名 / 类别 / 是否豁免:

  • guard_check("rm -rf /") → 命中,类别 danger,规则 rm -rf
  • guard_check("aws key: AKIAIOSFODNN7EXAMPLE") → 命中,类别 secrets,规则 AWS Access Key (AKIA)
  • guard_check("echo hello") → 通过

模型可通过 await tools.guard_check({ text: "..." }) 做程序化自检。

不验签、不做沙箱替代

  • 本插件只做正则模式匹配,不校验密钥真实性,也不校验命令签名。
  • 不是沙箱:不会隔离文件系统、网络或子进程,拦截的是「命中明显高风险模式」的调用。
  • 生产环境仍应配合密钥扫描器(如 gitleaks、trufflehog)、签名校验与操作系统级沙箱(如 dsh-bash-sandbox)使用。

License

MIT