【技术实现步骤摘要】
模糊测试用例生成方法及装置
[0001]本专利技术涉及深度生成网络
,尤其涉及一种模糊测试用例生成方法。
技术介绍
[0002]模糊测试(Fuzzing)技术作为漏洞挖掘最有效的手段之一,近年来一直是众多安全研究人员发现漏洞的首选技术。
[0003]在传统的模糊测试用例生成工作中,测试用例的格式需要依靠人工分析,费时费力。
[0004]基于此,现有技术开始通过生成对抗网络技术智能化地从待测程序的真实输入中学习到该程序所接受的用例格式,以减轻模糊测试中测试用例生成的人力负担。
[0005]但是生成对抗网络在训练时容易遇到训练不稳定、收敛速度慢、生成多样性低的问题;不仅如此,传统的基于生成对抗网络的技术在使用时,只能以随机向量作为输入交给生成器,其测试用例的生成过程难以引导。这些缺点使得生成对抗网络技术用于模糊测试时的性能受到了制约。
技术实现思路
[0006]为了克服现有技术的不足,本专利技术的目的之一在于提供一种模糊测试用例生成方法,通过在传统生成对抗网络的基础上引入编码器和解码器,优化了模型的可引导性和多样性。
[0007]本专利技术的目的之一采用以下技术方案实现:
[0008]一种模糊测试用例生成方法,包括以下步骤:
[0009]根据原始测试用例,得到训练数据集;
[0010]构建差分自编码器的生成对抗网络模型;,
[0011]将所述训练数据集输入所述生成对抗网络模型进行训练,得到训练好的生成对抗网络模型;
[0012] ...
【技术保护点】
【技术特征摘要】
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散度、生成器的重构损失、生成器与分类器均值特...
【专利技术属性】
技术研发人员:汪自翔,刘煦健,王文,秦中元,孙歆,李泽儒,范家荣,韩嘉佳,孙昌华,戴桦,
申请(专利权)人:东南大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。