论文

AutoTrace:通过代理过程间探索从补丁到触发器

AutoTrace: From Patches to Triggers via Agentic Interprocedural Exploration

智能体系统Agent 规划

摘要

给定漏洞修复提交,触发器本地化会询问哪个特定语句将易受攻击的程序状态转变为具体的不安全操作。这个问题比二进制漏洞检测更难,因为答案需要过程间的因果推理:在现实世界的 CVE 中,触发语句位于修补函数之外的多个调用层,超出了静态规则集和模式匹配语言模型等的范围。我们提出了 AutoTrace,这是一种代理管道,它通过逐层探索代码属性图来定位漏洞触发器,其中 LLM 代理决定下一步要查看的位置,而确定性可接受性门则决定在报告触发器之前需要哪些证据。智能体绝不会凭自己的权力接受触发;每个报告的触发器都有从图表中提取的明确证据支持,因此该管道涵盖了过程内和过程间的漏洞,而不依赖于无根据的模型判断。在完整的 InterPVD 基准测试中,AutoTrace 达到了 75.0% VulnHit 和 80.8% FuncHit,超过了同一语料库上的现有技术水平。在相同的机器上构建,我们构建了 SinkTrace-Bench,这是一个数据集,它将每个漏洞暴露为源到接收器 (S2S) 因果链,从攻击者控制的输入到传播到危险操作,从匹配的漏洞和修补程序状态中提取。它包含 1,542 个经过验证者确认、完美平衡的易受攻击/安全的样本,我们根据专家注释对其标签保真度进行审核。对前沿 LLM 进行基准测试,我们发现即使是最强大的人也很难区分匹配对,从而暴露了触发定位目标的因果推理差距。工件可在 https://github.com/Erroristotle/AutoTrace 获取。