前言¶
DeepSeek Harness (DSH) 采用插件化架构,开发者经常需要安装外部插件。在安装前,通常只能看到描述或演示,难以确知插件在运行时真实会触碰什么权限或注入什么内容。dsh-trust-check 提供静态能力披露。它基于代码判定,提供文件行号和原文片段作为证据,不消耗 token,也不提供“安全/可信”的结论。
安装与启用¶
若要使用 DeepSeek Harness 设置页中的体检功能,宿主版本需满足:
dsh --version
# 确保版本 >= 0.1.0-rc.8
安装插件:
dsh plugin --profile web add dsh-trust-check
如需升级,可指定 latest:
dsh plugin --profile web add dsh-trust-check@latest
安装后重启 dsh web,进入 设置 → 插件体检。
使用方式¶
插件提供 Web UI 和 CLI 两种使用方式,两者逻辑一致。
Web UI¶
Web UI 依赖宿主模块表里的 @deepseek-ai/dsh-client-store。如果宿主过旧或模块缺失,设置页可能加载失败。CLI 不依赖 DSH 宿主,旧版本 dsh 上仍可使用。
CLI¶
CLI 不依赖 DSH 宿主,适合作为 CI 闸门或本地审计工具。
# 审计默认 profile web
npx dsh-trust-check
# 审计其他 profile
npx dsh-trust-check --profile work
# 审计任意已解压的包目录(无需 profile、无需 DSH)
npx dsh-trust-check --dir ./path/to/plugin
# 指定 spec 并输出 JSON
npx dsh-trust-check --dir ./pkg --spec npm:foo@1.0.0 --json
# 用退出码做脚本 / CI 闸门
npx dsh-trust-check --dir ./pkg --exit-code
--dir 与 --profile 互斥。--json 输出为 AuditResponse 形状。
核心功能¶
插件从插件源码中提取静态事实:
- 能力面:检测 shell、文件读写、网络、凭据、子代理、LLM 调用、环境变量。
- 注入面:检测
cordis.patch.yml中的 override 或 disable 操作,以及systemPrompt注入。 - 来源面:验证来源(package.json 的 repository),检查是否锁定版本或提交。
- 成本面:估算技能文本和 system-prompt 注入的 token 成本(参考值)。
报告解读¶
报告采用决策优先布局,阅读顺序如下:
- 决策:查看徽章、动作句及风险说明。
- 扫描:查看能力芯片、注入摘要、来源。
- 取证:查看证据(文件:行号 + 原文片段)。
常见裁决:
* 有红线:命中硬红线,默认应停用;需确认风险后继续。
* 风险已确认:已确认当前红线风险。
* 需确认:未见硬红线,但有特权能力或 patch 改动。
* 能力如预期:已确认当前能力与去向指纹一致。
* 静态未见风险信号:未见红线或特权能力;不代表安全保证。
红线(高置信度风险)¶
以下情况默认应拦截:
1. 声明 install / postinstall / preinstall 安装脚本(prepare 不算红线)。
2. cordis.patch.yml override / disable 了 @deepseek-ai/* 核心 bundle。
3. 读到凭据/密钥的值(如 credentials.resolve、keytar.getPassword 等)且有网络访问。
4. 非 localhost、非 RFC 1918 内网 IP 的明文 http:// 外连(字面量)且有 network。
5. 非 loopback、非文档例网、非 RFC 1918 内网(10/8、172.16/12、192.168/16)的字面量 IP 外连 且有 network。
集成与 API¶
插件导出稳定 API,供安装前确认弹窗或 CI 闸门使用:
import { auditPlugin, collectPlugin, verdict } from 'dsh-trust-check'
const report = auditPlugin(collectPlugin(extractedDir, spec))
// verdict 返回 'red' | 'review' | 'clear'
// verdict(report) === 'red' → 命中高置信度风险信号,建议默认挡住
// verdict(report) === 'review' → 带特权能力,建议展示能力清单
// verdict(report) === 'clear' → 静态扫描未检出,不代表安全
注意事项¶
- 非杀毒软件:插件不做安全承诺,不提供背书。过滤策略由集成方和用户决定。
- 静态局限:静态扫描可能遗漏动态加载的能力(如
import('node:' + …))。 - 不展开依赖树:目录遍历跳过
node_modules。 - 退出码:默认退出码始终为 0。加
--exit-code后,0 代表未检出,1 代表需确认,2 代表有红线,3 代表扫描失败。
总结¶
dsh-trust-check 是一个用于 DeepSeek Harness 插件的静态审计工具,通过代码分析提供能力披露和来源验证,适合在安装插件前进行快速筛查。