本文提出 GenIaC-SecBench,一个用于评估大语言模型生成基础设施即代码(IaC)安全性的基准测试。研究动机是:LLM 越来越多地被用于编写 IaC,而其中单个不安全默认值可能直接部署到生产环境;已有评估多报告原始漏洞数量,但缺乏人类基线,无法判断模型是否真的比工程师更差。该基准包含 100 个部署场景,按架构复杂度分层,覆盖来自四个厂商的 12 种模型配置,共生成 1,196 个 IaC 工件,并使用三个独立策略引擎(Checkov、Trivy、KICS)进行扫描。关键创新是同时使用相同工具链扫描了 634 个人类编写的 IaC 模板,提供了首个规模匹配的人类安全基线。核心发现包括:漏洞密度与工件大小呈强负相关(Spearman ρ = -0.55, p < 10^{-77}),意味着不匹配的比较实际衡量的是规模而非安全性;当按声明资源数量匹配时,所有模型配置的漏洞密度落在人类的 3.21 倍到 3.87 倍之间,且简单任务差距更大(一个资源时 4.9 倍,二十个及以上资源时 1.4 倍)。研究还将推理过程分为标准生成、提示工程链式思维(prompted chain-of-thought)和厂商扩展思考 API 三类。结果显示厂商扩展思考显著优于提示链式思维(-12.0%,p = 0.0013),而提示链式思维与标准生成无显著差异(-1.3%,不显著)。令牌测量表明扩展思考仅使用不到 1% 的输出预算,解释了其有限效果。此外,两个负面结果:可部署性与漏洞不相关(r = 0.158, p = 0.625),经典完整病例 Friedman 检验不适用于现实基准设计,从而引入 Skillings-Mack 统计量。所有代码、数据和再生成脚本均已公开。
💡 推荐理由: 该研究首次为 LLM 生成的 IaC 提供了人类基线,揭示模型相对人类工程师的实际安全差距,并拆解了推理模式的影响,为安全评估和模型选择提供了可量化的依据。
🎯 建议动作: 研究跟进