资讯 · 改写稿

AI 推荐的依赖可能有五分之一不存在:slopsquatting 是怎么被利用的

先说数字:AI 给的安装命令可能指向根本不存在的包——研究实测约 19.7% 的推荐包是编造的,而攻击者会提前抢注这些「幻觉包名」并塞进恶意代码。你什么都没做错,只是信任了工具。

这类攻击有个专门的名字:slopsquatting,由 Python 软件基金会的 Seth Larson 在 2025 年提出。它和老的 typosquatting(抢注拼写相近的包名)不一样——typosquatting 赌的是你手误,slopsquatting 赌的是你信任工具。

数字:不是猜想,是实测

来源引用的基础研究是 USENIX Security 2025 的论文《We Have a Package for You!》,它生成了 57.6 万个代码样本、覆盖 16 个不同 LLM,逐个核对这些模型推荐的包:

换句话说,AI 交给你的包名里,大约每 5 个到每 20 个之间,有一个可能根本不存在。

从「装不上」变成「装上坏的」

幻觉本身只是烦人:安装失败而已。真正让它变成攻击的是下一件事——幻觉是稳定可预测的。同一个提示,模型往往会反复给出同一个编造的名字。攻击者不需要注册 20 万个名字碰运气,只要盯住少数高频幻觉名,抢先注册即可。来源就提到,上月有人把某个模型常建议的包名原样注册到了 PyPI,里面装着恶意代码。

本站计算:一个项目要核对多少个依赖

按最坏情况估算:一个中等项目若引入 30 个第三方依赖,按 19.7% 折算,约 6 个 可能指向不存在的包;就算按收窄后的 6% 算,也约有 2 个。**本站计算**——这意味着一句「装这个」之后,你至少要对新增依赖做一次「包名是否真实存在、是否官方仓库」的核对,尤其是模型一次性给出多条安装命令时。

怎么防

要点不复杂:安装前先确认包真实存在且是官方来源;优先用锁文件(lockfile)固定版本;对 AI 新引入的依赖做一次人工审查,而不是直接复制粘贴;把「模型给的安装命令」当成待核实的建议,而不是结论。

容易踩的坑

直接复制 AI 给的安装命令:包名可能不存在,也可能被人抢注成恶意包。

以为模型升级就没事了:2026 年复测仍在 4.6%–6.1%,问题在缩小但没消失。

只看名字像不像:slopsquatting 用的正是模型爱给的那个名字,看着完全合理。

不锁版本:没有 lockfile,构建在不同时间可能拉到不同内容。

自检清单

常见问题

slopsquatting 和 typosquatting 有什么区别?

typosquatting 依赖你的拼写错误;slopsquatting 依赖模型编造的包名,攻击者提前抢注。

这个比例有多可靠?

来源引用 USENIX Security 2025 的实测:57.6 万样本、16 个 LLM,19.7% 的推荐包为幻觉,累计 205,474 个不存在的包名。

哪类模型更容易编造包名?

来源称开源模型更差(最高约 22%),商用模型更好,GPT-4 Turbo 最低 3.59%。

普通开发者最该做的一件事是什么?

安装前核实包是否真实存在、是否官方来源,别直接复制 AI 给的安装命令。

来源参考

以上为外部来源;本文为 RefHub 用自己的结构重写,事实以来源页为准,价格与政策会变,请回源核对当日。

下一步:Agent 的工具权限边界,读 执行容器;提示注入为什么危险,见 提示注入的教训。