← 最新论文
🤖 AI

Security of LLM-generated Code: A Comparative Analysis

本文实证评估了七种流行大语言模型生成代码的安全性,发现它们生成的代码均存在漏洞,且多数漏洞属于严重或高危级别。

原作者: Srivathsan G Morkonda, Mahmoud Selim, Hala Assal

发布于 2026-05-25
📖 1 分钟阅读☕ 轻松阅读

原作者: Srivathsan G Morkonda, Mahmoud Selim, Hala Assal

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你雇佣了一支由七位不同的“超级智能”学徒组成的团队来为你的软件编写代码。这些学徒由人工智能(AI)驱动,以极其高效和乐于助人而闻名。它们是行业中的顶级工具,被数百万开发者使用。

卡尔顿大学的研究人员决定对这七位学徒进行严格测试。他们没有要求他们建造宇宙飞船或撰写小说,而是给他们布置了一组特定的 81 项常见编码任务——例如“制作登录页面”或“让用户上传照片”。目的是看看这些 AI 学徒编写的代码是否安全可用,还是充满了隐藏陷阱。

以下是他们发现的简要总结:

1. 不存在“完美”的学徒

最令人震惊的发现是:七位学徒中没有一个通过测试。 他们测试的每一个 AI 工具(包括 OpenAI 的 GPT-4o、Google 的 Gemini 和 IBM 的 watsonx 等知名品牌)都生成了存在安全漏洞的代码。

这就像从七家不同的知名汽车制造商那里买车。你原本指望至少有一家的安全评级是完美的。然而,研究人员发现,每一辆车都有刹车失灵或方向盘松动的问题。 事实上,他们编写的绝大多数代码都存在“严重”或“高”严重程度的缺陷——这意味着这些不仅仅是轻微划痕,而是可能让黑客入侵的巨大漏洞。

2. 指令中的“陷阱”

研究人员使用了一套特殊的指令(提示),旨在诱使 AI 犯错。例如,他们要求 AI“编写一个允许用户上传文件的函数”。

  • AI 的错误: 一些 AI 编写的代码会让黑客上传病毒而不是照片。
  • 意外之处: 即使 AI 正确完成了主要任务,它也常常忘记安全规则。例如,一个 AI 编写了一个完美运行的登录页面,但却以明文形式存储密码(就像把密码写在电脑上的便利贴上一样)。

3. “调试模式”灾难

发现的最常见错误之一是保持“调试模式”开启。

  • 类比: 想象一家餐厅厨房。“调试模式”就像把后门大开着,并挂着一个牌子写着:“进来看看我们的秘密食谱,试试炉灶。”这对正在学习的主厨来说很好,但对于一家向公众开放的真实餐厅来说则糟糕透顶。
  • 现实: AI 不断编写代码,留下这个“后门”敞开。如果开发者未经检查就使用这些代码,他们的整个系统都可能被黑客入侵。研究人员指出,虽然一些 AI 工具添加了一行小注释说“实际使用时请关闭此功能”,但他们不能依赖开发者真正阅读并遵循该提示。

4. “快但危险”的悖论

该研究在特定工具 IBM 的 watsonx 中发现了一种奇怪的模式。

  • 类比: 想象一位学徒写的句子非常短、非常简单(短代码)。你可能会想:“短句更容易检查,所以它们一定更安全。”
  • 现实: 这位学徒实际上每行代码的危险错误率最高。因为代码太短,它完全跳过了重要的安全检查。这就像一位司机因为赶时间而抄近道穿过雷区。

5. “过度自信”的开发者

该论文强调了一个危险的人为因素。开发者喜爱这些 AI 工具,因为它们能加快工作速度。然而,研究表明开发者正变得过于信任

  • 类比: 这就像一位司机买了一辆带有“自动驾驶”功能的汽车,然后就在方向盘上睡着了,假设汽车永远不会撞车。
  • 现实: AI 工具在表达上如此自信,以至于开发者认为代码是安全的。研究人员发现,这些工具生成的超过 73% 的代码片段至少包含一个安全漏洞。如果开发者只是复制粘贴这些代码而不进行检查,他们实际上是在自找麻烦。

结论

该论文总结道,虽然这些 AI 工具在快速编写代码方面表现出色,但它们目前默认情况下极不擅长编写安全的代码

它们就像一位才华横溢但缺乏经验的厨师,切菜速度比任何人都快,却总是忘记洗手或检查食物是否变质。研究人员警告说,除非这些 AI 工具学会将安全置于速度之上(或者直到开发者学会逐行双重检查),否则使用它们编写软件是一场危险的赌博。

核心要点: 不要盲目信任 AI。将其生成的代码视为初级员工的草稿:在上线之前,必须由高级安全专家进行审核。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →