前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的架构,插件生态正在快速扩张。随着目录中插件数量激增,恶意代码混入插件安装脚本、凭证窃取或网络回连的风险也随之增加。dsh-plugin-gate 是为此设计的安全插件,在执行 dsh plugin add 之前,先对插件源码进行静态扫描,并在运行危险命令前提供阻断或警告。
插件简介¶
- 插件名称:
dsh-plugin-gate - 维护者: 863683348
- 开源协议: MIT
- 核心定位: DeepSeek Harness 的安装安全门与数据保护守卫。
核心功能¶
该插件主要提供三类能力:
-
安装源扫描
- 使用 60 条静态规则扫描插件源码。规则分为高(31)、中(24)、低(5)三个严重级别。
- 扫描内容涵盖恶意安装脚本、凭证窃取、代码混淆及网络回调。
- 支持扫描目标为
npm tarball或本地目录。 - 通过 Google OSV 检查已知供应链漏洞。
- 安全特性: 扫描过程是只读的,绝不执行被扫描的代码,也不会向磁盘写入文件。
-
差异报告
- 生成基准线,用于对比历史扫描结果。
- 提供
gate_diff工具,识别新增、已解决或变更的风险点。
-
数据保护守卫
- 提供
gate_guard工具,在执行破坏性操作前评估风险。 - 检查目标路径是否在当前工作区边界内,以及是否为关键文件(如
.git、memory.json)。 - 根据
rm -rf类命令的签名,返回BLOCK(阻断)、WARN(警告)或PASS(通过)的裁决。
- 提供
安装¶
在 DSH 的 Profile 配置中添加该插件:
dsh plugin --profile <profile> add dsh-plugin-gate
典型用法¶
安装前先扫描插件源码:
gate_scan target: "npm:dsh-plugin-some-package"
gate_scan target: "npm:dsh-plugin-some-package@1.2.3"
gate_scan target: "./downloaded-plugin"
基线与报告¶
对比当前扫描结果与存储的基准线:
gate_diff target: "npm:dsh-plugin-some-package"
gate_diff target: "./downloaded-plugin" update: true
生成结构化报告以供 CI 或票据附件:
gate_report target: "npm:dsh-plugin-some-package"
gate_report target: "./plugin" format: "json" write: true
数据保护¶
在执行可能破坏系统的命令前进行评估:
gate_guard command: "rm -rf ./node_modules"
gate_guard path: ".dsh-memory-setup/memory.json" action: "delete"
配置项¶
插件支持以下配置(位于 DSH Profile 或配置文件中):
| 配置项 | 默认值 | 说明 |
|---|---|---|
maxFiles |
1000 | 单次目录遍历扫描文件数量上限 |
maxFileBytes |
2 MiB | 单个文件文本内容读取上限 |
includeNodeModules |
false | 是否递归扫描 node_modules 目录 |
maxTarballBytes |
32 MiB | npm 压缩包下载大小上限 |
allowlistHosts |
[] | 永不标记为违规的主机白名单 |
osvCheck |
true | 是否对精确版本依赖进行 OSV 漏洞查询 |
osvMaxDeps |
8 | 单次 OSV 查询的最大依赖数量 |
osvTimeoutMs |
10000 | 单个依赖 OSV 查询超时时间(毫秒) |
promptSection |
true | 是否向 Agent 注入扫描行为提示指导 |
注意事项¶
- 依赖要求: 需要
@deepseek-ai/dsh-tools、@deepseek-ai/cordis等对等依赖支持。 - 兼容性: 兼容
dsh-tools版本 0.1.0-rc.6 和 0.1.1-rc.2。早期版本存在 JSON Schema 语法不兼容导致 Profile 启动失败的问题,若遇到该错误需移除或升级插件。 - 扫描局限: 这是一个基于启发式的静态扫描器。它无法检测从未见过的恶意代码,且可能误报(将普通代码标记为可疑)。
- 运行权限: 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。
总结¶
dsh-plugin-gate 为 DSH 插件生态提供了一层防线,通过静态签名扫描和破坏性操作阻断,降低了引入恶意代码或意外删除关键文件的风险。结合 gate_diff 和 gate_report,可以在 CI 流水线或开发流程中自动化执行安全检查。