修复会破坏安全性吗?迭代 LLM 驱动的基础设施即代码修复中安全性退化的实证研究
Does Fixing Break Security? An Empirical Study of Security Degradation in Iterative LLM-Driven Infrastructure-as-Code Repair
摘要
背景:迭代反馈循环是改进 LLM 生成的基础设施即代码 (IaC) 的主要范例:Checkov 和 terraform 等验证器验证反馈错误信号以进行连续的修复尝试。之前的工作报告了累积最佳指标,这些指标不会因构造而减少,因此从未针对 IaC 检查原始的每次迭代安全轨迹。目标:我们研究安全回归(之前通过的 CIS 基准检查,在修复迭代后失败),以确定迭代 LLM 修复在修复其他问题时是否会降低安全性以及多久一次。方法:我们分析了 IaC-Eval 基准的 5,968 个场景时间线,每个场景都运行一种配置,最多进行 5 次修复迭代。 15 种配置(六种特定于模型的 RAG、九种模型聚合的非 RAG、每种三种温度)产生 4,440 个迭代转换,两侧均带有 Checkov 数据。我们跟踪 30 个单独的 CIS 检查 ID,并在两种检测模式下对代码差异的根本原因进行分类:标准(包含)和严格(仅排除检查失败)。结果:在标准检测下,13.8% 的场景(24.8% 的转换)表现出至少一种回归。在严格检测下,该比率降至场景的 3.3%(转换的 5.2%),表明最明显的回归是多资源测量伪影。资源重组(79.0%)是最主要的根源。回归转换显示代码改动增加了 2.6 倍(Cohen 的 d=0.90),严格模式检查波动性增加了 4.9 倍(d=1.49)。在标准模式回归中,平均 1.2 次迭代内有 36.6% 的自我纠正率;迭代 3 是最佳停止点。结论:迭代 IaC 修复确实会带来安全倒退,但保守的、可防御的比率约为场景的 3.3%。我们的发现激发了安全意识反馈循环设计和可操作的迭代预算指导。