前言¶
在 DSH 的插件机制里,动态插件经常通过 cordis_define 和 cordis_run 安装或运行。对插件源码做静态审查、给出明确判定、保留操作者审批与白名单入口,是处理动态插件时的常见需求。dsh-plugin-security-review 提供这样一个守卫:它审查动态插件源码,按安全优先策略处理安装或运行,并提供 plugin_security_review / plugin_security_audit 两个工具。
这是什么¶
dsh-plugin-security-review 是 ShanHaiFish 维护的 DSH 插件安装安全审查守卫,许可证为 MIT。
它的定位是围绕 cordis_define / cordis_run 的动态插件源码做静态安全审查,按 BLOCK / ASK / WARN / ALLOW 处理安装或运行,并提供审查、审计、审批弹窗和本地白名单能力。静态 bundle 形态随 profile 层栈自动加载。
核心功能¶
- 对
cordis_define/cordis_run安装或运行的动态插件源码做静态安全审查。 - 按
BLOCK/ASK/WARN/ALLOW判定处理安装或运行。 - 提供
plugin_security_review/plugin_security_audit审查工具。 - 静态 bundle 形态随 profile 层栈自动加载。
- 支持浏览器审批弹窗:同意 / 同意+白名单 / 拒绝。
- 支持
trusted-local白名单,按prefixes/pluginIds/fingerprints直接放行。 - 人工批准
ASK后持久化代码指纹,并在后续命中相同指纹时自动放行。
安装与启用¶
推荐静态 bundle 形态:
dsh plugin --profile web add dsh-plugin-security-review
未发布或离线调试时,可以使用 file: 本地安装:
dsh plugin --profile web add file:/path/to/dsh-plugin-security-review
重启 dsh web 后,调用无参数的 plugin_security_audit,应显示:
守卫: 运行中 (v1.8.1)
典型用法¶
审批弹窗¶
静态 bundle 形态支持浏览器审批弹窗,选项为:
- 同意
- 同意+白名单
- 拒绝
人工批准的 ASK 成功后,会持久化代码指纹;后续命中相同指纹时自动放行。代码变更后,原指纹批准失效。
trusted-local 白名单¶
本地白名单文件位于:
<DSH_HOME>/storages/plugin-security-gate/trusted-local.json
可配置以下字段:
{
"prefixes": ["<prefix>"],
"pluginIds": ["<pluginId>"],
"fingerprints": ["<sha256>"]
}
命中 trusted-local 白名单时,对应 cordis_define / cordis_run 会直接放行。
回退官方审批 UI¶
如果希望 ASK 回退官方审批 UI,可配置:
<DSH_HOME>/storages/plugin-security-gate/config.json
内容为:
{"askMode":"seam"}
能力声明¶
在 cordis_define 的 purpose 末尾追加能力声明:
CAPABILITIES: spawn,network,env,fs
动态插件回退形态¶
动态回退形态用于没有 bundle 能力的 profile,基本步骤是:
- 读取
package-source.js与manifest.json。 - 调用
cordis_define。 - 调用
cordis_run激活。 - 调用
plugin_security_audit验证。
动态回退形态不跨 DSH 进程存续,重启后需要重新加载;该形态不提供浏览器审批弹窗。
适用场景与注意¶
适合以下场景:
- 需要在 DSH 中安装或运行动态插件。
- 需要对
cordis_define/cordis_run的插件源码做静态审查。 - 需要保留人工审批、代码指纹放行和本地白名单入口。
使用注意:
- 按 DSH 插件安装机制,插件以当前
dsh进程权限运行;安装前应先检查源码与许可证。 - 源码不可检索时,行为为 fail-closed,即
ask。 trusted-local白名单用于对抗未经操作者确认的高危安装,不是对抗 agent 自身的安全边界。- 在 full-access 部署中,agent 也能写
trusted-local文件。 - 将守卫自身 id/前缀加入
trusted-local白名单,会解除守卫自我保护。 trusted-local白名单写入失败只记日志,不影响代码指纹批准;读取侧仍保持 fail-closed。peerDependencies要求:@deepseek-ai/dsh-tools:^0.1.1-rc.2@deepseek-ai/dsh-cordis-host-runner:^0.1.1-rc.2- 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不应写成官方应用商店。
结尾¶
dsh-plugin-security-review 的价值在于把动态插件安装前的一次静态审查、一次明确判定、一次人工审批和一组白名单规则放到同一条路径里。它适合 DSH / 智能体开发者在需要管理动态插件安装与运行时使用。
GitHub 仓库:
https://github.com/ShanHaiFish/dsh-plugin-security-review
社区目录页:已核实资料未给出具体 URL。