安装之前,如何审查一个 dsh 插件
dsh-plugin 这个 topic 在发布几天内就涨到了 1805 个仓库。任何人都能把仓库挂进去——包括希望自己的代码带着你的权限在你机器上运行的人。这一页是判断要不要信任一个插件的清单。
插件能做什么
dsh 插件不是跑在沙箱里的浏览器扩展。它通过 cordis.yml 加载进 agent 所在的同一个进程,拥有同样的触达范围:你项目里的文件、agent 执行命令用的 shell、你的网络,以及环境变量里的所有 API 密钥。恶意插件不需要提权——你把它写进加载器的那一刻,就已经把一切都给了它。
DeepSeek 官方的安全使用指引说得很直白:只安装来自你信任且审查过的来源的插件。dsh-plugin topic 背后没有任何官方审核、签名或恶意软件扫描。
这不是假设
就在本页撰写两周前,Shai-Hulud 蠕虫攻陷了 npm 的 keyv 和 cacheable 两个包,蔓延到 400 多个包,合计月下载量约二十亿次(见 Wiz 的分析)。它最新一波的载荷就藏在 AI agent 配置文件里——恰恰是大多数扫描器、也是大多数人从来不读的那类文件。我们写了一篇这次攻击对 dsh 用户意味着什么。
dsh 插件 = 一个 npm 包 + 一条加载器配置。所有对 npm 有效的攻击在这里同样有效,还多了一层:目标是一个握着你的凭证、跑着你的 shell 的进程。
五分钟检查清单
1. 确认这就是你要找的仓库
仿冒名(typosquatting)是成本最低的攻击:注册一个与热门项目只差一个字符的名字,然后等。对照你以为自己在装的那个项目,核对作者、star 数和创建日期。本站会对与更高人气仓库只差一次编辑的名字做出标注。
2. 读一遍安装路径
打开 package.json 看 scripts——postinstall 脚本会在安装时、插件加载之前就在你机器上执行任意代码。如果 README 让你把 curl 通过管道送进 shell,先把脚本下载下来读一遍,而不是照做。
3. 读一遍依赖列表
载荷通常不在你正在看的仓库里,而在它依赖的某个包里。依赖越少,要审的就越少。优先选提交了 lockfile、版本钉死的项目,而不是浮动在 latest 上的。
4. 找藏起来的代码
正经的插件源码又小又无聊。大段 base64 或十六进制字符串、对拼接字符串做 eval、一个自称源码仓库里却出现压缩成一行的文件——每一条都足以让你关掉页面。
5. 用最小权限试运行
在独立的 profile 里试新插件:开着沙箱,环境里不放生产密钥。把你审查过的版本钉死(npm install pkg@1.2.3),免得明天被攻陷的新版本顺着未钉死的版本区间走进来。
本站分级说明什么——以及不说明什么
本站的 Verified 表示我们在仓库里找到了真正 dsh 插件的接线证据:依赖 Cordis 运行时,或带有 cordis.yml。这只证明它加载得起来,不证明它安全。接线完美的插件照样可以是恶意的,所以上面的清单对每个层级同样适用。我们不给任何东西贴「安全」标签——只靠元数据爬取无法支撑这个结论,换成谁家的目录都一样。
我们标注的是可核实的事实:与更高人气仓库只差一次编辑的名字、藏在短链后面的主页、让你把下载内容用管道送进 shell 的描述。这些事实出现时会显示在条目页上——结论仍然由你来下。
如果你发现了恶意内容
先通过 Report abuse 向 GitHub 举报该仓库——从源头下架能保护所有下游用户。然后发邮件到 contact@dsharness.org,附上仓库名和你发现的问题:我们会核实举报,并将携带恶意代码的仓库移出目录。
常见问题
- DeepSeek Harness 插件装起来安全吗?
- 它们是没有任何官方审核的社区仓库,所以诚实的回答是:取决于你选的那一个。把 dsh 插件当作任何被你授予大权限的依赖来对待——审查它、钉死版本、用最小权限运行。
- DeepSeek 会审核或签名 dsh 插件吗?
- 不会。dsh-plugin 是一个任何人都能打的开放 GitHub 标签。DeepSeek 的指引是只安装你信任且审查过的插件;截至 2026 年 8 月,没有签名、没有注册表、也没有官方恶意软件扫描。
- dsh 插件能偷走我的 API 密钥吗?
- 技术上可以。插件加载进 agent 进程,而这个进程通常在环境变量里放着模型 API 密钥,还能执行 shell 命令。所以新插件应该放进不含生产凭证的独立 profile 里试。
- 本站的 Verified 徽章是什么意思?
- 表示我们找到了该仓库接线为真正 dsh 插件的具体证据——依赖 Cordis 运行时或带有 cordis.yml。这是对仓库「是什么」的分类,不是对其代码「做什么」的审计。
- 如果我装的插件后来被证实是恶意的,该怎么办?
- 把它移出 cordis.yml 并卸载包,然后轮换那个环境里能触达的全部凭证——模型 API 密钥优先。检查 shell 配置文件、cron 任务和 CI 令牌里有没有持久化后门,并向 GitHub 举报该仓库促成下架。
继续阅读
还不熟悉加载器模型?从安装与 cordis.yml 的工作方式开始。想了解供应链攻击的背景,读Shai-Hulud npm 蠕虫对 dsh 用户意味着什么。