关于 LLM 基于漏洞检测您所想知道的事却又害怕询问的一切
密码学与安全
2025-04-21 v1
摘要
大型语言模型因在代码生成和修复方面的成功,被视为自动化漏洞检测的有前景的工具。然而,尽管其应用广泛,一个关键问题仍未得到解答:LLM 是否真正有效地检测真实世界中的漏洞?当前的评估往往在孤立函数或文件上进行,忽略了理解漏洞所必需的更广泛的执行和数据流上下文。这种疏漏导致两种误导性结果:错误的结论和不良的理由,从而削弱了此前评估的可靠性。因此,本文挑战了三个被广泛认同的社区信念:即 LLM (i) 可靠性差、(ii) 对代码补丁不敏感、(iii) 在模型规模上性能停滞。我们认为这些信念是上下文缺失评估的副产品。为此,我们提出 CORRECT (Context-Rich Reasoning Evaluation of Code with Trust),一个系统性地将上下文信息纳入 LLM 基于漏洞检测评估框架。我们构建了一个包含 2000 对漏洞-修补程序对的数据集,覆盖 99 个 CWE,且评估了 13 个 LLM,跨越 4 个模型系列。我们的框架可激发二元预测和自然语言理由,并进一步使用 LLM 作为评判器进行验证。我们的发现推翻了既有的误解。当提供充足上下文时,SOTA LLM 实现显著提升的性能(例如在关键 CWE 上达 0.7 F1 分数),且准确率达 0.8。我们指出,大多数误报源于推理错误而非分类错误;而模型和推理时间扩展虽提升性能,但也带来报酬递减和召回率权衡。最后,我们发现当前 LLM 基于检测系统存在新的缺陷,如泛化能力有限和过度思考偏差。
引用
@article{arxiv.2504.13474,
title = {Everything You Wanted to Know About LLM-based Vulnerability Detection But Were Afraid to Ask},
author = {Yue Li and Xiao Li and Hao Wu and Minghui Xu and Yue Zhang and Xiuzhen Cheng and Fengyuan Xu and Sheng Zhong},
journal= {arXiv preprint arXiv:2504.13474},
year = {2025}
}