前言¶
DeepSeek Harness(DSH)采用「一切皆插件」的扩展方式:第三方插件可以注册工具、改配置、在 Agent 会话里被调用。习惯做法是安装后再观察行为,或人工翻源码;插件一多,很难在装之前系统性地看「会写哪些路径、会不会起子进程、会不会往外 POST」。dsh-audit(Audit Console)面向同一类问题:在本地对目录、压缩包或 npm 规格做纯文本静态检查并给出 S–D 等级,安装后继续记录启停、敏感工具调用和 token 估算,数据落在本机 $DSH_HOME/dsh-audit/,不上传遥测。
维护者为 Shark00I,源码与说明见 GitHub:Shark00I/dsh-audit;社区目录页:skillhub.cn/plugins/Shark00I/dsh-audit(独立站点,与 DeepSeek / 幻方无官方从属关系)。当前版本 1.0.0(README 标注 2026-10-28 首发),许可证 MIT。
这是什么¶
dsh-audit 是 DSH 上的审计控制台:装插件前先审目标包,装完后看插件实际触发了哪些敏感操作。审计过程对受检对象只读文本,不 import、不执行、不解包到磁盘;对已安装插件的扫描不发网络请求;运行期监控不外发数据。dsh-audit 不会审计自身(扫描与监控均跳过本插件)。
环境要求(来自 README):
| 项 | 要求 |
|---|---|
| DSH | >= 0.2.1-rc.0(Desktop 与 dsh web) |
| Node | >= 20(可用 DSH 自带 Node) |
| OS | Windows 10+ / macOS 12+ / Linux,纯 ESM,无原生代码 |
| 运行时依赖 | 无;@deepseek-ai/* 由宿主提供 |
核心功能¶
安装前审计(Pre-install audit)¶
支持本地目录、.tgz / .tar.gz、npm spec,或 https tarball。全程文本分析,不导入、不执行、不解包到磁盘。
S–D 分级与 0–100 分¶
每个第三方插件根据证据扣分后映射等级,分数只表示相对风险,不是安全证明。等级含义如下:
| 等级 | 分数 | 含义 | 建议 |
|---|---|---|---|
| S | 90–100 | 低风险 | 可安装 |
| A | 75–89 | 可接受 | 可安装,按建议收紧 |
| B | 60–74 | 需留意 | 先看证据 |
| C | 40–59 | 谨慎 | 重点看命令执行与外连主机 |
| D | 0–39 | 高风险 | 除非信任来源,否则勿装 |
扣分项包括(节选):动态执行 −25、系统自启动 −12、混淆 −12、child_process −10、安装脚本 −10(若下载/执行再 −10)、对外 POST −10 等。README 与 locale 注释、压缩单行包等会跳过部分词法规则(URL 仍会收集)。
运行期监控(Runtime monitor)¶
只记录三类事实:
- 启停:插件经
internal/status进入/离开 ACTIVE 及持续时间。 - 敏感调用:在
tools/pre-execute与tools/result上匹配删除/写入/运行/网络/凭证等规则,以及plugin_manager、web_fetch/web_search目标等。 - Token 估算:按「四字符 ≈ 一 token」估算工具调用的参数与结果文本,归属到注册该工具的插件。
事件环形缓冲约 600 条,约每 3 秒或每 80 条刷入 $DSH_HOME/dsh-audit/events.jsonl,5 MB 轮转;空闲成本接近零。不轮询、不盯文件。
设置面板¶
路径:Settings → Audit。无需重启;若入口未出现,dsh web 下可刷新页面一次。各 Tab 职责:
| Tab | 内容 |
|---|---|
| Grades | 等级徽章、分数与证据芯片;可展开看数据去向、安装脚本、自启动、外发等 |
| Runtime | 运行中插件、各插件工具 token 估算、启停/敏感调用/管理变更时间线 |
| Errors | 插件加载失败、工具错误、会话错误 |
| Pre-install | 输入目录/压缩包/npm spec,给出是否建议安装及可关闭项 |
| Settings | 监控开关、敏感调用记录、启动扫描、排除列表、npm registry、清空 |
新装插件约 2 秒后触发重扫,面板约 6 秒轮询;也可点 Rescan 立即刷新。不列入扫描/监控的包括:@deepseek-ai/* 官方包、仅通过临时 --patch 加载且不在 profile package.json 中的项,以及设置中的排除列表。
Agent 工具与 HTTP API¶
Agent 侧工具:
plugin_audit audit installed plugins (profile?, plugin?, detail?)
plugin_audit_preinstall audit a not-yet-installed target (target: dir/archive/npm spec/https tarball)
plugin_audit 返回 Markdown 报告(概览 → 各插件等级/分数/证据 → 结论);detail: false 可省略 URL 列表。
同域 HTTP 接口(节选):
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /dsh-audit/api/state |
版本、设置、最近扫描、事件、错误、运行中插件 |
| GET | /dsh-audit/api/events?limit=&type=&plugin= |
事件与错误 |
| POST | /dsh-audit/api/scan |
触发扫描 |
| POST | /dsh-audit/api/preinstall |
{ target } 安装前审计 |
| POST | /dsh-audit/api/settings |
{ patch } 更新设置 |
| POST | /dsh-audit/api/clear |
清空事件与错误 |
其他插件可通过 ctx.audit 注册静态规则、订阅运行期事件、触发 scan() / preinstall() 等(卸载插件时该 Cordis 服务一并移除)。
安装与启用¶
Desktop¶
在 Plugins → Add plugin 中选择 dsh-audit 目录或压缩包,或执行:
dsh plugin --profile desktop add link:<absolute path to dsh-audit>
将 <absolute path to dsh-audit> 换成本机上的绝对路径。
dsh web¶
dsh plugin --profile web add dsh-audit # 发布到 npm 后可用
dsh plugin --profile web add link:<absolute path>
安装后打开 Settings → Audit 即可使用。
典型用法¶
安装前先审一个 npm 包或本地目录:在 Settings → Audit 的 Pre-install Tab 输入目标,或在 Agent 中调用 plugin_audit_preinstall,根据等级与证据决定是否安装、安装后应关闭哪些监控项。
已安装插件定期看等级与时间线:Grades Tab 看各插件分数与证据;Runtime Tab 看敏感调用与 token 估算。需要报告时可让 Agent 执行 plugin_audit,必要时设 detail: false 缩短输出。
自定义规则或联动(需改插件源码并重启 DSH):静态规则在 lib/rules.js,打分在 lib/scan.js 的 scoreOf(),运行期分类在 lib/runtime.js 的 classifyCall();HMR 不监视 profile 外目录。
适用场景与注意¶
适合:经常从社区或 npm 拉第三方 DSH 插件、希望在同一界面做「装前静态结论 + 装后行为时间线」的开发者。
务必知晓的边界(README 原文要点):
- 安装前审计看不到:严重混淆/压缩代码、运行时拼出的 URL、动态
import()、原生.node行为、node_modules内依赖(不展开)。 - 低分不等于恶意,高分不等于安全;审计只读文本,不替代人工读源码与许可证审查。
- 第三方插件与 dsh-audit 一样,在当前 DSH 进程权限下运行;安装任何插件前仍应检查来源、LICENSE 与自身威胁模型。
- 数据仅存
$DSH_HOME/dsh-audit/(如settings.json、scan.json、events.jsonl、errors.jsonl),无遥测;唯一可能出网的是你在 Pre-install 里显式指定的 npm spec 或 https URL(默认走registry.npmjs.org或你在设置里配置的 registry)。
结尾¶
dsh-audit 把「装前纯文本审计 + S–D 证据打分」和「装后启停/敏感调用/token 估算」收进 Settings → Audit 与 Agent/HTTP 接口,数据留在本机。若你要在 DSH 生态里系统化管理第三方插件风险,可从目录页或 GitHub README 对照安装命令与评分表使用。
- 目录页:https://www.skillhub.cn/plugins/Shark00I/dsh-audit
- GitHub:https://github.com/Shark00I/dsh-audit