AI 生成的代码可能会给软件供应链带来灾难。原因如下。
快速阅读: 据《Ars Technica》最新报道,研究显示,大型语言模型常生成虚假软件包引用,影响代码质量和安全性。不同模型和语言表现各异,开源模型问题更严重。研究建议开发者谨慎使用AI生成代码,并加强AI安全性研究,共同应对新挑战。
在人工智能领域,幻觉现象出现在大型语言模型(LLM)生成的内容与任务无关、缺乏意义或在事实上错误的时候。长期以来,这一现象一直困扰着LLM,因为它降低了其实用性和可信度,并且被证明难以预测和解决。计划在2025年USENIX安全研讨会上发表的一篇论文中,研究人员将这种现象称为“包幻觉”。在这项研究中,研究人员进行了30次测试,包括16次Python测试和14次JavaScript测试,每次测试生成了19,200个代码样本,总计生成了576,000个代码样本。这些样本包含的223万个包引用中,有440,445个,占19.7%,指向了不存在的包。在这440,445个包幻觉中,有205,474个具有唯一的包名。原因之一是,43%的包幻觉在达到或超过10次查询时重复出现。“此外,”研究人员写道,“58%的情况下,一个幻觉包在10次迭代中多次重复,这表明多数幻觉并非随机错误,而是可重复的现象,这种现象在多次迭代中持续存在。这一点很重要,因为对于试图利用这一漏洞的恶意行为者来说,持久的幻觉更具价值,使得幻觉攻击向量成为更现实的威胁。”换句话说,许多包幻觉不是随机的一次性错误。相反,不存在的包的具体名称会反复出现。攻击者可以通过识别反复幻觉出的不存在的包来利用这一模式。然后,攻击者会使用这些名称发布恶意软件并等待它们被大量开发者访问。研究发现,不同的AI模型和编程语言在产生包幻觉方面存在差异。开源LLM如CodeLlama和DeepSeek产生的包幻觉平均比例接近22%,而商业模型的比例略高于5%。用Python编写的代码产生的幻觉比例低于JavaScript代码,平均为16%,而JavaScript的平均比例略高于21%。
研究团队提醒开发人员和企业,在使用AI生成的代码时应保持警惕,尤其是在涉及第三方库时。他们建议采取多重验证措施,比如手动检查所有依赖项,以及通过独立工具验证生成代码的准确性。此外,研究人员呼吁进一步加强对AI模型的安全性和可靠性的研究,以减少类似问题的发生风险。通过这项研究,希望可以提高整个行业的意识水平,共同应对由AI引发的新挑战。
(以上内容均由Ai生成)