资讯 · 改写稿
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,逐个核对这些模型推荐的包:
- 全部推荐包中 19.7% 是编造的——接近五分之一。
- 这些幻觉累计产生 205,474 个 唯一的不存在包名。
- 比例并不均匀:开源模型更差(最高约 22%);商用模型更好,GPT-4 Turbo 最低为 3.59%。
- 2026 年对新前沿模型的复测显示区间收窄到约 4.6%–6.1%——变好了,但远没到零。
换句话说,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 用自己的结构重写,事实以来源页为准,价格与政策会变,请回源核对当日。