一种基于动态自适应策略的模糊测试优化方法与流程

文档序号:36828372发布日期:2024-01-26 16:41阅读:17来源:国知局
一种基于动态自适应策略的模糊测试优化方法与流程

本发明属于网络安全漏洞挖掘,具体涉及一种基于动态自适应策略的模糊测试优化方法。


背景技术:

1、模糊测试技术广泛应用于漏洞挖掘领域,具有自动化、高效率和可扩展性等优势,结合启发式算法的模糊测试工具afl因为其智能、高效等特点,成为工业化并行漏洞挖掘的标志性产品。用户针对待测程序提供初始测试集,afl采用遗传算法对测试用例进行变异,将能发现新执行路径的测试用例标记为种子,通过不断覆盖执行路径形成种子集,种子集在模糊测试周期中不断迭代,此过程中可触发crash发现程序bug。afl针对种子的选择和变异设定了favorite策略,该策略类似模拟退火的思想,在单条路径中,找出到达目标区域速度最快、形态最小的种子并标记为favorite,在种子选择时被标记为favorite的种子具有更高的优先级。

2、fuzz循环开始前,afl选择种子开始进行变异,将变异的测试用例数量定义为种子能量,能量计算包含种子路径代码片段覆盖率,执行时间和产生新测试用例的周期三个元素决定。在一轮完整的fuzz周期中,被标记为favorite的种子比未被标记的种子多出近百倍的变异测试用例,实际运行发现,afl绝大部分周期都在执行favorite种子,由于判定favorite种子的方法由种子形态和执行速度有关,与是否产生新执行路径并无关联,导致在模糊测过程中种子集中未被标记为favorite种子过早丢弃,不能充分触发新路径,存在种子集过早收敛问题,导致路径覆盖率不足。目前业界有利用模拟退火算法优化种子集选择的方法来扩大favorite种子标记数量、利用梯度下降法来缓解局部最优、利用贪婪算法来提高路径遍历等方法,但在防止种子集过早收敛、提高漏洞挖掘效率方面仍存在较大提升空间。


技术实现思路

1、(一)要解决的技术问题

2、本发明要解决的技术问题是:如何设计一种提高模糊测试路径覆盖率的方法。

3、(二)技术方案

4、为了解决上述技术问题,本发明提供了一种基于动态自适应策略的模糊测试优化方法,包括以下步骤:

5、步骤1.在初始化阶段,将能发现新执行路径的测试用例标记为种子,并完成种子的广度索引;

6、步骤2.将程序控制流映射到马尔科夫链;

7、步骤3.基于步骤2进行路径权重、种子的深度索引值计算;

8、步骤4.基于步骤1、3进行动态自适应函数优化,实现种子集收敛。

9、优选地,步骤1中,设定两种种子广度索引启发式规则:1.单个种子发现新路径片段越多,种子后代变异发现新路径的概率越大;2.单个种子发现执行流跨越的代码块越多,控制流执行越复杂,离程序异常越近;基于以上两个种子广度索引启发式规则,设定种子的广度索引函数如下:

10、

11、其中,i是种子在当前基本块可选执行路径片段的序号,2cycle(i)/2表示种子在第一次路径遍历时可选新路径数量,通过该广度索引函数可获取不同阶段的广度索引值。

12、优选地,程序包含多个基本块,每个基本块代表程序特定执行状态,相邻基本块之间有直接影响关系,即:过去状态不影响将来状态的预测,将来状态的发生只于现在有关,满足马尔科夫性质,步骤2中,将程序控制流抽象成为马尔科夫链,路径是状态转移过程,afl在程序分支节点进行动态插桩获取执行路径信息,形成完整的程序控制流图;定义路径分支概率计算方法:

13、

14、x表示有x个测试用例经过基本块a到基本块b的路径分支ab,y表示有y个测试用例不经过从到b的路径分支ab,在一次模糊测试循环后,m个测试用例经过基本块a往下运行,经过路径分支ad的测试用例有n个,则

15、优选地,单个种子在每条路径上的权重值即代表种子的深度索引值,根据路径分支概率的计算基本块的概率的计算公式如下:

16、

17、b为基本块,jb是基本块j到b的路径片段,j(b)是与给定基本块s直接相连的基本块集合,j(b)中的基本块通过一次状态装换可以直接到达基本块s,p(r)表示选择基本块r的概率,p(b)为一次模糊测试循环后,经过基本块b的种子占比,p(jb)表示经过j到b的路径的概率,采用步骤2中的计算方法计算得到;步骤3中,根据所述计算公式计算每个基本块的权重值£b,从而得到路径的权重值,设单个种子执行路径经过的基本块总数为blk(s),计算单个种子的深度索引值:

18、index_value_deep=∑b∈blk(s)£b。

19、优选地,步骤4中,针对单个种子,需要找出该种子的深度索引和广度索引的阈值,在不同的阈值区间,分别执行索引值计算,依据深度索引值计算方法,最终计算得到种子的适应度。

20、优选地,所述种子的适应度的计算方法是在afl本身的遗传算法基础上进行改进实现的。

21、优选地,所述种子的适应度的计算公式为:

22、

23、其中,τ是设定的适应度阈值,根据程序控制流图规模,μ表示种子可选的路径片段数量,在动态模糊测试过程中,种子不断变异产生新的测试用例,形成新的种子集,依据种子的适应度计算方法,不断从种子集中剔除不符合要求的种子,实现模糊测试优化。

24、优选地,τ根据程序控制流图的规模而定,程序控制流图中种子集最大执行路径层级最大,τ值最大,一轮模糊测试过后,种子集更新,适应度高于预设阈值的种子保留,继续进行变异,剔除剩下的种子,整个模糊测试周期中,种子集不断更新优化,确保能够到达更多的路径分支。

25、优选地,在种子集不断更新优化的过程中,采用萤火虫算法继续优化种子集,缓解路径爆炸问题。

26、优选地,种子集在优化过程中,与适应度函数契合度越好,标记为萤火虫亮度越高,在种子决策范围内种子集逐渐收缩,契合度偏离超过预设指标的种子丢弃,从整体上逐步实现全局最优,达到更高的路径覆盖率。

27、(三)有益效果

28、本发明提供了一种基于动态自适应策略的模糊测试优化方法,该方法基于动态自适应策略提高了模糊测试路径覆盖率。该方法包括在初始化阶段,完成种子的广度索引,设定两种种子广度索引启发式规则,设计种子的广度索引函数;将控制流映射到马尔科夫链,依据路径状态转移过程分别设计路径分支概率计算公式、基本块概率计算公式、种子深度索引值计算公式,获取种子的深度索引值;设计动态自适应函数优化种子集收敛过程,依据程序规模设定适应度阈值和种子的广度索引、深度索引值,获取种子变异执行过程中的适应度,根据适应度的值判断种子的契合程度,将契合度高的种子保留继续变异,其余的剔除;进一步,采用萤火虫算法防止路径爆炸问题优化种子集收敛过程,不断进行循环迭代,扩大对目标程序的路径覆盖,提高漏洞挖掘的crash产出。



技术特征:

1.一种基于动态自适应策略的模糊测试优化方法,其特征在于,包括以下步骤:

2.如权利要求1所述的方法,其特征在于,步骤1中,设定两种种子广度索引启发式规则:1.单个种子发现新路径片段越多,种子后代变异发现新路径的概率越大;2.单个种子发现执行流跨越的代码块越多,控制流执行越复杂,离程序异常越近;基于以上两个种子广度索引启发式规则,设定种子的广度索引函数如下:

3.如权利要求2所述的方法,其特征在于,程序包含多个基本块,每个基本块代表程序特定执行状态,相邻基本块之间有直接影响关系,即:过去状态不影响将来状态的预测,将来状态的发生只于现在有关,满足马尔科夫性质,步骤2中,将程序控制流抽象成为马尔科夫链,路径是状态转移过程,afl在程序分支节点进行动态插桩获取执行路径信息,形成完整的程序控制流图;定义路径分支概率计算方法:

4.如权利要求3所述的方法,其特征在于,单个种子在每条路径上的权重值即代表种子的深度索引值,根据路径分支概率的计算基本块的概率的计算公式如下:

5.如权利要求4所述的方法,其特征在于,步骤4中,针对单个种子,需要找出该种子的深度索引和广度索引的阈值,在不同的阈值区间,分别执行索引值计算,依据深度索引值计算方法,最终计算得到种子的适应度。

6.如权利要求5所述的方法,其特征在于,所述种子的适应度的计算方法是在afl本身的遗传算法基础上进行改进实现的。

7.如权利要求6所述的方法,其特征在于,所述种子的适应度的计算公式为:

8.如权利要求7所述的方法,其特征在于,τ根据程序控制流图的规模而定,程序控制流图中种子集最大执行路径层级最大,τ值最大,一轮模糊测试过后,种子集更新,适应度高于预设阈值的种子保留,继续进行变异,剔除剩下的种子,整个模糊测试周期中,种子集不断更新优化,确保能够到达更多的路径分支。

9.如权利要求8所述的方法,其特征在于,在种子集不断更新优化的过程中,采用萤火虫算法继续优化种子集,缓解路径爆炸问题。

10.如权利要求9所述的方法,其特征在于,种子集在优化过程中,与适应度函数契合度越好,标记为萤火虫亮度越高,在种子决策范围内种子集逐渐收缩,契合度偏离超过预设指标的种子丢弃,从整体上逐步实现全局最优,达到更高的路径覆盖率。


技术总结
本发明涉及一种基于动态自适应策略的模糊测试优化方法,属于网络安全漏洞挖掘技术领域。该方法包括在初始化阶段,完成种子的广度索引,设定两种种子广度索引启发式规则,设计种子的广度索引函数;将控制流映射到马尔科夫链,依据路径状态转移过程分别设计路径分支概率计算公式、基本块概率计算公式、种子深度索引值计算公式,获取种子的深度索引值;设计动态自适应函数优化种子集收敛过程,依据程序规模设定适应度阈值和种子的广度索引、深度索引值,获取种子变异执行过程中的适应度,根据适应度的值判断种子的契合程度,将契合度高的种子保留继续变异,其余的剔除。

技术研发人员:代培武,吴志勇,吴庆,李艳斌,江玉朝,刘磊,张俊,王菁
受保护的技术使用者:中国人民解放军61660部队
技术研发日:
技术公布日:2024/1/25
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1