当前位置: 首页 > 专利查询>东南大学专利>正文

模糊测试用例生成方法及装置制造方法及图纸

技术编号:35903237 阅读:17 留言:0更新日期:2022-12-10 10:40
本发明专利技术公开了一种模糊测试用例生成方法,涉及深度生成网络技术领域,用于解决现有不能控制输入向量特征,无法生成特定测试用例的问题,该方法包括以下步骤:根据原始测试用例,得到训练数据集;构建差分自编码器的生成对抗网络模型;将所述训练数据集输入所述生成对抗网络模型进行训练,得到训练好的生成对抗网络模型;将所述训练数据集输入训练好的所述生成对抗网络模型生成测试用例。本发明专利技术通过构建差分自编码器生成对抗网络模型,进而使生成对抗网络更易收敛、所生成的测试用例更多样化,能够提高模糊测试的代码覆盖率和异常发现数。提高模糊测试的代码覆盖率和异常发现数。提高模糊测试的代码覆盖率和异常发现数。

【技术实现步骤摘要】
模糊测试用例生成方法及装置


[0001]本专利技术涉及深度生成网络
,尤其涉及一种模糊测试用例生成方法。

技术介绍

[0002]模糊测试(Fuzzing)技术作为漏洞挖掘最有效的手段之一,近年来一直是众多安全研究人员发现漏洞的首选技术。
[0003]在传统的模糊测试用例生成工作中,测试用例的格式需要依靠人工分析,费时费力。
[0004]基于此,现有技术开始通过生成对抗网络技术智能化地从待测程序的真实输入中学习到该程序所接受的用例格式,以减轻模糊测试中测试用例生成的人力负担。
[0005]但是生成对抗网络在训练时容易遇到训练不稳定、收敛速度慢、生成多样性低的问题;不仅如此,传统的基于生成对抗网络的技术在使用时,只能以随机向量作为输入交给生成器,其测试用例的生成过程难以引导。这些缺点使得生成对抗网络技术用于模糊测试时的性能受到了制约。

技术实现思路

[0006]为了克服现有技术的不足,本专利技术的目的之一在于提供一种模糊测试用例生成方法,通过在传统生成对抗网络的基础上引入编码器和解码器,优化了模型的可引导性和多样性。
[0007]本专利技术的目的之一采用以下技术方案实现:
[0008]一种模糊测试用例生成方法,包括以下步骤:
[0009]根据原始测试用例,得到训练数据集;
[0010]构建差分自编码器的生成对抗网络模型;,
[0011]将所述训练数据集输入所述生成对抗网络模型进行训练,得到训练好的生成对抗网络模型;
[0012]将所述训练数据集输入训练好的所述生成对抗网络模型生成测试用例。
[0013]进一步地,根据原始测试用例,得到训练数据集,包括以下步骤:
[0014]对所述原始测试用例进行基础模糊测试,去除变异用例,得到待转换数据集;
[0015]将所述待转换数据集归一化为数值向量x;
[0016]为所述数值向量x匹配提升标签c,将所述数值向量和所述提升标签对应组成所述训练数据集<x,c>,所述提升标签表示对代码覆盖率或异常发现数的提升结果。
[0017]进一步地,将所述待转换数据集归一化为数值向量x,包括以下步骤:
[0018]以二进制方式读取所述带转换数据集中的测试用例,记录最大用例字节长度L;
[0019]为所有所述测试用例添加零字节,使每个所述测试用例的长度都为L;
[0020]将所述测试用例中每4比特数据转化为16进制,得到整数向量;
[0021]将所述整数向量归一化得到所述数值向量x。
[0022]进一步地,所述生成对抗网络模型包括编码器、生成器、解码器、判别器与分类器,其中,所述生成器作为所述生成对抗网络模型的解码器;
[0023]构建差分自编码器的生成对抗网络模型,包括以下步骤:
[0024]构建编码器,所述编码器包括1个估计层及2个采样层,所述估计层包括3层全连接层,所述采样层包括2层全连接层;
[0025]构建解码器、判别器及分类器,所述解码器、所述判别器及所述分类器包括5层全连接层及全连接输出层;
[0026]加载损失函数,完成所述生成对抗网络的构建。
[0027]进一步地,所述全连接层之间通过BatchNorm进行数据处理,使用LeakyReLU作为激活函数;所述全连接输出层的激活函数为Sigmoid函数。
[0028]进一步地,所述损失函数为:
[0029][0030][0031][0032][0033]其中,x,x
p
分别为真实输入用例、真实用例经编码再解码重构生成用例和由随机编码向量解码生成的测试用例;表示数学期望,P
f
表示由解码器生成的测试用例所服从的概率分布,D表示判别器的判别结果;为分类器、编码器、解码器和判别器的损失函数;λ
1~4
为损失函数权重;分别为编码器的KL散度、生成器的重构损失、生成器与分类器均值特征匹配损失、生成器与判别器的均值特征匹配损失,计算满足公式:
[0034][0035][0036][0037][0038]其中,p(z|x)为编码器对输入为x时,输出样本z的分布后验估计;x
p
~P
z
表示x
p
服从由编码器解码随机特征得到的随机样本分布;表示x
p
服从真实样本经编码器和解
码器处理后的重构样本的分布;x~P
r
表示x服从真实样本的概率分布;m为神经网络训练的训练批数;f
C
,f
D
分别为分类器和判别器对应模型的特征提取映射函数。
[0039]进一步地,将所述训练数据集输入所述生成对抗网络模型进行训练,包括以下步骤:
[0040]初始化模型权重;
[0041]根据分类器损失函数,训练所述分类器;
[0042]固定所述编码器和所述解码器参数,抽取部分所述训练数据集,生成与抽取数量相同的重构样本及随机样本,对所述判别器进行训练,以所述判别器可识别出真实样本为训练目标;
[0043]固定所述判别器参数,训练所述编码器和解码器,以所述判别器无法区分真实样本及所述解码器生成的重构样本与随机样本为训练目标;
[0044]重复进行所述判别器、所述编码器及所述解码器的训练,当所述判别器无法区分所述解码器生成的测试用例和真实用例时,停止训练。
[0045]进一步地,将所述训练数据集输入训练好的所述生成对抗网络模型生成测试用例,包括:
[0046]对所述训练数据集中的每个测试用例x,输入所述编码器得到特征向量z,通过所述解码器解码所述特征向量,得到重构测试用例;
[0047]随机从所述训练数据集中抽取1对测试用例x1、x2,输入所述编码器得到特征向量z1、z2,并线性组合所述特征向量,线性组合满足公式:
[0048]z1=Enc(x1),
[0049]z2=Enc(x2),
[0050]α~U(0,1),
[0051][0052]其中,α为服从均匀分布的随机数,通过所述解码器对组合后的特征进行解码,得到组合测试用例;
[0053]从标准正态分布中采样得到随机数,将所述随机数作为特征向量并输入所述解码器,生成直接测试用例。
[0054]进一步地,还包括:
[0055]筛选出相同覆盖率所述测试用例的最小子集,并合并为新测试用例;
[0056]将所述新测试用例添加至所述模糊测试工具的待变异队列;
[0057]通过所述模糊测试工具,将所述测试用例及所述新测试用例输入待测程序。
[0058]本专利技术的目的之二在于提供一种模糊测试用例生成装置,通过构建差分自编码器,实现测试用例可引导性。
[0059]本专利技术的目的之二采用以下技术方案实现:
[0060]一种模糊测试用例生成装置,其特征在于,其包括:
[0061]数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模糊测试用例生成方法,其特征在于,包括以下步骤:根据原始测试用例,得到训练数据集;构建差分自编码器的生成对抗网络模型;将所述训练数据集输入所述生成对抗网络模型进行训练,得到训练好的生成对抗网络模型;将所述训练数据集输入训练好的所述生成对抗网络模型生成测试用例。2.如权利要求1所述的模糊测试用例生成方法,其特征在于,根据原始测试用例,得到训练数据集,包括以下步骤:对所述原始测试用例进行基础模糊测试,去除变异用例,得到待转换数据集;将所述待转换数据集归一化为数值向量x;为所述数值向量x匹配提升标签c,将所述数值向量和所述提升标签对应组成所述训练数据集<x,c>,所述提升标签表示对代码覆盖率或异常发现数的提升结果。3.如权利要求2所述的模糊测试用例生成方法,其特征在于,将所述待转换数据集归一化为数值向量x,包括以下步骤:以二进制方式读取所述带转换数据集中的测试用例,记录最大用例字节长度L;为所有所述测试用例添加零字节,使每个所述测试用例的长度都为L;将所述测试用例中每4比特数据转化为16进制,得到整数向量;将所述整数向量归一化得到所述数值向量x。4.如权利要求1所述的模糊测试用例生成方法,其特征在于,所述生成对抗网络模型包括编码器、生成器、解码器、判别器与分类器,其中,所述生成器作为所述生成对抗网络模型的解码器;构建差分自编码器的生成对抗网络模型,包括以下步骤:构建编码器,所述编码器包括1个估计层及2个采样层,所述估计层包括3层全连接层,所述采样层包括2层全连接层;构建解码器、判别器及分类器,所述解码器、所述判别器及所述分类器包括5层全连接层及全连接输出层;加载损失函数,完成所述生成对抗网络的构建。5.如权利要求4所述的模糊测试用例生成方法,其特征在于,所述全连接层之间通过BatchNorm进行数据处理,使用LeakyReLU作为激活函数;所述全连接输出层的激活函数为Sigmoid函数。6.如权利要求4所述的模糊测试用例生成方法,其特征在于,所述损失函数为:6.如权利要求4所述的模糊测试用例生成方法,其特征在于,所述损失函数为:6.如权利要求4所述的模糊测试用例生成方法,其特征在于,所述损失函数为:6.如权利要求4所述的模糊测试用例生成方法,其特征在于,所述损失函数为:其中,x,x
p
分别为真实输入用例、真实用例经编码再解码重构生成用例和由随机编码向量解码生成的测试用例;表示数学期望,P
f
表示由解码器生成的测试用例所服从的概率分布,D表示判别器的判别结果;为分类器、编码器、解码器和判别器的损
失函数;λ
1~4
为损失函数权重;分别为编码器的KL散度、生成器的重构损失、生成器与分类器均值特...

【专利技术属性】
技术研发人员:汪自翔刘煦健王文秦中元孙歆李泽儒范家荣韩嘉佳孙昌华戴桦
申请(专利权)人:东南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1