【技术实现步骤摘要】
一种分布式并行fuzz方法及系统
本专利技术涉及计算机领域的漏洞挖掘领域,具体涉及一种分布式并行fuzz方法及系统,用于为提高fuzz工具在分布式机器集群中的并行性、提升fuzz效率。
技术介绍
当前的fuzz测试(模糊测试)的主流方法分为:白盒测试、黑盒测试和灰盒测试。白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试,它是指从漏洞挖掘人员的角度看对于程序执行过程、原理全部了解的情况,我们一般是指已知全部程序源代码的情况。黑盒测试也称功能测试,它是指从漏洞挖掘人员的角度看对与程序执行过程、原理全部不了解的情况,我们一般是指源代码未知的情况。灰盒测试是介于白盒测试和黑盒测试之间的一种情况,现行的灰盒测试技术主要是通过插桩手段知道程序执行过程,但是无法知道程序执行原理的情况。白盒测试的漏洞挖掘人员可以获得完全的源代码信息,其对程序的了解程度可以达到和软件设计人员相同的水准;但是,在面对程序代码量过大的情况下,这种对软件的了解程度在进行漏洞挖掘过程中能获得多少收益,是不确定的,另一方面,开源程序只是所有程序中的一部分,还有大量的非开源程序,和以微软、苹果为 ...
【技术保护点】
1.一种分布式并行fuzz方法,其特征在于实施步骤包括:1)接收包含漏洞挖掘目标程序的fuzz任务;2)对fuzz任务进行分析,获取各个fuzzing子系统的负载情况,根据fuzzing子系统的负载情况向指定的fuzzing子系统分配fuzz任务,且等待fuzzing子系统返回的执行结果,收集fuzz子系统返回的执行结果;3)输出执行结果中的潜在漏洞信息。
【技术特征摘要】
1.一种分布式并行fuzz方法,其特征在于实施步骤包括:1)接收包含漏洞挖掘目标程序的fuzz任务;2)对fuzz任务进行分析,获取各个fuzzing子系统的负载情况,根据fuzzing子系统的负载情况向指定的fuzzing子系统分配fuzz任务,且等待fuzzing子系统返回的执行结果,收集fuzz子系统返回的执行结果;3)输出执行结果中的潜在漏洞信息。2.根据权利要求1所述的分布式并行fuzz方法,其特征在于,步骤1)中fuzz任务的信息包括:漏洞挖掘目标程序、初始的种子信息、所有种子的打分、初始化路径覆盖信息、所需fuzzing子系统节点数量以及漏洞挖掘时间,其中所有种子的打分默认打分相同,初始化路径覆盖信息初始为空。3.根据权利要求2所述的分布式并行fuzz方法,其特征在于,步骤1)中fuzz任务的信息还包括漏洞挖掘目标程序源码。4.根据权利要求3所述的分布式并行fuzz方法,其特征在于,步骤2)的详细步骤包括:2.1)根据初始的种子集合、所有种子的评分建立种子数据库,并根据初始的路径覆盖信息生成当前路径覆盖信息;2.2)分析漏洞挖掘任务的目标程序,获取目标程序的类型、大小以及执行环境;2.3)根据目标程序的类型、大小以及执行环境对目标程序进行插桩;2.4)获取各个fuzzing子系统的负载情况,获取当前处于空闲状态的fuzzing子系统数量,如果当前处于空闲状态的fuzzing子系统数量小于漏洞挖掘任务的所需结点数量,则报错并退出;否则,跳转执行步骤2.5);2.5)从种子数据库选择种子并将漏洞挖掘任务分配给处于空闲状态的fuzzing子系统;2.6)接收fuzzing子系统返回的变异种子以及执行插桩后的目标程序得到的路径覆盖信息,将fuzzing子系统返回的的路径覆盖信息和当前路径覆盖信息相与后作为新的当前路径覆盖信息;2.7)判断漏洞挖掘执行时间是否已经超过漏洞挖掘时间,如果尚未超过漏洞挖掘时间,则跳转执行步骤2.5);否则跳转执行步骤3)。5.根据权利要求4所述的分布式并行fuzz方法,其特征在于,步骤2.5)详细步骤包括:2.5.1)根据种子评分高低,从种子数据库中选择一个种子;2.5.2)根据预设的种子突变类型的得分确定各种种子突变类型的权重,所述种子突变类型的得分在初始化种子数据库时完成初始化,且在种子数据库加入新的变异种子后根据变异种子的覆盖路径状况更新对应种子突变类型的得分;2.5.3)将空闲状态的fuzzing子系统的数量根据权重确定分配给各种种子突变类型;如果某一种种子突变类型分配的fuzzing子系统数量为一个,则直接将选择的种子以及该种子突变类型分发给对应的fuzzing子系统;如果某一种种子突变类型分配的fuzzing...
【专利技术属性】
技术研发人员:周旭,何兴陆,卢凯,唐勇,王鹏飞,韩绪,刘陈一帆,刘莹莹,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。