论文
ATTAIN:通过跟踪驱动的差异分析进行自动漏洞利用故障分析
ATTAIN: Automated Exploit Failure Analysis through Trace-Driven Diff Analysis
摘要
漏洞利用广泛用于检查库漏洞是否出现在不同版本中并标记受影响的版本范围。基于漏洞的检查有时会失败,因为 API 或环境更改后,漏洞在许多版本上停止运行。基于提交的方法(例如 SZZ 式分析)有时会错过正确的引入提交,并沿着长版本链错误地传播标签。这些问题导致许多受影响的版本未标记或错误标记,并使手动漏洞利用失败分析变得非常昂贵且不切实际。我们提出了 ATTAIN,一个跟踪驱动的差异分析框架,具有三个模块,用于评估不断发展的库版本中存在的漏洞。这些模块是跟踪构建、差异探索和受影响版本判断。跟踪构建模块跨历史库版本执行漏洞利用并比较它们的行为以捕获跨版本执行差异。利用这些差异,差异探索模块通过有限状态工具循环引导 LLM 自主搜索版本更改并收集与漏洞相关的差异块。受影响版本判断模块根据收集到的证据进行推理,判断各个版本是否存在漏洞,并输出受影响的版本范围。我们在包含 128 个库的 224 个 CVE 和 25,943 个库版本的广泛数据集上评估 ATTAIN。 ATTAIN 的 F1 分数为 93.24%,分别比基于提交的方法 V-SZZ 和 LLM4SZZ 好 116.28% 和 33.30%。 ATTAIN 使用简短的工具引导提示和固定的迭代次数,从而保持较低的词元使用率。它匹配或超越常见 CWE 类型的现有方法,包括由于非漏洞原因而导致漏洞利用运行失败或提交消息未明确界定受影响版本的情况。