[发明专利]一种用于提升模糊测试的覆盖率的方法和系统有效

专利信息
申请号: 202110000642.1 申请日: 2021-01-04
公开(公告)号: CN112328505B 公开(公告)日: 2021-04-02
发明(设计)人: 于璐;沈毅;陆余良;潘祖烈;杨国正;赵军;赵家振;黄晖 申请(专利权)人: 中国人民解放军国防科技大学
主分类号: G06F11/36 分类号: G06F11/36;G06N3/08
代理公司: 中国和平利用军工技术协会专利中心 11215 代理人: 刘光德
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 用于 提升 模糊 测试 覆盖率 方法 系统
【说明书】:

发明提供一种用于提升模糊测试的覆盖率的方法和系统。其中所述方法包括:步骤S1、对作为测试用例的目标程序进行预处理,以获得所述目标程序中函数的调用图;步骤S2、基于所述调用图确定所述目标程序中用于模糊测试的锚节点,所述锚节点包括基于复杂网络的第一锚节点和基于神经网络的第二锚节点;步骤S3、根据锚节点,利用插桩工具来确定种子节点到所述锚节点的距离;以及步骤S4、基于所述距离来计算所述种子节点的能量,选取所述能量高于阈值的种子节点作为评估变异测试用例的依据。

技术领域

本发明涉及软件测试领域,尤其是涉及一种用于提升模糊测试的覆盖率的方法和系统。

背景技术

Fuzzing测试(模糊测试)是一种软件测试方法,它向程序提供无效的,非预期或者是随机的输入数据,一旦程序出现了比如崩溃或者断言失败的错误,就会发现存在的缺陷。Fuzzing测试不仅适用于有源软件,也适用于二进制软件,应用范围广,它通过大量的测试用例动态执行目标软件,对动态执行过程进行分析,误报率要低于静态分析技术。另外,Fuzzing实现原理简单,没有大量理论推导和公式计算,避免了符号执行过程中的路径爆炸问题,自动化程度高,人工参数的工作量小,被广泛应用于漏洞挖掘领域。

但是Fuzzing测试是半自动化的测试方法,程序是否执行崩溃与输入的测试用例关系很大,常规的基于变异的Fuzzing工具会设置测试用例的变异策略,也就是给定种子文件,对种子文件中的字段进行变异,这种方法虽然自动化程度较高,但是存在覆盖率的问题。这是因为变异策略一般是预先设定,并不会根据程序实际执行过程而进行适应性改变,因此特别是在遇到魔术字符串的判断时,一般的变异策略是无法通过判定,导致程序无法继续执行后续的路径。因此,当前对Fuzzing进行改进的一个重要方面就是如何提高其导向性,尽可能覆盖更多路径,以提高漏洞挖掘的效率和有效性。

目前,最接近的现有技术是AFL,它是一种典型的模糊测试工具。图1为根据本发明比较例的AFL工作流程的示意图。如图1所示,AFL是典型的Fuzzing测试流程首先判断目标,根据软件的特征采用相应的技术;之后识别输入,认为所有的可利用漏洞都是因为应用程序接受了用户的输入并且在处理输入数据时没有清除非法数据或者执行确认过程。任何发往目标应用程序的输入都是可能的Fuzzing测试变量;生成Fuzzing测试用例,根据一定的变异规则对种子文件进行变异生成大量的测试用例;测试用例输入目标程序,观察程序是否出现崩溃,如果出现崩溃,保留崩溃时的执行信息,用于后续调试,如果没有出现崩溃,继续输入其他测试用例直至测试用例集为空。如果测试用例可以使程序覆盖新的路径,则将其放入种子文件中,基于其生成新的测试用例,以提高覆盖率。

AFL虽然记录了测试用例的执行路径,提高覆盖新执行路径的测试用例的生成数量以调高其对代码的覆盖率,这种方法在一定程度上能够提高Fuzzing的效果,但是依然存在一定的盲目性,在种子文件的生成上,对程序的分析粒度依然较粗,针对性较差。对AFL的改进工作也是为了提高模糊测试的代码覆盖率,这些方法主要的改进在于增加从程序入口到当前执行点的正向执行路径覆盖分支以提高覆盖率,这种方法分析粒度细,受程序执行上下文影响大,且由于是从当前执行点开始,对提高覆盖率的贡献有限。而本申请主要是筛选能够提高执行覆盖率的重点函数和可能导致程序崩溃的可疑漏洞函数,提高从程序的当前执行点到重点目标函数的执行的可能性来提高覆盖率,对模糊测试起到导向性的作用。

发明内容

本发明的目的在于提供一种用于提升模糊测试的覆盖率的方案,以解决现有技术中存在的技术问题。

本发明第一方面提供了一种用于提升模糊测试的覆盖率的方法,所述方法包括:步骤S1、对作为测试用例的目标程序进行预处理,以获得所述目标程序中函数的调用图;步骤S2、基于所述调用图确定所述目标程序中用于模糊测试的锚节点,所述锚节点包括基于复杂网络的第一锚节点和基于神经网络的第二锚节点;步骤S3、根据锚节点,利用插桩工具来确定种子节点到所述锚节点的距离;步骤S4、基于所述距离来计算所述种子节点的能量,选取所述能量高于阈值的种子节点作为评估变异测试用例的依据。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110000642.1/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top