M2CVD:通过多模型协作提升代码漏洞检测中对漏洞本质的理解
《ACM Transactions on Software Engineering and Methodology》:M2CVD: Enhancing Vulnerability Understanding through Multi-Model Collaboration for Code Vulnerability Detection
【字体:
大
中
小
】
时间:2025年11月08日
来源:ACM Transactions on Software Engineering and Methodology
编辑推荐:
多模型协作漏洞检测方法通过结合LLMs的语义理解和预训练模型的可调性,分三阶段优化漏洞检测:初始检测使用预训练模型(如CodeBERT)和LLMs(如ChatGPT)分别识别漏洞,生成基础描述;通过反馈检测结果,LLMs迭代优化漏洞描述以提升语义对齐;最终构建合成数据集,优化检测模型并提高整体准确性。实验表明该方法在真实数据集上显著优于基线,且可扩展至其他模型组合。
摘要
大型语言模型(LLMs)在代码理解方面具有很强的能力,但微调成本和语义对齐问题限制了它们针对特定项目的优化效果;相反,像CodeBERT这样的微调模型易于进行微调,但从复杂的代码语言中学习漏洞语义通常较为困难。为了解决这些挑战,本文提出了多模型协作漏洞检测方法(M2CVD),该方法利用LLMs在分析漏洞语义方面的强大能力来提高微调模型的检测精度。M2CVD采用了一种新颖的协作流程:首先通过微调模型对项目代码的理解来提升LLMs生成的漏洞描述的质量,然后利用这些改进后的漏洞描述来提高微调模型的检测精度。M2CVD主要包括三个阶段:1)初始漏洞检测:初始漏洞检测通过分别对检测模型(例如CodeBERT)和LLM(例如ChatGPT)进行微调来实现。当LLM检测到代码存在漏洞时,它会生成相应的漏洞描述。2)漏洞描述优化:通过向LLM提供检测模型的漏洞评估结果,我们通过与LLM的交互来优化漏洞描述。这种优化可以增强LLM对特定项目中漏洞的理解,有效缩小之前提到的语义对齐差距;3)集成漏洞检测:M2CVD将代码片段与优化后的漏洞描述结合起来形成合成数据,然后使用这些合成数据对验证模型进行微调,以提升模型的缺陷特征学习效率并提高检测精度。我们在两个真实世界的数据集上验证了M2CVD的有效性,结果表明M2CVD的表现显著优于基线方法。此外,我们还证明了M2CVD协作方法可以扩展到其他不同的LLMs和微调模型上,从而提高它们在漏洞检测任务中的准确性。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号