System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于安全测试,具体涉及一种基于gan的模糊测试数据生成方法。
技术介绍
1、随着信息技术的不断发展,网络攻击和数据泄露的风险也日益增加,我们日常使用的软件系统和服务包括大量的算法和数据结构,因此对这些算法和数据结构进行全面的安全测试至关重要。模糊测试作为安全测试的重要组成部分,通过模拟输入不确定性的数据,以探测程序中可能存在的漏洞和安全隐患,可以帮助发现潜在的安全问题,提高软件的抗攻击能力,有助于保障用户数据和信息的安全。
技术实现思路
1、(一)要解决的技术问题
2、本专利技术要解决的技术问题是:针对算法模糊测试场景提出一种基于gan的模糊测试数据生成方法。
3、(二)技术方案
4、为了解决上述技术问题,本专利技术提供了一种基于gan的模糊测试数据生成方法,包括以下步骤:
5、步骤一、数据预处理:根据场景需要对原始数据集进行一些预处理操作;所述原始数据集为待测试算法的输入数据集;
6、步骤二、定义损失函数,损失函数用于衡量预测值和真实值之间的差异,并根据差异指导gan模型参数的更新,其中,在损失函数中加入生成样本的方差项,使生成样本的分布更加广泛,并通过控制方差项的权重,平衡生成样本的多样性和真实样本分布的拟合程度;
7、步骤三、建立生成器,用于在训练中将根据某一分布生成的随机噪声输入生成器,得到生成样本;
8、步骤四、建立判别器,用于在训练中分别输入真实样本和生成样本,通过判别器判断样
9、步骤五、迭代交替训练,生成器和判别器相互迭代交替训练,通过大量样本数据训练使得生成器的生成能力和判别器的判别能力在对抗中逐步提高,最终使生成器生成的样本通过判别器无法判断其真实性;
10、其中,首先固定生成器训练判别器,判别器的损失函数是真实样本的损失与生成样本的损失之和,计算得到的损失函数通过backward函数进行反向传播,并根据梯度更新判别器的参数;然后固定判别器训练生成器,其中,生成器的损失函数为生成样本的损失和生成样本的方差之和,同样计算得到的损失函数通过backward函数进行反向传播,并根据梯度更新生成器的参数。
11、步骤六、生成新的变异数据集:当判别器无法判别生成器的生成样本是否真实后,即训练完成,将生成具有变异数据的数据集作为待测试算法的模糊测试数据,验证算法的鲁棒性和安全性。
12、优选地,步骤一中,预处理操作包括缺省值处理、格式转换,归一化操作。
13、优选地,步骤一中将原始数据转换为张量格式,采用pytorch框架实现。
14、优选地,gan模型原始的损失函数表示为:
15、
16、g表示生成器,d表示判别器,x表示真实样本,z表示服从某一分布的噪声样本,g(z)表示生成器生成的假样本;
17、在损失函数中加入生成样本的方差项后,新的损失函数表示为:
18、
19、其中,λ表示方差项的权重,var[g(z)]表示生成样本的方差。
20、优选地,生成器由两个全连接层进行维度转换得到,两个全连接层之间使用relu激活函数进行非线性变换,通过第二个全连接层将中间表示转换为最终的输出向量,并使用tanh激活函数将输出归一化到[-1,1]之间,训练中将根据某一分布生成的随机噪声输入生成器,得到[-1,1]之间的生成样本。
21、优选地,判别器同样由两个全连接层进行维度转换得到,两个全连接层之间使用leakyrelu激活函数进行非线性变换,使用sigmoid激活函数将最终的输出限制在0到1之间,表示输入数据为真实样本的概率。
22、优选地,步骤五中,判别器的损失函数表示为:
23、ld=ex[logd(x)]+ez[log(1-d(g(z)))]
24、在损失函数中增加生成样本方差项,生成器的损失函数表示为:
25、lg=ez[log(1-d(g(z)))]+λvar[g(z)]。
26、优选地,步骤五的迭代交替训练过程中,判别器尽可能最大化ld,将真实样本判为真,生成样本判为假。
27、优选地,步骤五中,生成器在最小化lg前提下最大化生成样本方差项,使生成的样本更接近真实样本,且生成样本更具多样性。
28、本专利技术还提供了一种用于实现所述方法的系统。
29、(三)有益效果
30、与现有技术相比,本专利技术方法具有以下优势:(1)本专利技术采用gan对原始数据集做数据生成,创新性地将产生的具有“变异”数据的新数据集作为算法的模糊测试数据,验证算法鲁棒性和安全性。(2)为了获得更全面的模糊测试数据,本专利技术在gan算法的原有的损失函数计算中添加生成样本的方差项,通过最大化生成样本方差的方法提高生成样本的多样性。
本文档来自技高网...【技术保护点】
1.一种基于GAN的模糊测试数据生成方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,步骤一中,预处理操作包括缺省值处理、格式转换,归一化操作。
3.如权利要求1所述的方法,其特征在于,步骤一中将原始数据转换为张量格式,采用PyTorch框架实现。
4.如权利要求1所述的方法,其特征在于,GAN模型原始的损失函数表示为:
5.如权利要求4所述的方法,其特征在于,生成器由两个全连接层进行维度转换得到,两个全连接层之间使用ReLU激活函数进行非线性变换,通过第二个全连接层将中间表示转换为最终的输出向量,并使用Tanh激活函数将输出归一化到[-1,1]之间,训练中将根据某一分布生成的随机噪声输入生成器,得到[-1,1]之间的生成样本。
6.如权利要求4所述的方法,其特征在于,判别器同样由两个全连接层进行维度转换得到,两个全连接层之间使用LeakyReLU激活函数进行非线性变换,使用Sigmoid激活函数将最终的输出限制在0到1之间,表示输入数据为真实样本的概率。
7.如权利要求4所述的方法,
8.如权利要求7所述的方法,其特征在于,步骤五的迭代交替训练过程中,判别器尽可能最大化LD,将真实样本判为真,生成样本判为假。
9.如权利要求7所述的方法,其特征在于,步骤五中,生成器在最小化LG前提下最大化生成样本方差项,使生成的样本更接近真实样本,且生成样本更具多样性。
10.一种用于实现如权利要求1至9中任一项所述方法的系统。
...【技术特征摘要】
1.一种基于gan的模糊测试数据生成方法,其特征在于,包括以下步骤:
2.如权利要求1所述的方法,其特征在于,步骤一中,预处理操作包括缺省值处理、格式转换,归一化操作。
3.如权利要求1所述的方法,其特征在于,步骤一中将原始数据转换为张量格式,采用pytorch框架实现。
4.如权利要求1所述的方法,其特征在于,gan模型原始的损失函数表示为:
5.如权利要求4所述的方法,其特征在于,生成器由两个全连接层进行维度转换得到,两个全连接层之间使用relu激活函数进行非线性变换,通过第二个全连接层将中间表示转换为最终的输出向量,并使用tanh激活函数将输出归一化到[-1,1]之间,训练中将根据某一分布生成的随机噪声输入生成器,得到[-1,1]之间的生成样本...
【专利技术属性】
技术研发人员:杨佳颖,王斌,曾颖明,陈志浩,胡佳,孔凯薇,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。