增加危险操作策略检查、输出脱敏和安全审查工作流。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:lonelymoon87/dsh-guardian
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
面向 DeepSeek Harness 的运行时危险操作策略、规范结果脱敏和安全审查工作流。
v0.1.3 已针对 DSH 0.1.0-rc.8 与 0.1.1-rc.1 验证,同时保留兼容 rc.6 的 peer 范围。项目继续通过 GitHub Release 分发预构建包。未加 scope 的 npm 包名已被其他发布者占用,因此本项目不在该名称下发布。
MVP
- 在
tools/pre-executewaterfall 中检查 shell、SQL 和结构化文件写入参数,返回deny、ask或保持原决策; - 提供
standard、strict和permissive三档策略,同时保留不可关闭的拒绝规则; - 允许用正则表达式添加部署环境专属的
deny或ask规则; - 在
tools/post-executewaterfall 中对规范 JSON 结果、失败输出、渲染文本和拦截反馈做统一脱敏; - 把连续文本块作为一段内容扫描,避免通过跨块拆分密钥绕过检测;
/security-review加载内置的只读安全审查技能。
本插件不是进程沙箱、授权系统或完整的数据防泄漏服务,也不会取代下游 provider 已有的安全策略。
策略行为
内置规则会拒绝对根目录或用户目录执行递归强制删除、把网络响应直接管道传给 shell、向 /dev 写入原始数据以及写入 /etc。强制推送、破坏性 SQL 和其他递归强制删除会要求审批。严格模式还会要求审批 sudo,宽松模式只保留拒绝规则。
Guardian 始终调用 next()。当其他策略监听器也返回决策时,插件保留更严格的结果,优先级依次为 deny、ask、allow。
脱敏行为
内置模式覆盖 AWS access key ID、GitHub token、sk- API key、PEM 私钥块和常见凭据赋值。存在规范 JSON 值时,插件优先脱敏该值,并保留数组、对象、数字、布尔值和 null 的结构。这样可以避免 Code Mode 或后续渲染器在安全显示文本背后继续持有未脱敏结果。
日志只记录工具名、匹配数量和脱敏标签,不记录秘密内容。插件不会追加自定义会话事件,因为当前外部插件 API 无法声明 ignorable 事件信封。写入必须识别的未知事件会导致用户卸载插件后无法读取旧会话。
权限与数据
- Guardian 在当前 DSH 进程内检查工具名、参数、规范结果和渲染输出。它可以拒绝调用或要求审批,但不会自行执行目标操作。
- 脱敏会在后续模型可见消费者收到规范结果前替换秘密文本。日志只保留工具名、匹配数量和不含秘密的标签。
- 插件不读取凭据存储,不发起网络请求,不写入工作区文件,不发送遥测,也不持久化自定义会话事件。
安装
当前代码支持 DSH >=0.1.0-rc.6 <0.2.0 插件 API,要求 Node.js ^22.19 || >=24。
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 及以上版本默认拒绝执行,第一次安装失败时请按 DSH 输出的提示,将准确的包键加入 profile 的构建白名单,然后重新执行同一条命令。需要装进一次性 Agent profile 时,把命令中的 web 换成 headless。
升级时用新版本的 Release URL 再执行一次 dsh plugin add。卸载时执行
dsh plugin --profile web remove dsh-guardian
配置
- 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。表达式或标签无效时,插件会在加载阶段明确失败。
发布验证
测试覆盖全部内置规则的正反例、结构化路径、策略组合、嵌套规范值、自定义凭据、跨块秘密、禁用脱敏、命令分派和非法配置。
- v0.1.3 tarball 已从 HTTPS Release URL 直接安装进全新的 DSH 0.1.0-rc.8 与 0.1.1-rc.1 profile;
- pack 产物与固定版本 GitHub 源码安装均通过
dsh --dump-config检查; - CI 覆盖 Node 22.19 与 Node 24,兼容矩阵会分别使用 DSH 0.1.0-rc.8、npm
latest与next标签重跑真实安装; - bug 与兼容性问题统一进入 GitHub Issues。
许可证
链接
同类插件
toby-bridges/api-relay-audit★ 860
从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。
SeaOf0/dsh-redteam-model★ 638
面向授权安全研究的 DSH 合集:九个工作模式(redteam 总控、渗透测试、代码审计、二进制分析、攻防评估、免杀对抗、应急溯源、云安全攻防、CTF 解题)与十五个运行时插件,设置页管理台支持一键部署、安装、更新与卸载。
howmp/dsh-pentest★ 558
面向 DeepSeek Harness 的授权渗透模式:以探索链路记录目标、线索、资产与漏洞,并在 Web 中可视化展示。
PerryLink/dsh-auto-review★ 206
审批链上的第二模型自动审查:只读审查子代理返回带理由的 allow/deny 结构化裁决,默认 fail-closed。
NanmiCoder/dsh-auto-mode★ 163
在 Workspace Write 与 Full access 之间增加 Auto 权限档:日常操作留在官方 workspace-write 沙箱内,由当前会话模型复核升权与破坏性调用,精确的越界访问按次放行一次,意图不明时询问,命中关键路径则拒绝。
PerryLink/dsh-permission-rules★ 114
Claude Code 风格的声明式权限规则:按序 allow/deny/ask 的 YAML 规则,在 tools/pre-execute 瀑布上匹配工具名、参数、工作区路径与 agent 身份,带完整会话日志审计、干跑模式与热重载。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。