技术新讯 > 计算推算,计数设备的制造及其应用技术 > 软件漏洞检测网络训练方法、应用方法、电子设备及介质  >  正文

软件漏洞检测网络训练方法、应用方法、电子设备及介质

  • 国知局
  • 2024-07-31 22:41:59

本发明涉及文本检测,具体涉及一种软件漏洞检测网络训练方法、应用方法、电子设备及介质。

背景技术:

1、软件漏洞检测是软件工程和信息安全领域的一个基础性和关键性任务。在深度学习在软件漏洞检测的应用上,由于对数据集进行准确标记需要消耗专业人员大量的时间和精力,因此在软件漏洞检测任务中一般使用半监督深度学习的方法。半监督深度学习方法仅需要大量的未标记代码片段和少量进行了标记的代码片段即可开展训练任务。一般来说,半监督深度学习方法首先使用有限的标记代码片段通过监督深度学习技术训练一个教师模型,然后利用这个训练好的教师模型为未标记的代码片段生成伪标记。随后,采用选择策略来识别正确的伪标记,用于训练学生模型。训练好的学生模型被作为下一轮训练中的新教师模型,为下一轮训练生成伪标记。

2、但半监督深度学习方法在模型训练过程中,由于选择的用于下一轮迭代的伪标记难以保证伪标记全部正确,存在着一些错误标记,这些错误标记会导致训练偏差。同时数据集存在一些数据质量问题,例如标记不准确、重复代码片段、样本选择不均匀或者数据源来源不同导致分布差异等,会导致数据偏差。其中,训练偏差可能会导致模型过拟合,数据偏差可能会导致模型在训练和测试时产生错误的判断或决策,训练偏差和数据偏差均会对模型的性能和泛化能力造成不良影响。

3、因此现有技术在软件漏洞检测任务上,在训练过程中由于存在着训练偏差和数据偏差,会降低训练得到的软件漏洞检测网络的模型性能和泛化能力,导致对软件漏洞检测的准确性降低。

技术实现思路

1、有鉴于此,有必要提供一种软件漏洞检测网络训练方法、应用方法、电子设备及介质,用于解决现有技术中,训练过程中存在训练偏差和数据偏差,导致软件漏洞检测网络的模型性能和泛化性能降低的技术问题。

2、为了解决上述问题,一方面,本发明提供了一种软件漏洞检测网络训练方法,包括:

3、获取软件漏洞训练数据,软件漏洞训练数据包括代码片段和部分代码片段的真实标记;

4、将未标记代码片段输入教师模型,得到部分代码片段的伪标记;

5、构建初始学生模型,初始学生模型包括检测头、伪检测头和最差检测头,基于真实标记和对应代码片段训练检测头,基于伪标记和对应代码片段训练伪检测头,基于真实标记、伪标记和各标记对应代码片段训练最差检测头,得到学生模型;

6、基于教师模型和学生模型的预测性能确定新一轮教师模型,直至新一轮教师模型的预测性能提升至小于预设阈值。

7、在一种可能的实现方式中,获取软件漏洞训练数据,包括:

8、获取软件代码数据,对软件代码数据进行预处理得到各代码片段,对其中部分代码片段进行人工标注得到真实标记;

9、其中,真实标记包括有漏洞和无漏洞两种类别。

10、在一种可能的实现方式中,教师模型通过训练初始教师模型得到,训练初始教师模型,包括:

11、根据真实标记对应代码片段生成特征向量,并将特征向量输入初始教师模型,输出得到漏洞预测概率;

12、根据漏洞预测概率与真实标记确定损失函数值,更新模型参数,最小化损失函数直至收敛,得到训练完成后的教师模型。

13、在一种可能的实现方式中,将未标记代码片段输入教师模型,得到部分代码片段的伪标记,包括:

14、将未标记代码片段输入教师模型,基于蒙特卡罗方法预测得到概率标记;

15、基于确定性感知策略确定概率标记的信息增益值;

16、设置采样阈值,根据信息增益值确定概率标记的采样权重,将采样权重大于采样阈值的概率标记作为伪标记。

17、在一种可能的实现方式中,检测头、伪检测头和最差检测头的网络参数互相独立。

18、在一种可能的实现方式中,基于真实标记和对应代码片段训练检测头,基于伪标记和对应代码片段训练伪检测头,基于真实标记、伪标记和各标记对应代码片段训练最差检测头,得到学生模型,包括:

19、将真实标记和对应代码片段输入学生模型,得到第一预测概率,将第一预测概率与真实标记对比计算交叉熵损失,更新检测头的网络参数,最小化交叉熵损失直至损失收敛;

20、将伪标记和对应代码片段输入学生模型,得到第二预测概率,将第二预测概率与伪标记对比计算训练偏差损失;

21、将真实标记、伪标记和各标记对应代码片段输入学生模型,得到第三预测概率,将第三预测概率和真实标记和伪标记对比计算数据偏差损失;

22、根据训练偏差损失和数据偏差损失确定总偏差损失,更新网络参数以最小化总偏差损失直至损失收敛,得到学生模型。

23、在一种可能的实现方式中,基于教师模型和学生模型的预测性能确定新一轮教师模型,直至新一轮教师模型的预测性能提升至小于预设阈值,包括:

24、确定教师模型的预测性能和学生模型的预测性能,将预测性能高的模型作为新一轮教师模型,并基于新一轮教师模型生成伪标记;

25、构建新一轮学生模型,并根据真实标记、新一轮教师模型得到的伪标记和各标记对应代码片段训练新一轮学生模型;

26、持续迭代过程直到连续两次迭代的教师模型预测性能差异小于预设阈值,得到训练完备的目标教师模型,目标教师模型即为训练完备的软件漏洞检测网络。

27、另一方面,本发明还提供了一种软件漏洞检测网络应用方法,包括:

28、获取待检测代码片段;

29、将待检测代码片段输入到训练完备的软件漏洞检测网络,得到软件漏洞检测结果。

30、其中,训练完备的软件漏洞检测网络根据上述的软件漏洞检测网络训练方法确定。

31、另一方面,本发明还提供了一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,实现上述的软件漏洞检测网络训练方法和/或上述的软件漏洞检测网络应用方法。

32、另一方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述的软件漏洞检测网络训练方法和/或上述的软件漏洞检测网络应用方法。

33、本发明的有益效果是:在本发明提供的软件漏洞检测网络训练方法,通过伪标记和对应代码片段训练伪检测头以降低训练偏差,通过真实标记、伪标记和对应代码片段训练最差检测头以降低数据偏差,提高模型的性能和泛化能力,实现对软件漏洞的准确检测。

技术特征:

1.一种软件漏洞检测网络训练方法,其特征在于,包括:

2.根据权利要求1所述的软件漏洞检测网络训练方法,其特征在于,所述获取软件漏洞训练数据,包括:

3.根据权利要求1所述的软件漏洞检测网络训练方法,其特征在于,所述教师模型通过训练初始教师模型得到,所述训练初始教师模型,包括:

4.根据权利要求1所述的软件漏洞检测网络训练方法,其特征在于,所述将未标记代码片段输入教师模型,得到部分代码片段的伪标记,包括:

5.根据权利要求1所述的软件漏洞检测网络训练方法,其特征在于,所述检测头、所述伪检测头和所述最差检测头的网络参数互相独立。

6.根据权利要求1所述的软件漏洞检测网络训练方法,其特征在于,所述基于所述真实标记和对应代码片段训练所述检测头,基于所述伪标记和对应代码片段训练所述伪检测头,基于所述真实标记、所述伪标记和各标记对应代码片段训练所述最差检测头,得到学生模型,包括:

7.根据权利要求1所述的软件漏洞检测网络训练方法,其特征在于,所述基于所述教师模型和所述学生模型的预测性能确定新一轮教师模型,直至所述新一轮教师模型的预测性能提升至小于预设阈值,包括:

8.一种软件漏洞检测网络应用方法,其特征在于,包括:

9.一种电子设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时,实现根据权利要求1至7任一项所述的软件漏洞检测网络训练方法和/或根据权利要求8所述的软件漏洞检测网络应用方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现根据权利要求1至7任一项所述的软件漏洞检测网络训练方法和/或根据权利要求8所述的软件漏洞检测网络应用方法。

技术总结本发明提供了一种软件漏洞检测网络训练方法、应用方法、电子设备及介质,涉及文本检测技术领域,包括:获取软件漏洞训练数据,包括代码片段和真实标记;将未标记代码片段输入教师模型,得到部分代码片段的伪标记;构建初始学生模型,基于真实标记和对应代码片段训练检测头,基于伪标记和对应代码片段训练伪检测头,基于真实标记、伪标记和各标记对应代码片段训练最差检测头,得到学生模型;基于教师模型和学生模型的预测性能确定新一轮教师模型,直至新一轮教师模型的预测性能提升至小于预设阈值。本发明通过伪标记和对应代码片段训练伪检测头以降低训练偏差,通过真实标记、伪标记和对应代码片段训练最差检测头以降低数据偏差。技术研发人员:胡文华,余啸,李富洋,陈浩轩,张泽贤,宋百灵,杨佩鑫,林冠成,刘磊,叶培昌,李焱辉受保护的技术使用者:武汉理工大学技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/194164.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。