前言¶
DSH 的插件生态强调“一切皆插件”。插件可以扩展命令、工具和工作区能力,但也意味着第三方代码会进入本地运行环境。对于智能体开发者来说,常见问题是:插件里有没有恶意调用?会不会注入提示词?会不会产生不必要的 token 消耗?手动审查源码、安装脚本和工具调用成本高,而且运行时危险动作也很难逐条盯住。
下面介绍 bigclawd/dsh-security-guard。它把安装前静态扫描和运行时危险动作拦截放到同一套机制里,并用 block / warn / clean 给出结论。
这是什么¶
dsh-security-guard 是 bigclawd 维护的 DeepSeek Harness 安全插件,许可证为 MIT。
它定位为静态扫描与运行时防护:扫描 DSH 插件和工作区中的恶意代码、上下文注入与 token 浪费,拦截危险的运行时工具调用和提示步骤,并暴露 /scan 命令、plugin_scan 工具、扫描 Web 面板和用户管理的 allowlist。
它的关键约束是:静态分析部分只做静态分析,不导入、不求值、不执行被扫描的代码。
核心功能¶
- 静态扫描:对源文件做规则分析;被扫描代码不会被导入或执行。
- 运行时观察:在危险工具调用、提示步骤和文件操作发生前进行拦截。
- 结果分类:结论归类为
block、warn或clean,可写入 JSON 或人类可读报告。 - 规则扩展:规则为普通 JSON,可按
id覆盖。 - 安装钩子:通过 profile-manifest watcher 自动扫描新安装的插件。
- 使用入口:
/scan命令、plugin_scan工具、实时 Web 面板、用户管理 allowlist。
运行时观察默认启用。
安装¶
在默认 profile 中安装:
dsh plugin --profile default add dsh-security-guard
在宿主应用中启用¶
下面是资料给出的宿主应用配置示例。它配置规则目录、扫描大小限制、运行时拦截、allowlist 文件、Web 面板路径和安装钩子轮询间隔。
ctx.plugin(Guard, {
rulesDir: 'config/guard-rules',
scan: {
maxFiles: 5000,
maxFileSize: 4 * 1024 * 1024,
skipSegments: ['node_modules', '.git', 'dist', 'lib']
},
runtime: {
enabled: true,
blockOnSeverity: ['block'],
maxFindingsPerScan: 200
},
allowlist: {
file: 'data/guard-allowlist.json'
},
web: {
enabled: true,
path: '/scan'
},
installHook: {
enabled: true,
intervalMs: 5000
}
})
这段配置的作用是把插件注册到宿主应用,并指定静态扫描、运行时拦截、allowlist 和 Web 面板的运行参数。
典型用法¶
静态扫描¶
对人可读报告:
/scan ./plugin-dir
输出机器可读 JSON:
/scan ./plugin-dir --json
写入指定报告文件:
/scan ./plugin-dir --json --out report.json
plugin_scan 工具¶
也可以使用 plugin_scan 工具,参数为:
target, severity, json, out
Web 面板¶
Web 面板由 harness web server 在配置路径下提供,默认路径为:
/scan
适用场景与注意¶
适合以下场景:
- 安装第三方 DSH 插件前做静态检查。
- 对工作区文件做扫描和报告输出。
- 对运行时工具调用和提示步骤做危险动作拦截。
- 用 JSON 规则、allowlist 和 severity 覆盖维护扫描策略。
需要注意:
- 插件会获得当前 dsh 进程权限。使用前应检查源码、许可证和安装时执行行为。
- 建议先扫描再安装。恶意
postinstall会在包安装时运行;先用/scan检查目标包,再执行dsh plugin add。 - 误报可能存在。允许使用 allowlist 和
ruleSeverity覆盖处理。 - 混淆是军备竞赛。该插件是风险降低层,不是安全证明。
结尾¶
dsh-security-guard 的价值在于把插件安装前检查、工作区扫描和运行时危险动作拦截整合到 DSH 中使用,并用 block / warn / clean 给出可审计的结果。
GitHub 仓库:
https://github.com/bigclawd/dsh-security-guard
本文资料未提供已核实的社区目录页链接。