[发明专利]基于模拟执行的程序模糊测试方法及装置有效
申请号: | 201910220776.7 | 申请日: | 2019-03-22 |
公开(公告)号: | CN109992507B | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 谢章伟;刘剑;李元;杨睿其;崔展齐 | 申请(专利权)人: | 北京信息科技大学;中国科学院信息工程研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王庆龙;周永君 |
地址: | 100192 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 模拟 执行 程序 模糊 测试 方法 装置 | ||
本发明实施例提供的基于模拟执行的程序模糊测试方法及装置,所述方法包括:获取当前测试用例,利用所述当前测试用例对待测试程序进行模糊测试,获得测试结果,判断所述测试结果是否满足测试结束条件,获得第一判断结果;若所述第一判断结果为否,则对当前测试用例进行测试用例更改操作,获得新测试用例,根据所述新测试用例和预存的约束条件集进行程序模拟,获得模拟结果,判断所述模拟结果是否满足约束条件,获得第二判断结果;若所述第二判断结果为是,则利用所述新测试用例对待测试程序进行模糊测试,获得新测试结果,并在所述新测试结果满足测试结束条件时,输出测试报告。实现减少反复执行程序次数,降低花销提高运行效率的目的。
技术领域
本发明实施例涉及信息处理技术领域,尤其涉及一种基于模拟执行的程序模糊测试方法及装置。
背景技术
传统的黑盒模糊测试并不关注程序内部信息,通过提供随机输入进行漏洞挖掘,这种盲目的生成测试用例的方法使得生成的大部分测试用例都是无效的,尤其是面对现今越来越复杂的代码程序。所以衍生出了一些灰盒模糊测试工具和白盒模糊测试工具,比如灰盒模糊测试器AFL、基于污点分析的灰盒模糊测试器Angora和基于符号执行的白盒模糊测试器Badger,但是都还存在许多的不足。AFL没有利用程序中的数据流从而盲目地改变输入,生成的测试用例很难满足复杂的约束条件(即它们很难覆盖新的路径),效率和覆盖率都很低。Angora则是通过污点分析建立输入变量与约束条件之间的映射关系,模糊器然后只对这些能够影响约束条件的字节进行变异,从而实现快速覆盖新的路径分支。虽然Angora在一定程度上提升了AFL的覆盖效率,但是生成的测试用例很难满足复杂的约束条件,所以还是存在盲目变异的缺点。Badger则是基于符号执行收集约束条件,并利用约束求解器求解指导AFL生成新测试用例,虽然符号执行能够获取全部的程序内部信息,比Angora获取的信息多,但是符号执行存在路径爆炸问题,无法用于测试大规模的程序。程序中的执行路径数量会随着程序中分支语句的数量成指数增长,当程序的规模增长到一定程序时,执行路径的数量会远远超过计算机的处理能力。综上所述,灰盒模糊测试存在没有针对约束条件生成测试用例,所以还存在盲目变异的缺点。而白盒模糊测试需要收集全部的程序信息,虽然这样做能够针对约束条件生成测试用例,但是存在路径爆炸等不足之处。两者最终均体现在运行效率不高。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于模拟执行的程序模糊测试方法及装置。
本发明实施例提供一种基于模拟执行的程序模糊测试方法,包括:
获取当前测试用例,利用所述当前测试用例对待测试程序进行模糊测试,获得测试结果,判断所述测试结果是否满足测试结束条件,获得第一判断结果;
若所述第一判断结果为否,则对当前测试用例进行测试用例更改操作,获得新测试用例,根据所述新测试用例和预存的约束条件集进行程序模拟,获得模拟结果,判断所述模拟结果是否满足约束条件,获得第二判断结果;
若所述第二判断结果为是,则利用所述新测试用例对待测试程序进行模糊测试,获得新测试结果,并在所述新测试结果满足测试结束条件时,输出测试报告。
本发明实施例提供一种基于模拟执行的程序模糊测试装置,包括:
第一判断模块,用于获取当前测试用例,利用所述当前测试用例对待测试程序进行模糊测试,获得测试结果,判断所述测试结果是否满足测试结束条件,获得第一判断结果;
第二判断模块,用于在所述第一判断结果为否,对当前测试用例进行测试用例更改操作,获得新测试用例,根据所述新测试用例和预存的约束条件集进行程序模拟,获得模拟结果,判断所述模拟结果是否满足约束条件,获得第二判断结果;
处理模块,用于在所述第二判断结果为是,利用所述新测试用例对待测试程序进行模糊测试,获得新测试结果,并在所述新测试结果满足测试结束条件时,输出测试报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息科技大学;中国科学院信息工程研究所,未经北京信息科技大学;中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910220776.7/2.html,转载请声明来源钻瓜专利网。