基于生成预训练变换器模型的自动化软件脆弱性静态代码分析
利用机器学习和深度神经网络,针对C++程序开发了一种基于数据驱动的漏洞检测方法,研究结果表明结合源代码和神经网络特征,可以获得更可靠的漏洞检测结果,最高检测能力达到0.87。
Feb, 2018
这项研究利用C/C++开源代码,使用机器学习开发了一个基于函数级别的漏洞检测系统,并使用三个定位潜在攻击的静态分析器精心筛选标注了数百万个开源函数的数据集。研究表明深度学习源代码的特征表示法是一种自动化软件漏洞检测的有前途的方法。
Jul, 2018
本文介绍了从GitHub公开可用的代码细调的Codex语言模型,并研究了其Python代码编写能力。在新的评估集HumanEval上,我们的模型可解决28.8%的问题,并发现重复采样模型是解决难题的有效策略。但我们也发现其局限性,最终讨论了代码生成技术的潜在影响。
Jul, 2021
本研究探讨了如何利用基于transformer的语言模型来检测软件漏洞,研究了在处理具有多个漏洞的C/C++源代码时,这些模型的性能如何,并发现与当时的双向LSTM和双向GRU等其他模型相比,这些语言模型在漏洞检测方面具有更好的性能指标。此外,该论文还分析了流行的平台来有效地进行微调,并在选择平台时提供了建议。
Apr, 2022
本文提出了第一种自动发现黑盒生成模型中安全漏洞的方法,并基于少量提示提出了新颖的黑盒逆转方法。通过对高风险安全弱点的代码生成模型进行研究,我们展示了我们的方法可以自动系统地发现各种代码生成模型中的上千个安全漏洞,包括商业黑盒模型GitHub Copilot。
Feb, 2023
提出了一种结合RoBERTa模型和GCN模型的关于代码漏洞检测的多任务分类器,该模型采用了一个语义性漏洞图来降低偏差,并通过结合Focal Loss目标函数降低数据集不平衡的影响。在多个数据集的测试中,该模型表现优异,能够在最好的情况下提高2.41%和18.75%的检测效果,并且在针对知名Github代码库的N-day程序样本的测试中表现出93%的准确率,能够检测出4种零日漏洞。
Apr, 2023
本文采用机器学习和深度学习技术,提出了一种使用编辑时的不完整代码片段检测潜在代码漏洞的实用系统,通过LLMs等预训练模型的零样本、少样本和微调等方法,有效提高了潜在漏洞检测的准确性和效率。实验结果显示,相较于现有的漏洞检测模型,本文的方法可以提升10%左右的效果,并且在高风险代码场景下检测到的潜在漏洞可以减少达90%。
May, 2023
通过评估OpenAI的GPT-4等大型语言模型与传统的静态代码分析器(如Snyk和Fortify)在检测软件漏洞方面的能力,我们发现GPT-4能够识别出大约四倍于其他模型的漏洞,并提供可行的修复方案,同时显示出较低的误报率。未来研究应当探索系统级漏洞,并整合多个静态代码分析器,以获得对大型语言模型潜力的全面视角。
Aug, 2023
大型语言模型(LLMs)在代码生成方面取得了显著进展,但它们的训练使用了来自开源代码库(如GitHub)的未经筛选的数据,存在意外传播安全漏洞的风险。为了有效地减轻这一问题,本文从软件安全的角度对代码LLMs进行了全面研究,并提出了SecuCoGen数据集,用于评估和增强代码LLMs的安全性能。研究结果发现,现有模型在代码生成中经常忽视安全问题,提出了有效的方法来解决安全漏洞,并提高代码的整体稳健性。此外,研究还发现现有模型在修复漏洞代码方面存在问题,并且某些漏洞类型对模型构成挑战。基于这些发现,我们相信本研究将对软件工程社区产生积极影响,激发改进LLMs训练和使用方法的开发,从而实现更安全、更可信的模型部署。
Oct, 2023
在代码语言模型(Code LMs)和漏洞检测不断增长的兴趣下,我们研究了代码语言模型在漏洞检测方面的有效性。研究发现现有漏洞数据集存在重要不足,包括数据质量不高、标签准确性低和重复率高,导致模型在现实漏洞检测场景中的性能不可靠。为解决这些挑战,我们引入了PrimeVul数据集,用于训练和评估代码语言模型在漏洞检测方面的性能。通过对PrimeVul上的代码语言模型进行评估,发现现有基准明显高估了这些模型的性能。这些发现强调了当前能力和在安全角色中部署代码语言模型的实际需求之间存在的巨大差距,突出了在这一领域需要更多创新的研究。
Mar, 2024