最近的一项研究揭示了生成性人工智能编写代码时隐藏的危险:模型经常“幻觉”出实际上不存在的软件组件,从而为网络攻击创造了潜在的入口。来自德克萨斯大学圣安东尼奥分校的研究人员 分析了由16个流行的人工智能模型生成的576,000个代码片段。在19.7%的情况下,代码中包含对虚假库的引用——总计约440,000个无效依赖项。
黑客可以通过注册人工智能常常错误发明的名称的包,并用恶意代码填充它们来利用这一点。如果开发人员在未验证其真实性的情况下安装这些组件,恶意软件就会进入。在实验期间,带有虚构名称的测试包被下载了数万次。
主要发现:
- 开源模型(如CodeLlama和DeepSeek)出错的频率为22%——是商业模型(5%)的四倍。研究人员认为这是由于模型规模,商业人工智能通常有10倍的参数。
- javascript比Python更脆弱:21%的JS代码有虚假的依赖项,而Python为16%。这可能是因为JS生态系统有10倍的包,使得人工智能更难建议准确的包。
- 重复是一个主要问题:43%的这些“幻觉”至少出现了10次。这使得攻击变得更容易——黑客不需要猜测,只需跟踪常见的人工智能生成的拼写错误。
这种被称为依赖混淆的技术,通过用具有相同名称的恶意包替换合法包来工作。例如,黑客将一个带有木马的包发布到一个仓库。如果人工智能建议它而不是官方版本,并且开发人员在未仔细检查来源的情况下安装它,系统就会被攻陷。
随着微软预测到2030年人工智能将编写95%的所有代码,这些发现是一个警钟。在神经网络能够可靠地区分虚构与事实之前,安全的重担仍然牢牢地落在人的肩上。
帖子已翻译 显示原文 (EN)