[发明专利]一种结合符号执行提高软件模糊测试效率的方法有效
申请号: | 201810689118.8 | 申请日: | 2018-06-28 |
公开(公告)号: | CN108845944B | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 董威;徐鲁杭;尹良泽;贾维熙;陈振邦;陈立前;王戟 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清;胡君 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结合 符号 执行 提高 软件 模糊 测试 效率 方法 | ||
本发明公开一种结合符号执行提高软件模糊测试效率的方法,步骤包括:S1.对目标程序进行预处理,获取目标程序的信息;S2.向目标程序输入模糊测试器生成测试用例,并检测程序是否发生异常;S3.基于路径覆盖率构建调度参数,计算模糊测试过程中调度参数,判断模糊测试器的状态,如果处于低速状态,转入步骤S4,如果处于高速状态,返回步骤S2,如果处于停滞状态,退出测试;S4.识别模糊测试过程中未遍历的分支,构建未遍历的程序路径,使用符号执行方法生成有效测试用例以激发模糊测试器至高速状态,如果无法生成且为停滞状态,退出测试。本发明具有实现原理简单、漏洞挖掘性能好且效率高、误报率低以及使用灵活、可靠等优点。
技术领域
本发明涉及无源码可执行二进制程序的漏洞挖掘技术领域,尤其涉及一种结合符号执行提高软件模糊测试效率的方法。
背景技术
随着对软件安全问题关注度的不断提升,漏洞挖掘技术也逐渐成为目前重点的研究内容。漏洞挖掘技术是指对未知漏洞的探索,综合应用各种技术和工具,尽可能地找出软件中潜在的漏洞。传统的包括静态分析技术、动态分析技术的漏洞挖掘技术,不仅耗时长、耗力大,且难以对每一个软件进行全方位的漏洞扫描,极易发生漏洞遗漏,因而即使是经过严格测试的软件,在投入运行后通常还是会发现有漏洞存在,亟需提供一种更为有效的漏洞挖掘方法来查找漏洞。
为解决上述问题,一种解决方案即是使用模糊测试(Fuzzing),模糊测试是一种通过向目标系统提供非预期输入并监视异常结果来发现软件漏洞的方法,具有自动化程度高、可用性好、误报率低、易用性高、效率高,且对目标程序源码没有依赖等优点,因而逐步被广泛应用。但是模糊测试仍然存在一定缺陷。
现有技术中基于模糊测试的漏洞挖掘方法主要包括以下三种方式:
1、白盒测试:主要采用源代码审计的方法查找漏洞,因为可以获得待测软件的全部源代码,所以所有可能的代码路径都可以被审核。白盒测试具有覆盖能力强的特点,但该种方法需要大量的人工分析,复杂性很高,当待测软件的源代码有几十万行甚至更多时,可操作性比较差。
2、黑盒测试:是一种不需要知道待测软件内部细节而直接编写测试用例进行测试的方法,操作简单,不需要获得待测软件的源代码,可用性好,但是测试用例多出自测试人员的主观猜想,覆盖能力较差。
3、灰盒测试:是一种介于白盒测试和黑盒测试之间的测试方法,既包括黑盒测试审核,也包括通过逆向分析获取汇编形式的源代码。尽管灰盒测试有很好的可用性,但却存在很大的复杂性,尤其是在二进制审核工作上会花费大量的时间。
以上三种模糊测试均有各自的缺陷,且均无法很好的兼容无源码的二进制程序,生成的测试用例具有盲目性、代码覆盖率低等问题。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现原理简单、漏洞挖掘性能好且效率高、误报率低以及使用灵活、可靠的结合符号执行提高软件模糊测试效率的方法。
为解决上述技术问题,本发明提出的技术方案为:
一种结合符号执行提高软件模糊测试效率的方法,步骤包括:
S1.预处理:对目标程序进行包括反汇编、插桩的预处理,获取目标程序的包括汇编代码、控制流图CFG(Control flow graph)的信息;
S2.模糊测试:向目标程序输入模糊测试器生成测试用例,并检测程序是否发生异常,如果发生程序异常记录对应的测试用例;
S3.基于路径覆盖率的调度:基于模糊测试过程中的路径覆盖率构建用于调度的调度参数,计算所述步骤S2的模糊测试过程中所述调度参数,根据计算得到的所述调度参数判断模糊测试器的状态,如果处于低速状态,转入执行步骤S4,如果处于高速状态,返回执行步骤S2,如果处于停滞状态,判定已遍历目标程序的所有可达路径,退出测试;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810689118.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种判断软件测试阶段性完成的方法及系统
- 下一篇:应用测试优化方法及装置