外观
LLM 迭代修复基础设施代码时的安全回退
摘要
该研究分析 LLM 驱动的基础设施即代码(IaC)修复是否会在后续迭代中重新引入安全问题。作者记录 5,968 条修复时间线,并使用 CIS 检查区分真正的安全回退与资源重构造成的测量假象。
结果说明“当前检查通过”不代表多轮修改后仍安全。修复 Agent 的验收对象应是整个时间线和最终基础设施状态,而不是单次补丁。
方法的独特价值
研究把修复过程建模为有状态序列,区分严格回退、资源删除重建和检查器映射变化。这比只比较初始与最终版本更能发现 Agent 在优化其他目标时破坏既有安全属性。
适用范围
方法适用于 Terraform 等声明式 IaC 和持续修复 Agent。它不能直接代表手工代码修复、所有云提供商或真实部署后的运行时状态。
方法与实施流程
- 为初始 IaC 建立 CIS 安全检查基线。
- 让 Agent 迭代修复不同问题并保存每个版本。
- 在每一步重新运行安全检查。
- 对资源重命名、删除重建和真实配置退化分别归因。
- 用时间线级指标统计曾经修复后再次失败的控制。
质量控制
评测应固定检查器版本,保存资源身份映射,并验证最终计划或沙箱部署。修复系统需要设置不可回退断言,把已通过控制加入后续迭代的回归测试。
AI 生成 Ansible 代码的安全 smell 评测把对象从 Terraform 迭代修复扩展到 16 个模型生成的 Ansible 角色,以 CIS 规则比较默认提示与安全提示下的合规、功能和弱点分布。它提供的可证伪增量是:安全提示可能改变 smell 数量与类型,却不能仅凭合规率确认角色仍满足功能约束;验收应对同一任务运行功能测试、CIS 检查和跨轮回归。结果限于作者选择的 Ansible 任务、模型和静态规则,未证明生成配置在真实部署中安全,也不能直接与本文 5,968 条 Terraform 时间线的回退率合并。
局限与待验证问题
CIS 检查不能覆盖全部云风险,生成配置与真实部署仍有差异。结果来自作者实验,尚需跨模型、跨云和生产变更评审复现。