基于提示微调的软件漏洞严重程度预测方法

本发明涉及计算机,尤其涉及一种基于提示微调的软件漏洞严重程度预测方法。
背景技术:
1、软件漏洞会对计算机系统的安全性和可靠性造成严重威胁,并可能造成重大经济损失。特别是随着新技术的出现增加了互联网的复杂性,导致漏洞出现的频率增加,但由于软件的复杂性和修复资源有限,短时间内不可能完成漏洞的修复。因此,我们有必要识别高危漏洞并优先修复。
2、通用漏洞评分系统是一种通用的漏洞评估框架,它考虑漏洞的各个方面,并根据专家知识生成漏洞严重性评分。因此,很多从业者从国家漏洞数据库获取漏洞信息,利用通用漏洞评分系统生成严重性评分,以确定修复软件漏洞的优先级。然而,面对如此多的漏洞报告并按顺序一一解决,基于专家知识的漏洞评估显得滞后。因此,迫切需要自动化评估工具或模型来帮助软件工作者筛选出哪些漏洞需要重点解决。
3、为了解决这个问题,研究人员利用获得的信息构建漏洞评估模型,去预测漏洞严重程度。与基于预训练语言模型的微调方法相比,传统模型已经落后了。但是如果直接使用预训练语言模型开展下游任务有两方面的问题。一方面,预训练语言模型学习特定于样本的知识具有挑战性,另一方面,微调需要大量数据才能表现良好。后来提示学习的出现缓解了上述问题。另外现有的研究基本上只针对一类信息(源代码或漏洞描述)进行预测,不能充分挖掘出漏洞信息。因此,需要研究一种更加先进的融合源代码和漏洞描述的软件漏洞严重程度预测方法来更好地解决软件漏洞评估问题。
4、如何解决上述技术问题成为本发明面临的课题。
技术实现思路
1、本发明的目的在于提供一种基于提示微调的软件漏洞严重程度预测方法,该方法可以预测软件漏洞的严重程度。
2、本发明的思想为:本发明提出通过融合源代码和漏洞描述来改进基于提示微调的软件漏洞严重程度预测方法,将源代码与漏洞描述通过设计的混合提示模板构建双模态输入,设计映射方法,添加与类别相对应的映射词,将双模态信息输入到预训练模型codet5中进行训练,通过构建的映射方法将模型的自然语言输出映射到具体的类别,通过比较性能变化,以及使用早停策略构建出最优软件漏洞严重程度预测模型,从而更准确、高效地进行软件漏洞评估。
3、本发明是通过如下措施实现的:一种基于提示微调的软件漏洞严重程度预测方法,其中,包括以下步骤:
4、(1)通过挖掘漏洞暴露数据库(cve)和基于git网站的实际软件开发项目,从中收集漏洞的cve id、修复前代码、漏洞严重程度和漏洞描述,然后对其进行预处理,最终得到数据集d,设定数据集的格式为<cve id,漏洞修复前代码,漏洞描述,漏洞严重程度>;其中漏洞严重程度包含类型:low、medium、high和critical,具体包括如下步骤:
5、(1-1)通过在cve中获取漏洞的cve id、漏洞严重程度和漏洞描述,从基于git网站中的开源项目中提取所有与漏洞相关的代码更改,并提取修改前源代码;
6、(1-2)对源代码进行预处理,包括去除注释、空行和行前注释,最终构成漏洞数据集d;
7、(2)划分数据集,按照9:1的比例划分为训练集和验证集,划分过程要借助分层采样方法来保证这两个集合中漏洞严重程度分布保持一致;
8、(3)针对步骤(1)中收集到的数据集,提取源代码和漏洞描述,将其与我们构建的混合提示模板结合形成新的输入,输入到预训练模型codet5中,借助提示微调,用于训练软件漏洞严重程度预测模型和混合提示模板,具体包括如下步骤:
9、(3-1)构建提示模板,我们通过硬提示来区分源代码和漏洞描述这两类信息,即分别添加“the code snippet:”和“the vulnerability description:”两个提示。对于严重性分类,我们使用[soft]标签创建软提示,在训练时将软提示初始化为“classify theseverity:”,另外用[mask]标签来预测或填充缺失的信息,其具体的混合提示模板为:thecode snippet:[x]the vulnerability description:[y][soft][mask],其中[x]和[y]分别为输入的源代码和漏洞描述;
10、(3-2)构建映射方法,通过该方法将模型的自然语言输出映射到具体的类别,例如如果自然语言输出为“low”或“slight”,则映射到low类别;如果自然语言输出为“medium”或“moderate”,则映射为medium类别;如果自然语言输出为“high”或“severe”,则映射为high类别;如果自然语言输出为“critical”或“significant”,则映射为critical类别;
11、(3-3)将构建好的双模态信息输入到预训练语言模型codet5中,借助提示微调进行模型训练和混合提示模板训练,其损失函数被定义为交叉熵:
12、其中n是样本数量,k是类别的数量,yic是样本目标值的one-hot编码,如果样本xi的真实类别等于c,yic则为1,否则为0,hθ(xi)c是观测样本xi属于类别c的预测概率;
13、(4)模型训练过程中,利用早停策略,若验证集的指标连续下降10次,则停止训练,防止出现过拟合问题,并返回构建出的最优软件漏洞严重程度预测模型和对应的提示模板,具体包括如下步骤:
14、(4-1)计算模型在验证集上的f1指标取值变化。
15、(4-2)采用早停策略,当f1值连续10轮都没有超过当前最好的性能时,则停止训练,并返回最好的漏洞严重程度预测模型和混合提示模板。
16、(5)针对需要评估的软件漏洞,可以通过提取该漏洞源代码及漏洞描述信息,通过与训练后的混合提示模板p进行融合,最后输入到上述构建出的软件漏洞严重程度预测模型m以完成目标软件漏洞的严重程度预测。
17、与现有技术相比,本发明的有益效果为:本发明提出的一种基于提示微调的软件漏洞严重程度预测方法使用了先进的预训练语言模型并进行提示微调,为了进一步提升方法的效果,进一步考虑了漏洞源代码和漏洞描述的双模态信息融合,使得训练过程模拟预训练语言模型的预训练过程,更好的挖掘漏洞信息,能够更加准确可靠的分类漏洞严重程度。
技术特征:
1.基于提示微调的软件漏洞严重程度预测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于提示微调的软件漏洞严重程度预测方法,其特征在于,所述步骤(1)中,漏洞严重程度包含类型:low、medium、high和critical,具体包括如下步骤:
3.根据权利要求1所述的基于提示微调的软件漏洞严重程度预测方法,其特征在于,所述步骤(3)中,具体包括如下步骤:
4.根据权利要求1所述的基于提示微调的软件漏洞严重程度预测方法,其特征在于,所述步骤(4)中,具体包括如下步骤:
技术总结
本发明提供了一种基于提示微调的软件漏洞严重程度预测方法,属于计算机技术领域,包括以下步骤:S1:搜集处理漏洞严重程度预测相关数据集。S2:按9:1的比例划分为训练集和验证集,借助分层采样方法保证两者严重程度分布一致;S3:设计混合提示模板及映射方法,将源代码和漏洞描述融合,输入到CodeT5进行模型和提示模板训练;S4:训练时采用早停策略防止过拟合,并返回最优的模型和提示模板;S5:对需要预测的软件漏洞,借助混合提示模板融合源代码和漏洞描述,输入模型并完成严重程度的预测。本发明的有益效果为:借助提示微调和源代码与漏洞描述的融合,不需要大量训练数据,即可完成高质量漏洞严重程度预测模型的构建。
技术研发人员:王积玉,陈翔,田丹,高朝阳,张龙,裴文龙,杨少宇
受保护的技术使用者:南通大学
技术研发日:
技术公布日:2024/11/18
技术研发人员:王积玉,陈翔,田丹,高朝阳,张龙,裴文龙,杨少宇
技术所有人:南通大学
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
