【技术实现步骤摘要】
基于粒子群和多标准的模糊测试用例选择方法和装置
本专利技术涉及属于信息安全领域,尤其涉及一种基于粒子群和多标准的模糊测试用例选择方法和装置。
技术介绍
模糊测试是漏洞挖掘领域的重要方法,其是一种通过向目标系统或软件提供非预期的输入并监视异常结果来发现软件漏洞的方法,由于模糊测试技术可以将大量的手工测试转换为高度的自动化测试,介于黑盒测试和白盒测试之间,因此在国内外漏洞挖掘领域被广泛使用。而测试用例选择是模糊测试中的关键技术点之一。测试用例的选择策略决定了模糊测试的测试效率,高质量的测试用例可以覆盖待测目标程序的更多路径,从而检测出更多的程序漏洞。模糊测试通常维护一个测试用例队列,该队列中包含所有用户提供的初始测试用例和变异后的新测试用例。在循环过程中,模糊测试会按照既定的选择策略从测试用例队列中选取下一个待变异的测试用例,因此选取高质量的测试用例对于提高模糊测试的效率至关重要。目前,有众多研究人员对该过程进行了研究和改进,例如,AFLFast、AFLGo、QTEP、FairFuzz、Retecs、V-Fuzz、Fuz ...
【技术保护点】
1.一种基于粒子群和多标准的模糊测试用例选择方法,其特征在于,包括:/n以测试用例作为粒子,采用粒子群优化算法选择综合最优的测试用例作为下一轮待变异的测试用例;在粒子群优化过程中,利用选取的多个测试用例选择标准确定每个测试用例i的综合潜质eff(i),将粒子测试用例i在所有迭代中综合潜质eff(i)的最大值作为个体最优解,将目前已执行的所有迭代中所有测试用例中综合潜质eff(i)的最大值作为群体最优解,根据个体最优解和群体最优解进行粒子群优化,获得最优粒子作为待变异测试用例;并且利用测试用例的潜在价值和预期覆盖率动态地为所述待变异测试用例确定变异能量。/n
【技术特征摘要】
1.一种基于粒子群和多标准的模糊测试用例选择方法,其特征在于,包括:
以测试用例作为粒子,采用粒子群优化算法选择综合最优的测试用例作为下一轮待变异的测试用例;在粒子群优化过程中,利用选取的多个测试用例选择标准确定每个测试用例i的综合潜质eff(i),将粒子测试用例i在所有迭代中综合潜质eff(i)的最大值作为个体最优解,将目前已执行的所有迭代中所有测试用例中综合潜质eff(i)的最大值作为群体最优解,根据个体最优解和群体最优解进行粒子群优化,获得最优粒子作为待变异测试用例;并且利用测试用例的潜在价值和预期覆盖率动态地为所述待变异测试用例确定变异能量。
2.如权利要求1所述的方法,其特征在于,所述综合潜质eff(i)的计算方式为:
其中,Wj为第j种测试用例选择标准对应的权值,Cj为测试用例i对应的测试用例选择标准j的取值,Sj为模糊测试的测试用例队列中所有测试用例对于测试用例选择标准j的取值总和,n为测试用例选择标准的总数。
3.如权利要求1或2所述的方法,其特征在于,所述多个测试用例选择标准包括:文件大小、执行时间、路径覆盖率、是否触发新路径、是否触发新基本块、崩溃数量、路径深度以及是否变异过。
4.如权利要求3所述的方法,其特征在于,在计算综合潜质eff(i)时,需要对各测试用例选择标准的取值进行处理后再用于计算综合潜质eff(i);所述处理为:文件大小和执行时间两个选择标准的值取反,路径覆盖率、触发新路径、触发新基本块、崩溃数量以及路径深度五个选择标准的值保持不变;针对是否变异过这一选择标准,若变异过则设置为-1,若没有变异则设置为1。
5.如权利要求2所述的方法,其特征在于,测试用例选择标准对应的权值采用AHP法、专家评分法、熵权法或CRITIC赋权法确定。
6.如权利要求1所述的方法,其特征在于,所述利用测试用例的潜在价值和预期覆盖率动态地确定待变异测试用例的变异能量为:
计算所述测试用例的潜在价值P(i)为:计算测试用例i及其变异产生的测试用例中发现崩溃的数量占模糊测试中已发现崩溃总数量的比值P1(i),计算测试用例i及其变异产生的测试用例中发现新路径的数量占模糊测试中已发现新路径总数的比值P2(i),将P1(i)与P2(i)之和或加权和作为潜在价值P(i);
计算预期覆盖率G(i)为:测试用例i的代码覆盖增长率和时间比值的乘积,或者为测试用例i的代码覆盖增长率、时间比值和利用覆盖增长率的能力常量的乘积;所述时间比值为测试用例i的执行时间与测试用例队列中所有测试用例的执行时间总和之比;
基于潜在价值P(i)和预期覆盖率G(i),计算获得测试用例i的变异能量值energy(i):
energy(i)=σ·(P(i)+G(i))·dep(i)
其中,σ为常量,表示初始分配能量,dep(i)为测试用例i的路径深度。
7.一种基于...
【专利技术属性】
技术研发人员:胡昌振,王夏菁,马锐,蒋瑾蔓,王雪霏,
申请(专利权)人:北京理工大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。