AI hallucinations
一种名为 “slopsquatting”(污名投机) 的新型供应链攻击方式,正在伴随生成式 AI 编程工具的广泛使用而崛起。这类攻击源于大模型在生成代码时,常“幻觉”出并不存在的依赖包名称。
“Slopsquatting” 这一术语由安全研究员 Seth Larson 提出,灵感来源于 “typosquatting(拼写投机)”。后者是通过构造与热门库名称极为相似的拼写错误包名,引诱开发者误装恶意依赖。而 slopsquatting 不靠拼写错误取胜,而是利用大模型“幻想”出的虚假包名来布局钓鱼攻击。
攻击者会预先在 PyPI、npm 等软件包仓库中注册这些虚构的包名,并植入恶意代码。一旦有开发者照着 AI 推荐使用这些不存在但“看起来正常”的包名,系统就可能中招。
一篇于 2025 年 3 月发布的研究论文(论文名:we have a package for you! a comprehensive analysis of package hallucinations by code generating llms)指出,在对 57.6 万条由 AI 生成的 Python 与 JavaScript 示例代码分析后,约有 20% 推荐了并不存在的依赖包。
在开源模型(如 CodeLlama、DeepSeek、WizardCoder、Mistral)中,该现象更为严重;即便是商用模型如 ChatGPT-4,仍有大约 5% 的依赖为幻觉生成,足以引发广泛安全隐患。
各大主流大模型的“幻觉包”生成率 来源:arxiv.org
尽管研究中记录到的“幻觉依赖包”数量超过 20 万个,但其中 43% 在相似提示词中反复出现,而 58% 在 10 次生成中至少出现过一次,说明这类幻觉并非完全随机。
研究还显示:
-
• 38% 的幻觉包名称受真实包启发(如拼写相近或语义相似),
-
• 13% 属于拼写错误导致,
-
• 剩下 51% 则是模型完全杜撰出来的。
虽然目前尚未发现有攻击者大规模利用该手法发动攻击,但开源网络安全公司 Socket 的研究人员指出,这类幻觉包的重复性强、结构合理且语义可信,具备高度可预测性,攻击者完全可以据此构建“slopsquatting”钓鱼攻击面。
“整体来看,在 10 次生成中,有 58% 的幻觉包被重复提及,这表明这些并非偶发错误,而是模型在面对某些提示时的固定响应模式。”
——来自Socket 的研究说明:http://socket.dev/blog/slopsquatting-how-ai-hallucinations-are-fueling-a-new-class-of-supply-chain-attacks
“而正是这种可重复性,大大提升了这些幻觉包对攻击者的价值 —— 攻击者仅需观察少量生成结果,就能精准筛选出潜在的攻击目标。”
供应链风险概览 来源:arxiv.org
应对这类风险的唯一有效方式是:手动核实依赖包名称,绝不能轻信 AI 生成的代码片段中提到的包一定真实或安全。
安全专家建议通过以下方法加强依赖管理安全:
-
• 使用依赖扫描工具(dependency scanners)
-
• 启用锁文件(lockfiles)
-
• 通过哈希值校验(hash verification)将依赖锁定为已知且可信的版本
研究还发现,降低 AI 的“温度值”(temperature),即减少随机性,可以有效减少依赖包“幻觉”的出现。因此,如果你常使用 AI 协助编程或追求灵感式写代码,这一点值得特别留意。
归根结底:所有 AI 生成的代码都应在隔离、安全的环境中测试后,再部署到实际生产环境中使用。
参考:https://www.bleepingcomputer.com/news/security/ai-hallucinated-code-dependencies-become-new-supply-chain-risk/