← 最新论文
💻 computer science

Can Developers rely on LLMs for Secure IaC Development?

本研究评估了 GPT-4o 和 Gemini 2.0 Flash 在安全基础设施即代码(IaC)开发中的表现,发现虽然引导式提示词能提高两者在简化代码片段和真实世界仓库中对安全缺陷(security smell)的检测能力,但这些模型在生成安全代码方面仍然面临困难,即使在明确指令下,也只有极小比例的输出符合安全标准。

原作者: Ehsan Firouzi, Shardul Bhatt, Mohammad Ghafari

发布于 2026-02-04
📖 1 分钟阅读☕ 轻松阅读

原作者: Ehsan Firouzi, Shardul Bhatt, Mohammad Ghafari

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

想象一下你正在盖一座房子,但你不是使用砖块和砂浆,而是使用代码来自动组装你的墙壁、窗户和安防系统。这被称为基础设施即代码 (Infrastructure as Code, IaC)。这就像是有一个机器人为你构建数字基础设施。

问题在于,如果你给机器人的蓝图不好,它可能会盖出一座门没锁、窗户对着街道、或者保险箱钥匙就贴在门前的房子。这些错误被称为**“安全异味” (security smells)**。

这篇论文的作者提出了一个重大问题:我们能否信任 AI 聊天机器人(如 GPT-4o 和 Gemini)来帮助我们安全地编写这些蓝图,或者在其中发现错误?

以下是他们的研究结果,通过简单的故事进行了解析:

1. “找错”测试(检测)

研究人员给 AI 两类任务:在短代码片段(如 Stack Overflow 上的代码)中寻找错误,以及在完整的、真实的工程文件(来自 GitHub)中寻找错误。

  • “模糊请求”场景: 想象一下你问一名保安:“看看这栋房子,告诉我它是否安全。”
    • 结果: AI 在识别短代码片段中的明显问题时表现尚可(成功率约为 70-80%)。但当观察完整且复杂的工程项目时,AI 会漏掉一半以上的危险缺陷。这就像保安只注意到了没锁的前门,却忽略了破碎的后窗。
  • “分步执行”场景: 研究人员随后给了 AI 一个具体的清单:“第一,检查锁;第二,检查窗户;第三,寻找前任房主留下的便条。”
    • 结果: 这种方法效果好得多。AI 发现错误的能力显著提升(其中一个模型的成功率接近 90%)。
    • 症结所在: 即使 AI 发现了错误,它也很少提供具体的修复方案。这就像保安说:“嘿,那个窗户坏了,”但并没有递给你用来更换玻璃的工具。

2. “建造”测试(生成)

接下来,他们要求 AI 根据特定的需求从零开始创建新的蓝图,其中一些需求被设计用来诱导 AI 犯错(例如,“使用一把弱锁”或“把密码留在代码里”)。

  • 结果: 这是 AI 最吃力的地方。
    • 当被要求建造一座安全的房子时,AI 仅在 7% 的情况下建造了安全的房子。
    • 在另外 93% 的案例中,它建造的房子带有隐藏的陷阱(安全缺陷),并且通常甚至不会提醒你这些陷阱的存在。
    • 即使研究人员明确大声强调“要确保安全!”,AI 在约 80% 的情况下仍然会建造不安全的房子。

3. “模仿效应”

研究人员还检查了 AI 是否只是在模仿它之前见过的错误范例。他们发现,AI 生成的代码往往看起来更像其他 AI 生成的代码,而不是人类编写的论坛中的“正确”答案。这就像是 AI 并不是向专家学习,而是向一群都在犯同样错误的群体学习。

总结

论文的结论是,虽然 AI 是一个强大的工具,但你目前不能仅依靠它来保证你的数字基础设施安全。

  • 对于发现错误: 它确实有帮助,但前提是你必须给它非常具体、循序渐进的指令。如果没有这些引导,它会错过太多危险。
  • 对于编写代码: 让它从头开始编写安全代码目前风险过高。它经常盖出“门没锁”的房子,而且甚至不会提醒你。

类比: 把 AI 想象成一个速度极快、极其自信的学徒建筑师。如果你对它说“修理这个”,它可能会发现一些裂缝。但如果你要求它“建造一座堡垒”,它很可能会造出一个用纸做的锁和纸板做的城堡,而且它甚至不会告诉你这其实并不安全。你仍然需要人类专家来复核一切。

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

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

试用 Digest →