该论文关注LLM编码智能体(coding agent)在解决任务过程中产生的安全债务问题。作者指出,编码智能体在提交最终方案前会经过数百个中间代码状态,而现有评测通常只看最终产物,导致安全发现(security findings)随轨迹演化的过程完全未被度量。为此,论文提出“安全债务线积分”(Security Debt Line Integral, SDLI),其核心思想是:当智能体在测试通过比例上达到新的最佳值时,累积其静态分析风险,从而把“功能进展”与“安全债”放在同一坐标下观测。作者用四个静态应用安全测试(SAST)工具实例化SDLI,并分析了三类数据:830次通过的SWE-bench运行、712个ProgramBench最终工作区、13条公开MirrorCode轨迹;后两类大规模数据使用SDLI的终态特例。实验显示,两种工具在CWE类别上的一致性在SWE-bench运行中仅3.9%,在至少通过90%官方测试的80次ProgramBench运行中为26.2%;剔除三个以“建议/告警”为主的类别后,后者降至6.2%。作者特别强调这些是扫描器发现,而非经过验证的漏洞率。同一任务的不同运行之间测量分数存在差异,一个重建的ProgramBench运行还暴露出首次实现写入即引入且持续存在的发现。修复案例研究表明可降低扫描器信号并保持测试行为,但也揭示了对等价API重写的敏感性。SDLI为同时研究任务进展与安全发现提供了方法,但其用于引导智能体和确认可利用漏洞的价值仍有待建立。
💡 推荐理由: 智能体生成的代码安全不能只看最终提交;中间状态的安全债务会持续累积。该工作给出可量化的轨迹级指标,提醒安全团队将SAST前移到每一步测试通过的时刻,并谨慎解读多工具扫描结果。
🎯 建议动作: 研究跟进 / 纳入内部评估