论文

当通过测试隐藏漏洞时:代理系统中静默故障的实证研究

When Passing Tests Hides Vulnerabilities: An Empirical Study of Silent Failures in Agentic Systems

智能体系统Agent任务评测

摘要

近年来,基于 LLM 的自动代码修复代理从研究和软件工程实践的角度都受到了极大的关注。然而,对通过语法和功能验证但仍然保留或引入安全漏洞的补丁的关注有限。本研究的目的是系统地识别和分类基于 LLM 的代理代码修复中的此类静默故障。我们使用七个代理框架使用 GPT-4o-mini 生成的 1,030 个有效执行跟踪,在两个以安全为中心的数据集 SecurityEval 和 CVEfixes 上进行了实证研究。通过三轮定性编码和手动验证,识别出 170 个已确认的无声故障。主要结果是: (i) 确定了无声故障的三个主要类别:遗漏、引入和不足。遗漏占已确认失败的 48.2%,引入占 30.6%,不足占 21.2%。 (ii) 十个细粒度故障代码被分为这三个类别,显示代理如何忽略所需的安全控制、应用不完整的防御或在修复过程中引入新的漏洞。 (iii) 当前的测试通过评估和基于 LLM 的审阅者角色不足以暴露或拦截已确诊病例中的这些失败。 (iv) 不同框架中出现了类似的不安全解决方案,表明可能存在共享模型、提示或任务级别的影响,而单代理和多代理系统则显示出不同的故障概况。这项研究的结果将帮助研究人员和从业者改进基于 LLM 的代理代码修复的评估,并开发超越功能正确性并覆盖所有生成工件的有针对性的验证方法。