Security-First Evaluation of Text-to-Terraform: Benchmarking LLMs and SLMs for Secure IaC Generation
本文对七种大型和小型语言模型在生成安全 AWS Terraform 代码方面的表现进行了基准测试,揭示了语法有效性与安全性合规性在很大程度上是正交属性,并且无论模型性能或提示工程策略如何,自动化多工具扫描仍然至关重要。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在构建一座宏伟的、隐形的空中之城,它完全由数字砖块建成。在现实世界中,如果你建造的房子地基不稳,或者把前门敞开着,那将是一场灾难。在数字世界中,这座“城市”被称为云(Cloud),而用于建造它的蓝图是用一种特殊的语言编写的,叫做基础设施即代码(Infrastructure-as-Code, IaC)。把 IaC 想象成一份超级精确的食谱,它告诉计算机如何精确地设置服务器、存储和安全锁。长期以来,人类一直在编写这些食谱,但他们经常出错,导致数字大门没锁,让坏人得以潜入。
最近,一种新型的助手来到了:人工智能。具体来说,是大型语言模型(LLMs)及其更小、更快速的亲戚——小型语言模型(SLMs)。这些就像超级聪明的机器人,可以阅读数百万份食谱,并尝试在几秒钟内为你编写新的食谱。大家心中最大的疑问是:这些 AI 机器人写的食谱是否不仅是“正确”的(所以建筑不会坍塌),而且还是“安全”的(所以没人能闯入)?这有点像在问,一个机器人厨师能否烤出一个味道好且不会意外包含隐藏炸弹的蛋糕。如果 AI 掌握了语法,却忘记了安装锁具,那么整座城市都会陷入危险。这正是来自巴西的一组研究人员致力于解决的谜题。
伟大的 AI 大厨竞赛
研究人员决定将七种不同的 AI 大厨置于一个名为“云”的巨大厨房中进行测试。他们不仅仅是要求机器人写一份食谱;他们要求它们编写 17 种不同类型的食谱,用于使用一种叫做 Terraform 的工具来构建安全的数字结构。他们测试了三款“大容量大脑”模型(闭源、昂贵的模型,如 Claude Opus 4、GPT-5.4 和 Gemini 2.5 Pro)和四款“口袋大脑”模型(开源、较小的模型,如 WizardCoder 和 CodeLlama)。
为了观察这些食谱是否优秀,团队并没有仅用肉眼观察。他们建立了一条超级严格的自动化检查线。首先,他们检查食谱在语法上是否正确(语法有效性)。如果食谱有拼写错误,建筑甚至无法启动。但真正的测试在下一步:他们运行了两个不同的安全扫描器——Checkov 和 Trivy,它们充当数字保安,寻找敞开的窗户、没锁的门和隐藏的陷阱。他们还测试了如果告诉机器人“嘿,你留了一扇门没关”,机器人是否能修复自己的错误,以及提供更详细的安全指令是否真的会有所帮助。
令人震惊的结果:语法完美,锁具糟糕
这里有一个转折,也是研究人员发现的一个剧情反转:编写一份完美的食谱和编写一份安全的食谱是两种完全不同的技能。
他们发现,仅仅因为一个 AI 能写出一份语法完美且运行不崩溃的 Terraform 食谱,并不意味着这份食谱是安全的。事实上,这两项技能几乎没有关联。其中一个较小的模型 WizardCoder-33B 是语法冠军。它编写有效食谱的成功率达到了 77.8%!但当安全保安检查这些食谱时,该模型在每一项安全检查中都失败了。这就像一位大厨做出了一个形状完美、极其精美的蛋糕,却忘了给里面的毒药瓶盖上盖子。
另一方面,“大容量大脑”模型表现得好得多,但它们仍然需要很多帮助。表现最好的 Claude Opus 4 在仅获得基础指令的情况下,仅能实现约 23% 的完全安全食谱编写率。然而,当研究人员给了它一份非常具体、详细的安全清单(明确告诉它要安装哪些锁、设置哪些警报)时,它在一种安全扫描器下的表现跃升到了 92.5%。这证明了虽然“大容量大脑”很有能力,但除非你明确告诉它们该做什么,否则它们不会做正确的事。
“口袋大脑”撞到了墙
较小的模型(SLMs)撞到了一堵硬墙。无论研究人员如何尝试给它们提供详细的安全指令,这些小型模型都无法贯彻执行。它们要么写出破碎的食谱,要么写出一个有效但完全不安全的食谱。研究人员发现,对于这些较小的模型来说,问题不在于指令,而在于这些模型根本没有足够的“脑力”去理解复杂的安全规则。它们擅长模仿模式,但在自主发明安全解决方案方面却很吃力。
它们能修复自己的错误吗?
团队还测试了机器人是否能从错误中学习。他们让机器人写一份食谱,进行扫描,然后向机器人展示错误列表(例如“你忘记加密这个文件了”),并要求它重试。
- 好消息: 机器人对于修复由 Trivy 扫描器发现的简单、具体的错误(比如某个特定门锁缺失)表现得相当出色。许多模型在看到错误列表后,得分显著提高。
- 坏消息: 它们在修复由 Checkov 扫描器发现的大型、结构性问题方面表现得很糟糕。这些问题类似于“你需要为这座建筑建立一整套全新的安全系统”。机器人无法在一次尝试中重新设计其架构。它们可以拧紧一颗松动的螺丝,但无法重新设计地基。
核心结论
这项研究对任何想要让 AI 构建数字城市的人最重要的启示是:你不能信任 AI 来担任安全保安。
研究人员发现,在 2024 年到 2026 年间,AI 模型在编写“看起来正确”的代码方面进步很大,但在编写“安全”的代码方面并没有进步。事实上,“看起来很好”与“实际上安全”之间的差距实际上变得更大了。
研究结论指出,你不能仅仅要求 AI “使其安全”然后就听天由命。即使是最聪明的 AI 模型也需要人类(或一个非常严格的自动化系统)来复核它们的工作。无论模型多么优秀,或者你的指令多么详细,你必须对 AI 生成的每一段代码运行多个安全扫描器。AI 是一个强大的助手,但在云安全领域,它尚未成为安全检查员的替代品。如果你跳过检查,你可能会得到一座美丽、建造完美的数字城市,但却没有任何门锁。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。