[发明专利]一种基于最小集合覆盖的模糊测试方法和装置有效
申请号: | 202010790762.1 | 申请日: | 2020-08-07 |
公开(公告)号: | CN111897733B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 胡昌振;马锐;王夏菁;王雪霏;李斌斌 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57;G06N3/006;G06N3/043;G06N3/0442;G06N3/126 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 温子云 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 最小 集合 覆盖 模糊 测试 方法 装置 | ||
本发明公开了一种基于最小集合覆盖的模糊测试方法和装置,该方法利用深度神经网络为目标二进制程序产生测试用例集,并加入测试用例队列;利用最小集合覆盖理论,从所述测试用例队列中筛选出具有最大化路径覆盖率且测试用例数量最少的最小用例集合,以减少执行效果相同的重复测试用例的数量;以设定的一个或一个以上的测试用例选择标准,对所述最小用例集合中的测试用例进行排序,选择最优测试用例进行后续变异,继而实现模糊测试;将模糊测试过程中产生的有效测试用例加入深度神经网络测试用例训练集,离线地指导深度神经网络进行优化训练。使用本发明能够获得更小测试用例集以及更有效的测试用例,可以针对目标二进制程序进行有效地漏洞检测。
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于最小集合覆盖的模糊测试方法和装置。
背景技术
模糊测试是漏洞挖掘领域的有效方法之一,其通过向目标系统或软件提供非预期的输入并监视异常结果来发现软件漏洞。由于模糊测试技术可以将大量的手工测试转换为高度的自动化测试,介于黑盒测试和白盒测试之间,因此在国内外漏洞挖掘领域被广泛使用。其中,生成并优先选取高质量的测试用例进行变异对于提高模糊测试的效率至关重要。
目前,有众多研究人员对模糊器中的测试用例生成过程进行了研究和改进,例如,Skyfire、LearnFuzz、SmartSeed、IFuzzer、NAUTILUS、Grimoire;此外,也有较多研究工作致力于测试用例选择过程的研究,例如,AFLFast、AFLGo、 QTEP、FairFuzz、COVERSET、Retecs、V-Fuzz、FuzzGuard、SAVIOR。上述工具虽然在很多场景下可以有效地生成和选择测试用例,但其仍存在以下两方面局限性:
(1)基于变异的模糊器诸如AFL通常无法有效测试需要处理结构化输入的目标程序,现有的改进工作主要从两方面进行,即,使用基于语法的分析辅助生成测试用例以及借助机器学习技术自动化生成测试用例。尽管基于语法的生成工作(例如,IFuzzer、NAUTILUS)能够生成通过语法检查的测试用例,但是上述工作通常需要对程序源代码进行语法分析,从而无法有效针对二进制程序进行测试;而基于机器学习的生成工作(例如,Skyfire、LearnFuzz)虽然可以自动生成有效的测试用例,但也大多并未考虑生成模型和模糊测试反馈的交互,而两者的交互能够有效提高模型生成测试用例的有效性。
(2)现有的针对测试用例选择的研究工作并未考虑每个测试用例的执行效果是否相同,例如,并未考虑测试用例所覆盖的路径是否相同,而重复选择路径覆盖相同的测试用例进行测试会造成资源浪费,尤其是对于使用机器学习等技术自动化生成测试用例的工作而言,机器学习模型能够以较低的代价自动生成数以千计的测试用例,但对这些测试用例一一进行测试却需要花费较长时间,并且可能会影响模糊测试的测试效率,因此,需要进一步研究如何有效预筛选大量测试用例,以减少重复测试用例的数量。
发明内容
有鉴于此,本发明提供了一种基于最小集合覆盖的模糊测试方法和装置,基于最小集合覆盖理论,获得更小用例集以及更有效的测试用例,可以针对目标二进制程序进行有效地漏洞检测。
为了解决上述技术问题,本发明是这样实现的:
一种基于最小集合覆盖的模糊测试方法,包括:
利用深度神经网络为处理结构化或非结构化输入的目标二进制程序产生测试用例集,并加入测试用例队列;
利用最小集合覆盖理论,从所述测试用例队列中筛选出具有最大化路径覆盖率且测试用例数量最少的最小用例集合,以减少执行效果相同的重复测试用例的数量;
以设定的一个或一个以上的测试用例选择标准,对所述最小用例集合中的测试用例进行排序,选择最优测试用例进行后续变异,继而实现模糊测试;
将模糊测试过程中产生的覆盖新路径的有效测试用例加入深度神经网络测试用例训练集,离线地指导深度神经网络进行优化训练。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010790762.1/2.html,转载请声明来源钻瓜专利网。