前言¶
在 DeepSeek Harness(DSH)里,Agent 每一轮请求都会把 MCP 工具的名称、描述、JSON Schema,以及 Skills 的摘要和正文拼进上下文。这些内容往往来自外部 MCP 服务器、项目目录或第三方 Skill 包,审查强度通常低于代码依赖。工具描述里出现「忽略之前的指令」、用零宽字符隐藏指令、Schema 过于宽松、或单个服务器注册过多工具占用上下文,都是常见且容易被忽略的攻击面。
下面介绍维护者 H3OOCH 的 dsh-trust-center(分类 admin-security)。它不替你做插件安装或启动恢复,而是对「即将被模型信任的外部文本」做启发式、只读扫描,并把结果放进 Web 主界面的 Trust Center 面板,同时提供 Agent 可调用的 trust_scan 工具。
这是什么¶
DSH Trust Center 是 DSH 的一个只读信任审计插件。它检查 MCP 工具与 Skills 中的提示注入信号、隐藏 Unicode、HTML 注释、编码载荷、危险能力标签、Schema 膨胀和上下文成本,输出可读、可展开的证据列表。
重要边界(README 原文强调):这是启发式审计,不是运行时沙箱,也不是安全认证。它不执行、不拦截、不自动禁用任何 MCP 服务器或 Skill;未被标记不代表安全。
社区目录页:skillhub.cn/plugins/H3OOCH/dsh-trust-center。源码与文档:GitHub H3OOCH/dsh-trust-center。许可证 MIT。
核心功能¶
MCP 工具侧¶
扫描已注册工具的名称、描述和 Schema,规则方向包括:
- 提示注入:覆盖既有指令、混淆系统/开发者身份、要求对用户隐瞒、凭据外发等;
- 隐藏字符:双向控制符、标签字符、零宽字符、不可见格式与控制字符;
- 隐藏 HTML 注释与长编码载荷;
- 过大的描述或 Schema、重复上下文成本、工具数量过多的服务器;
- 宽松或空泛的 Schema;
- 危险能力标签:命令执行、文件写入、网络、凭据、数据库、浏览器等。
说明:MCP 服务器的 instructions、transport 和连接状态未通过公开工具 API 暴露;插件只能审计已注册工具的描述和 Schema。若某 MCP 服务器没有任何已注册工具,插件看不到该服务器。
Skills 侧¶
覆盖 Skill 摘要、whenToUse 和正文,检查提示注入、隐藏字符、HTML 注释、破坏性/远程执行类命令示例、凭据与敏感路径访问、正文过大带来的上下文成本;并展示来源与路径(路径尽量脱敏为 ~/...)。扫描范围是已注册工作区;未被工作区注册的项目目录不在结果中。
Web Trust Center 面板¶
安装并重启 DSH Web 后,左侧栏会出现 信任中心 / Trust Center,也可从 Settings → Trust Center 进入同一面板:
- 概览:风险分、等级、高/中/低风险数量、扫描覆盖范围;
- MCP 工具:按服务器分组,工具数、上下文 token 估算、能力标签与风险信号;
- Skills:来源、路径、字符数、token 估算与风险信号;
- 每条信号可展开字段、行号、有界文本片段、建议与规则 ID;
- 右上角可重新扫描;面板底部说明扫描边界与隐私策略。
远程访问 Web 时,面板会提示只在本机可用,避免把工具描述和证据片段暴露给非本机浏览器。
Agent 工具 trust_scan¶
Agent 在需要时可调用 trust_scan:
| 参数 | 默认 | 说明 |
|---|---|---|
format |
markdown |
markdown 返回中文摘要;json 返回完整结构化报告 |
可复现的用法示例(README):
帮我审计一下当前 MCP 工具和 Skills,看看有没有提示注入或隐藏指令。
风险分¶
仅用于排序注意力,公式为 high × 18 + medium × 7 + low × 2,上限 100;等级 A(0–9)、B(10–29)、C(30–59)、D(60+)。不是概率,也不是安全评级。
工具指纹与基线(GitHub main / 0.2.0,尚未发布到 npm)¶
为每个 MCP 工具计算 SHA-256 指纹(服务器名、工具名、描述、Schema),标记 changed / new / removed。默认是内存基线,Host 进程重启后重置。点击 记录当前基线 后,才会写入当前 profile 的 hash-only 文件:
<DSH_PROFILE_DIR>/trust-center/baseline.json
文件只含服务器名、工具名、SHA-256 和 first-seen 时间;不含描述、Schema 或工具输出。已有基线文件时,变化后需显式 接受当前状态 才会更新;扫描本身不写文件。持久化基线只覆盖 MCP 工具,不覆盖 Skills。
安装与启用¶
npm 上当前正式版为 0.1.0,安装命令如下:
dsh plugin --profile web add dsh-trust-center
README 注明:tool fingerprint / baseline 等功能在 GitHub main(package.json 版本 0.2.0)上,尚未发布到 npm。若要先使用这些能力,从 GitHub 安装:
dsh plugin --profile web add github:H3OOCH/dsh-trust-center
不要手工指定 npm 上的 0.0.0-stage 占位版本;latest 为 0.1.0。安装后重启 DSH Web 即可看到 Trust Center 入口。
本地开发可 link 安装(路径按本机修改):
dsh plugin --profile web add link:D:/path/to/dsh-trust-center
运行环境要求(package.json):Node >=22.0.0,DSH >=0.2.1-rc.2 <0.3.0-0,且使用 --profile web。
典型用法¶
- 安装插件并重启 DSH Web,打开 Trust Center,查看概览与 MCP / Skills 明细,对高风险信号展开核对规则 ID 与片段。
- 在对话中让 Agent 调用
trust_scan(或直接使用上述中文示例),获取 markdown 摘要或format=json的完整报告。 - 若使用 GitHub 版 0.2.0:在确认 MCP 工具列表可信后,用 记录当前基线 持久化指纹;日后出现
changed时再人工决定是否 接受当前状态。
首次验证 MCP 面板时,README 建议从低风险服务器试起(如 Sequential Thinking、限定目录的 Filesystem、可丢弃仓库的 Git),不要用 home 目录、真实凭据或生产库做第一次测试。细节见仓库内 docs/testing-mcp.md。
适用场景与注意¶
适合谁:在 DSH 里接入了多个 MCP 服务器或 Skills、希望在改配置或引入新来源后做一次「外部文本」复查的开发者与管理员。
隐私与设计:审计只读,不修改 MCP 配置、Skill 文件或会话内容;Host 侧读取当前运行时已暴露的 schema 与 Skill,不联网上传;浏览器侧只收到计数、来源标识和有界证据片段,完整 Skill 正文不发送到浏览器。快照与基线路由仅接受 loopback,GET/POST 限制见 README「隐私与安全」一节。
插件权限:与其它 DSH 插件一样,以当前 DSH 进程权限运行。安装前应自行查看源码与 MIT 许可证,确认符合你的安全策略。规则启发式可能误报或漏报;结果应作为复查起点,不能替代放行或拦截决策。本插件不扫描插件包源码;供应链审计需用专门的插件健康/安全工具。
DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
DSH Trust Center 把 MCP 工具描述、Schema 与 Skills 正文中容易被忽略的注入与成本信号,整理成 Web 面板与 trust_scan 报告,并可选记录 MCP 工具指纹基线——在明确「只读、非认证」边界的前提下,适合作为引入外部 MCP 与 Skill 后的第一道人工复查。
- 目录页:https://www.skillhub.cn/plugins/H3OOCH/dsh-trust-center
- GitHub:https://github.com/H3OOCH/dsh-trust-center