前言¶
在 DeepSeek Harness(DSH)里装第三方插件,很多人会在安装前扫一遍源码。但插件会发新版本:上一版可能只是读文件,下一版多了一行 child_process.execSync,你本地早就不是当初审的那份代码,却很少会有人提醒你「该重新看一眼」。
现有安全类插件大多解决的是「装之前」的问题。dsh-drift 面向的是升级之后:在你说「这版审过了」的那一刻存一份能力基线,升级后再对比,只报告比基线多出来的能力,不打分、不判恶意。下面介绍它做什么、怎么用,以及边界在哪里。
这是什么¶
dsh-drift(维护者 Daphne999)是 DSH 社区目录里归类为 admin-security 的插件,当前版本 v0.1.0,许可证 MIT。
一句话定位:插件能力漂移检测——存基线,升级后只报新增能力(安装期脚本、shell/eval、外联域名、凭据路径、原生依赖等静态画像项)。
它不回答「新增是不是恶意」,也看不到运行时才出现的行为;只回答:相对你存的基线,这版多出了什么。
核心功能¶
工作流程¶
审完某一版插件后,对该插件目录执行 drift_baseline 写入基线;中间若发生升级,再对同一目录执行 drift_check,输出仅包含新增项。能力减少、仅版本号变化都不报告。
drift_baseline { target: "某个插件目录" } ← 审完存基线
↓(中间插件升级了)
drift_check { target: "同一个目录" } ← 只报新增了什么
README 中的输出示例:
🔴 dsh-foo 1.2.0 → 1.3.0:新增了 3 项能力(high)
· 新增安装期脚本 postinstall
· 新增能力 execSync
· 新增凭据路径访问 .ssh
三个工具¶
| 工具 | 作用 |
|---|---|
drift_baseline { target } |
存当前能力基线 |
drift_check { target } |
对比基线,只报新增 |
drift_list {} |
列出已存基线 |
基线文件路径:~/.dsh/drift/baselines/<插件名>.json。
设计原则(与严重度)¶
- 只报新增:减少能力视为变安全,不列入告警;版本变化 alone 不报。
- 画像稳定:相同代码两次扫描结果逐字节一致,避免漂移检测误报。
- 不评分:只陈述「多了什么」,避免「分数差不多就放行」的错觉。
新增项的严重度(摘自 README):
| 新增 | 级别 | 理由 |
|---|---|---|
| 安装期脚本 | high | 跑在安装那一刻,最容易藏东西 |
child_process / eval / vm |
high | 能把代码变成命令 |
凭据路径(.ssh / .env / api_key) |
high | 直接对着秘密去 |
原生依赖(.node) |
medium | 二进制里看不清 |
| 外联域名 | medium | 数据可能出去 |
能力边界¶
- 只看静态代码:动态拼 URL、读配置再决定连哪等情况抓不到。
- 不判断恶意:新增能力不等于恶意,目的是提示「该重新审一遍」。
- 画像粒度:按 API 名与域名归类,不到调用级。
插件为 host-only、零依赖 bundle,通过 cordis.patch.yml 注入宿主;装完后重启 DSH 宿主,会话中会出现 drift_* 三个工具。
安装与启用¶
官方 README 给出的安装方式如下(请将 <profile> 换成你的 DSH profile):
# 市场页搜 dsh-drift 安装,或从源码 link:
git clone https://github.com/Daphne999/dsh-drift.git
dsh plugin --profile <profile> add link:"$PWD/dsh-drift"
也可在 DSH 插件市场目录页检索并安装:https://www.skillhub.cn/plugins/Daphne999/dsh-drift
注意:DSH 插件以当前 dsh 进程的权限运行。无论通过市场还是 link 安装,安装前建议自行查看仓库源码与许可证,确认符合你的安全策略。
装完后需重启宿主才能在会话里使用 drift_baseline、drift_check、drift_list。
典型用法¶
下面示例中的 target 为插件所在目录路径(README 使用 Windows 路径示意,Linux/macOS 换成你的实际路径即可)。
第一步:审完当前版本后存基线
drift_baseline { target: "D:/ds工作区/dsh-foo" }
第二步:插件升级后只做漂移检查
drift_check { target: "D:/ds工作区/dsh-foo" }
查看已记录的基线列表
drift_list {}
若输出提示新增了 high 级能力(例如 postinstall、execSync、.ssh 路径访问),README 的建议是:新增了能力就该重新审一遍——升级不等于安全。
维护者在 2026-11-11 对 v0.1.0 跑过 node test/drift.test.mjs(14 条断言,14/14 通过);README 注明验证主要在 Windows 上完成,基线为纯 JSON,跨平台理论可行但未充分实测。
适用场景与注意¶
适合谁:已经会装第三方 DSH 插件、希望在版本升级时有可重复对照的人,而不是只在首次安装时扫一次。
不适合替代什么:不能替代人工 code review,也不能替代运行时监控;它不做恶意判定。
生态背景:DSH 的理念是「一切皆插件」;社区插件目录(SkillHub)是独立站点,与 DeepSeek / 幻方无官方从属关系,本文所述安装与市场检索均指该社区生态内的用法。
结尾¶
dsh-drift 用「基线 + 只报新增」把升级后的能力变化说清楚,补的是「装时审过、升版后忘了再审」这一环。需要目录介绍可看 SkillHub 插件页,源码与完整说明见 GitHub:Daphne999/dsh-drift。