【技术实现步骤摘要】
一种基于遗传变异的模糊测试用例生成方法及系统
本专利技术涉及计算机领域的漏洞挖掘领域,具体涉及一种基于遗传变异的模糊测试用例生成方法及系统,用于为漏洞挖掘的目标程序提供漏洞挖掘的模糊测试用例。
技术介绍
测试用例的生成方法大致分为两类,基于生成的测试用例生成和基于变异的测试用例生成。现有基于生成的测试用例生成方法是通过人工的编写测试用例生成规则,使得测试用例可以按照目标规则进行生成,保证生成的测试用例可以绕过目标程序的错误检查代码,从而fuzzing(基于缺陷注入的自动软件测试技术)目标程序的核心功能代码;但是,这种测试用例生成方法需要大量的人工干预,导致过高的人工成本,同时,不同的目标程序的规则并不相同,这会导致基于生成的测试用例生成的方法可扩展性较差,不适于对大量不同的目标程序进行fuzzing。现有基于变异的测试用例生成方法,是通过对现存的正常输入进行随机变异的方式产生新的测试用例,这样生成的测试用例可以利用现有的正常输入中的一些信息从而绕过错误检查代码,而且无需人工操作就可以直接运行,针对不同的程序只需更换正常输入即可达到有较高的扩展性的效果;但是,这种测试用例生成方法生成的测试用例,只能fuzzing到正常测试用例可达代码附近的一些代码,相对较远的或进入条件较为苛刻的代码则较难达到,这就导致了所生成的测试用例难以fuzzing目标程序的全部代码。
技术实现思路
本专利技术要解决的技术问题:针对现有技术的上述问题,提供一种基于遗传变异的模糊测试用例生成方法及系统,本专利技术继承了基于生成的测试用例生成方法和基于变异的测试用例生成方法各自的优点,又同时规 ...
【技术保护点】
1.一种基于遗传变异的模糊测试用例生成方法,其特征在于实施步骤包括:1)选择两个种子测试用例;2)针对新测试用例的种子长度,选择一个数据位置作为当前数据位置;3)针对当前数据位置,判断两个种子测试用例的数据是否相同,如果相同则跳转执行步骤4);否则,跳转执行步骤5);4)将种子测试用例当前数据位置的数据遗传到新测试用例的当前数据位置;5)判断两个种子测试用例的当前数据位置的数据中任意一个属于预设的字符串比较集合是否成立,预设的字符串比较集合为针对用于执行测试用例的目标二进制文件进行静态分析提取其中的字符串数据得到,如果成立则将新测试用例的当前数据位置的数据随机突变为预设的字符串比较集合中的数据,跳转执行步骤7);否则,跳转执行步骤6);6)随机选择一方种子测试用例当前数据位置的数据遗传到新测试用例的当前数据位置;7)判断种子长度是否已经遍历完毕,如果尚未遍历完毕,则继续选择下一个数据位置作为当前数据位置,跳转执行步骤3);否则跳转执行下一步;8)按照指定的比例对新测试用例进行随机突变,将完成随机突变后的新测试用例作为最终得到的新测试用例输出。
【技术特征摘要】
1.一种基于遗传变异的模糊测试用例生成方法,其特征在于实施步骤包括:1)选择两个种子测试用例;2)针对新测试用例的种子长度,选择一个数据位置作为当前数据位置;3)针对当前数据位置,判断两个种子测试用例的数据是否相同,如果相同则跳转执行步骤4);否则,跳转执行步骤5);4)将种子测试用例当前数据位置的数据遗传到新测试用例的当前数据位置;5)判断两个种子测试用例的当前数据位置的数据中任意一个属于预设的字符串比较集合是否成立,预设的字符串比较集合为针对用于执行测试用例的目标二进制文件进行静态分析提取其中的字符串数据得到,如果成立则将新测试用例的当前数据位置的数据随机突变为预设的字符串比较集合中的数据,跳转执行步骤7);否则,跳转执行步骤6);6)随机选择一方种子测试用例当前数据位置的数据遗传到新测试用例的当前数据位置;7)判断种子长度是否已经遍历完毕,如果尚未遍历完毕,则继续选择下一个数据位置作为当前数据位置,跳转执行步骤3);否则跳转执行下一步;8)按照指定的比例对新测试用例进行随机突变,将完成随机突变后的新测试用例作为最终得到的新测试用例输出。2.根据权利要求1所述的基于遗传变异的模糊测试用例生成方法,其特征在于,步骤5)中预设的字符串比较集合为针对用于执行测试用例的目标二进制文件进行静态分析提取其中的字符串数据得到。3.根据权利要求1所述的基于遗传变异的模糊测试用例生成方法,其特征在于,所述字符串比较集合为根据用于执行测试用例的目标二进制文件中字符串数据所在位置的密集程度划分得到的第一子集PAC、第二子集PSC、第三子集CSP,第一子集PAC的密集程度比第二子集PSC、第三子集CSP两者的密集程度高,所述第二子集PSC、第三子集CSP两者的密集程度相同。4.根据权利要求3所述的基于遗传变异的模糊测试用例生成方法,其特征在于,步骤5)的详细步骤包括:5.1)判断两个种子测试用例的当前数据位置的数据中任意一个属于字符串比较集合中第一子集PAC是否成立,如果成立则将新测试用例的当前数据位置的数据按照第一概率优先随机突变为预设的字符串比较集合中第一子集PAC的数据、否则随机突变为第二子集PSC或第三子集CSP随机数据,跳转执行步骤7);否则,跳转执行步骤5.2);5.2)判断两个种子测试用例的当前数据位置的数据中任意一个属于字符串比较集合中第二子集PSC是否成立,如果成立则将新测试用例的当前数据位置的数据按照第二概率优先随机突变为预设的字符串比较集合中第二子集PSC的数据、否则随机突变为随机数据,跳转执行步骤7);否则,跳转执行步骤5.3);5.3)判断两个种子测试用例的当前数据位置的数据中任意一个属于字符串比较集合中第三子集CSP是否成立,如果成立则将新测试用例的当前数据位置的数据按照第二概率优先随机突变为预设的字符串比较集合中第三子集CSP的数据、否则随机突变为随机数据,跳转执行步骤7);否则,跳转执行步骤6)。5.根据权利要求4所述的基于遗传变异的模糊测试用例生成方法,其特征在于,所述第一概率...
【专利技术属性】
技术研发人员:卢凯,周旭,何兴陆,张文喆,王睿伯,王鹏飞,
申请(专利权)人:中国人民解放军国防科技大学,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。