安装之前,如何审查一个 dsh 插件

dsh-plugin 这个 topic 在发布几天内就涨到了 1805 个仓库。任何人都能把仓库挂进去——包括希望自己的代码带着你的权限在你机器上运行的人。这一页是判断要不要信任一个插件的清单。

插件能做什么

dsh 插件不是跑在沙箱里的浏览器扩展。它通过 cordis.yml 加载进 agent 所在的同一个进程,拥有同样的触达范围:你项目里的文件、agent 执行命令用的 shell、你的网络,以及环境变量里的所有 API 密钥。恶意插件不需要提权——你把它写进加载器的那一刻,就已经把一切都给了它。

DeepSeek 官方的安全使用指引说得很直白:只安装来自你信任且审查过的来源的插件。dsh-plugin topic 背后没有任何官方审核、签名或恶意软件扫描。

这不是假设

就在本页撰写两周前,Shai-Hulud 蠕虫攻陷了 npm 的 keyvcacheable 两个包,蔓延到 400 多个包,合计月下载量约二十亿次(见 Wiz 的分析)。它最新一波的载荷就藏在 AI agent 配置文件里——恰恰是大多数扫描器、也是大多数人从来不读的那类文件。我们写了一篇这次攻击对 dsh 用户意味着什么

dsh 插件 = 一个 npm 包 + 一条加载器配置。所有对 npm 有效的攻击在这里同样有效,还多了一层:目标是一个握着你的凭证、跑着你的 shell 的进程。

五分钟检查清单

1. 确认这就是你要找的仓库

仿冒名(typosquatting)是成本最低的攻击:注册一个与热门项目只差一个字符的名字,然后等。对照你以为自己在装的那个项目,核对作者、star 数和创建日期。本站会对与更高人气仓库只差一次编辑的名字做出标注。

2. 读一遍安装路径

打开 package.jsonscripts——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 用户意味着什么