本发明专利技术适用计算机技术领域,提供了一种代码漏洞检测数据的增强方法、装置、设备及存储介质,该方法包括:根据Java类源代码数据特征,对Java类源代码训练数据进行方法数据块提取;将提取到的所有方法数据块转换为方法数据块向量,得到待增强的原始训练样本集;根据Java类源代码训练数据的漏洞标签,对原始训练样本集中方法数据块向量进行多角度数据增强,得到增强后的最终训练样本集,从而针对不同漏洞类型,生成最终的差异化训练样本集,提高了样本数据的可用性。
【技术实现步骤摘要】
本专利技术属于计算机,尤其涉及一种代码漏洞检测数据的增强方法、装置、设备及存储介质。
技术介绍
1、软件漏洞检测是保障计算机软件安全的重要途径。传统漏洞检测方法主要有基于相似性的漏洞检测方法、基于符号执行的漏洞检测方法、基于规则的漏洞检测方法和传统的机器学习方法。这些方法大多依赖于人类专家手工定义的规则或特征属性,且存在误报率、漏报率较高的问题。近年来,深度学习模型在软件漏洞检测上的应用表现出来具大的潜力,基于深度学习的漏洞检测具有更好的自动化能力和智能性。
2、但目前,软件漏洞检测深度学习模型的检测大多针对用c/c++语言编写的软件源代码,针对当前广泛存在的用java语言编写的各种互联网应用软件后端程序源代码的却很少。此外,软件漏洞数据存在明显的数据不平衡问题,不同漏洞类别的样本数量存在着明显差异,这种不平衡可能会导致深度学习模型在检测少数类别的漏洞方面表现不佳。同时,公开的漏洞数据集也存在着数据不足的问题,这限制了软件漏洞检测深度学习模型的训练和评估,束缚了模型的检测性能。
技术实现思路
1、本专利技术的目的在于提供一种代码漏洞检测数据的增强方法、装置、设备及存储介质,旨在解决由于现有技术无法提供丰富、有效的java源代码漏洞训练数据,导致训练得到的检测深度学习模型性能不佳的问题。
2、第一方面,本专利技术提供了一种代码漏洞检测数据的增强方法,包括下述步骤:
3、根据java类源代码数据特征,对java类源代码训练数据进行方法数据块提取;p>4、将提取到的所有方法数据块转换为方法数据块向量,得到待增强的原始训练样本集;
5、根据所述java类源代码训练数据的漏洞标签,对所述原始训练样本集中方法数据块向量进行多角度数据增强,得到增强后的最终训练样本集。
6、在一些实施例中,根据所述java类源代码训练数据的漏洞标签,对所述原始训练样本集中方法数据块向量进行多角度数据增强,得到增强后的最终训练样本集的步骤,包括:
7、根据所述java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集;
8、基于所述第一增强样本集中的正样本,通过第一生成对抗网络生成第一新增样本集,基于所述第一增强样本集中的负样本,通过第二生成对抗网络生成第二新增样本集;
9、根据所述java类源代码训练数据的漏洞标签,对所述原始训练样本集、第一增强样本集、第一新增样本集、和/或第二新增样本集进行模糊采样,得到第二增强样本集;
10、根据所述java类源代码训练数据的漏洞标签,将所述原始训练样本集、第一增强样本集、第一新增样本集、第二新增样本集、和/或第二增强样本集进行合并,得到所述最终训练样本集。
11、在一些实施例中,根据所述java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集的步骤,包括:
12、当所述java类源代码训练数据的漏洞标签为第一漏洞标签时,获取所述方法数据块向量集中的少数类方法数据块向量,使用以下公式:
13、xnew=x+rand(0,1)*|x-xneighbor|
14、对所述少数类方法数据块向量进行数据增强,得到第一合成样本,其中,xnew表示所述第一合成样本,x表示所述少数类方法数据块向量,xneighbor表示所述少数类方法数据块向量的最近邻样本;
15、将所有第一合成样本与所述原始训练样本集中的样本进行合并,得到所述第一增强样本集。
16、在一些实施例中,根据所述java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集的步骤,包括:
17、当所述java类源代码训练数据的漏洞标签为第二漏洞标签时,采用borderline-smote算法对所述方法数据块向量进行数据增强,得到第二合成样本;
18、将所有第二合成样本与所述原始训练样本集中的样本进行合并,得到所述第一增强样本集;
19、当所述java类源代码训练数据的漏洞标签为第三漏洞标签时,采用adasyn算法对所述方法数据块向量进行数据增强,得到第三合成样本;
20、将所有第三合成样本与所述原始训练样本集中的样本进行合并,得到所述第一增强样本集。
21、在一些实施例中,采用公式xnew=x+noise(mean,std)对所述原始训练样本集、第一增强样本集、第一新增样本集、和/或第二新增样本集进行模糊采样,得到第二增强样本集,其中,xnew表示经过模糊采样后得到的第二增强样本,x表示待模糊采样的样本,mean表示预设的均值,std表示预设的标准差。
22、第二方面,本专利技术提供了一种代码漏洞检测数据的增强装置,所述增强装置包括:
23、数据块提取单元,用于根据java类源代码数据特征,对java类源代码训练数据进行方法数据块提取;
24、样本集获取单元,用于将提取到的所有方法数据块转换为方法数据块向量,得到待增强的原始训练样本集;以及
25、样本集增强单元,用于根据所述java类源代码训练数据的漏洞标签,对所述原始训练样本集中方法数据块向量进行多角度数据增强,得到增强后的最终训练样本集。
26、在一些实施例中,所述样本集增强单元包括:
27、第一增强单元,用于根据所述java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集;
28、样本生成单元,用于基于所述第一增强样本集中的正样本,通过第一生成对抗网络生成第一新增样本集,基于所述第一增强样本集中的负样本,通过第二生成对抗网络生成第二新增样本集;
29、第二增强单元,用于根据所述java类源代码训练数据的漏洞标签,对所述原始训练样本集、第一增强样本集、第一新增样本集、和/或第二新增样本集进行模糊采样,得到第二增强样本集;以及
30、第一合并单元,用于根据所述java类源代码训练数据的漏洞标签,将所述原始训练样本集、第一增强样本集、第一新增样本集、第二新增样本集、和/或第二增强样本集进行合并,得到所述最终训练样本集。
31、在一些实施例中,所述第一增强单元包括:
32、样本合成单元,用于当所述java类源代码训练数据的漏洞标签为第一漏洞标签时,获取所述方法数据块向量集中的少数类方法数据块向量,使用以下公式:
33、xnew=x+rand(0,1)*|x-xneighbor|
34、对所述少数类方法数据块向量进行数据增强,得到第一合成样本,其中,xnew表示所述第一合成样本,x表示所述少数类方法数据块向量,xneighbor表示所述少数类方法数据块向量的最近邻样本;以及
35、第二合并单元,用于将所有第一合成样本与本文档来自技高网
...
【技术保护点】
1.一种代码漏洞检测数据的增强方法,其特征在于,包括下述步骤:
2.如权利要求1所述的增强方法,其特征在于,根据所述Java类源代码训练数据的漏洞标签,对所述原始训练样本集中方法数据块向量进行多角度数据增强,得到增强后的最终训练样本集的步骤,包括:
3.如权利要求2所述的增强方法,其特征在于,根据所述Java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集的步骤,包括:
4.如权利要求2所述的增强方法,其特征在于,根据所述Java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集的步骤,包括:
5.如权利要求2所述的增强方法,其特征在于,采用公式xnew=x+noise(mean,std)对所述原始训练样本集、第一增强样本集、第一新增样本集、和/或第二新增样本集进行模糊采样,得到第二增强样本集,其中,xnew表示经过模糊采样后得到的第二增强样本,x表示待模糊采样的样本,mean表示预设的均值,std表示预设的标准差。
6.一种代码漏洞检测数据的增强装置,其特征在于,所述增强装置包括:
7.如权利要求6所述的增强装置,其特征在于,所述样本集增强单元包括:
8.如权利要求7所述的增强装置,其特征在于,所述第一增强单元包括:
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
...
【技术特征摘要】
1.一种代码漏洞检测数据的增强方法,其特征在于,包括下述步骤:
2.如权利要求1所述的增强方法,其特征在于,根据所述java类源代码训练数据的漏洞标签,对所述原始训练样本集中方法数据块向量进行多角度数据增强,得到增强后的最终训练样本集的步骤,包括:
3.如权利要求2所述的增强方法,其特征在于,根据所述java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集的步骤,包括:
4.如权利要求2所述的增强方法,其特征在于,根据所述java类源代码训练数据的漏洞标签,采用匹配的过采样方法对所述方法数据块向量进行数据增强,得到第一增强样本集的步骤,包括:
5.如权利要求2所述的增强方法,其特征在于,采用公式xnew=x+noise(mean,std)对所述原始训练样本集、第一增强样本集、第一新...
【专利技术属性】
技术研发人员:毛斐巧,袁膺翔,杜星杨,杜智华,
申请(专利权)人:深圳大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。