论文

使用 LLM 通过错误减少技术来裁决静态分析警报

Using LLMs to Adjudicate Static-Analysis Alerts with Error Reduction Techniques

模型推理推理验证与自校正

摘要

静态分析广泛用于在部署之前查找源代码中的安全漏洞,但它通常会产生比分析师可以查看的更多的警报。我们研究 大语言模型 (LLM) 判断静态分析警报(分类为真实错误或误报)的能力。我们使用两种错误缓解方法:(1)一致性检查(CC),多次运行 LLM 并检查结论是否彼此一致;(2)LLM 推理评估(LRE)步骤,多次运行 LLM,然后要求 LLM 在评估每次运行提供的推理后选择一个裁决。我们在三个测试套件上评估了多个 LLM:Juliet、FormAI 和 SV-COMP。在所有三个套件中,我们测试的中层推理 LLM(o4-mini、gpt-oss-120b、gpt-oss-20b)达到了高召回率(工具正确标记为需要修复/手动注意的真实错误的百分比)和特异性(工具正确地将实际错误警报排除为错误警报的百分比)。通过减少错误,它们在每个套件上达到至少 98% 的召回率和至少 94.8% 的特异性(在 Juliet 和 SV-COMP 上仅使用 CC,在 FormAI 上使用 LRE+CC)。我们探究 Juliet 记忆并表明 o4-mini 通常可以重建经过净化的测试用例的原始身份,因此我们的泛化主张主要基于 FormAI,并根据我们自己未发布的手动裁决进行评分。我们还报告了使用 LLM 合成动态触发缺陷的程序的结果作为独立证据;有效性检查拒绝了每一个旨在误报的触发器驱动程序,因此有效的触发器被证明是真正缺陷的有力证据。