扫码领资料
获网安教程
来Track安全社区投稿~
赢千元稿费!还有保底奖励~(https://bbs.zkaq.cn)
AI 幻觉生成的代码依赖,正演变为新的供应链安全风险
一种名为 “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% 的依赖为幻觉生成,足以引发广泛安全隐患。
尽管研究中记录到的“幻觉依赖包”数量超过 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
“而正是这种可重复性,大大提升了这些幻觉包对攻击者的价值 —— 攻击者仅需观察少量生成结果,就能精准筛选出潜在的攻击目标。”
应对这类风险的唯一有效方式是:手动核实依赖包名称,绝不能轻信 AI 生成的代码片段中提到的包一定真实或安全。
安全专家建议通过以下方法加强依赖管理安全:
-
• 使用依赖扫描工具(dependency scanners) -
• 启用锁文件(lockfiles) -
• 通过哈希值校验(hash verification)将依赖锁定为已知且可信的版本
研究还发现,降低 AI 的“温度值”(temperature),即减少随机性,可以有效减少依赖包“幻觉”的出现。因此,如果你常使用 AI 协助编程或追求灵感式写代码,这一点值得特别留意。
归根结底:所有 AI 生成的代码都应在隔离、安全的环境中测试后,再部署到实际生产环境中使用。
声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。
原文始发于微信公众号(白帽子左一):AI 幻觉生成的代码依赖正演变为新的供应链安全风险
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论