AI幻觉代码依赖成为新型软件供应链威胁
随着生成式AI编程工具的普及,以及AI模型容易"幻觉"出不存在软件包的特性,一种名为"垃圾包抢注"(slopsquatting)的新型供应链攻击正在浮现。
安全研究员Seth Larson创造了这个术语,它衍生于"拼写错误抢注"(typosquatting)攻击手法——通过注册与热门库名称相似的恶意软件包来诱骗开发者安装。
与拼写错误抢注不同,垃圾包抢注不依赖拼写错误。攻击者会在PyPI和npm等软件仓库中,注册那些AI模型在代码示例中经常虚构的包名。
2025年3月发布的研究论文显示,在分析的57.6万个Python和JavaScript代码样本中,约20%案例推荐的依赖包并不存在。开源大模型如CodeLlama、DeepSeek、WizardCoder和Mistral的情况更严重,而ChatGPT-4等商业工具的幻觉率仍达5%。
各大型语言模型的幻觉率来源:arxiv.org
幻觉包名的可预测性研究发现,虽然记录的独特幻觉包名超过20万个,但其中43%会在相似提示词下重复出现,58%在十次运行中至少重复一次。这些包名中,38%受真实包名启发,13%源于拼写错误,51%则完全虚构。
尽管尚未发现攻击者利用此漏洞的实际案例,但网络安全公司Socket的研究人员警告称,这些幻觉包名具有常见性、可重复性和语义合理性,形成了可预测的攻击面。
"58%的幻觉包会重复出现,说明它们不是随机噪声,而是模型对特定提示的可重复反应。"Socket团队解释道,"这种可重复性提升了攻击价值,观察少量模型输出就能锁定有效攻击目标。"
供应链风险概览来源:arxiv.org
风险缓解措施目前唯一有效的防范方法是人工验证每个包名,切勿假设AI生成的代码片段中提到的依赖包真实存在或安全可靠。其他防护措施包括:
使用依赖扫描工具锁定文件(lockfiles)管理哈希验证确保使用可信版本研究还表明,降低AI的"温度"参数(减少随机性)能有效减少幻觉。若采用AI辅助编程,这成为重要考量因素。最根本的防护措施是:所有AI生成的代码都应在隔离的安全环境中测试,再部署到生产环境。