DSH Trust Center:MCP 工具与 Skills 的只读信任审计

前言

在 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。

典型用法

  1. 安装插件并重启 DSH Web,打开 Trust Center,查看概览与 MCP / Skills 明细,对高风险信号展开核对规则 ID 与片段。
  2. 在对话中让 Agent 调用 trust_scan(或直接使用上述中文示例),获取 markdown 摘要或 format=json 的完整报告。
  3. 若使用 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜