[发明专利]软件模糊测试方法和装置、电子设备及存储介质有效
申请号: | 202111257121.0 | 申请日: | 2021-10-27 |
公开(公告)号: | CN114328173B | 公开(公告)日: | 2022-08-05 |
发明(设计)人: | 张超;赵博栋 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 蒋娟 |
地址: | 100084 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 模糊 测试 方法 装置 电子设备 存储 介质 | ||
本发明提供一种软件模糊测试方法和装置、电子设备及存储介质,其中所述方法包括:从被测程序源代码中识别出被测程序的状态,被测程序的状态包括状态变量以及状态变量值域范围;基于状态变量,在被测程序源代码被编译时进行代码插桩,得到插桩后的被测程序;基于插桩后的被测程序,获取代码插桩的反馈信息,反馈信息包括代码覆盖信息、状态变量写入信息;基于反馈信息、被测程序的状态,对被测程序源代码进行多维度反馈的模糊测试。本发明在软件模糊测试过程中,跟踪状态变量,通过遗传算法筛选输入测试用例,以期覆盖更多状态变量值域范围,从而尽可能多的遍历被测软件的代码和程序状态,发现更多潜在的安全漏洞,提高漏洞发现的几率。
技术领域
本发明涉及计算机领域,尤其涉及一种软件模糊测试方法和装置、电子设备及存储介质。
背景技术
随着信息化的不断普及,程序软件已经应用到了社会的方方面面,随之而来的是人们对软件安全性提出了更高的要求,一旦软件存在安全漏洞,将造成巨大的经济损失甚至威胁到生命安全。举例来说,如今自动驾驶逐渐投入实际应用,一旦自动驾驶系统存在安全漏洞被黑客利用,造成车辆驾驶异常,在损坏车辆的同时,还有可能造成驾驶员和行人的生命安全。因此,提前发现软件安全漏洞,并即时进行修复,对当今社会有非常重要的意义。
软件模糊测试是挖掘软件中的安全漏洞的最有效的方法之一,被大量软件开发公司和网络安全技术公司所采用。软件模糊测试是一种通过向被测软件发送随机输入(即测试用例),尝试触发软件异常的软件测试技术。最早的模糊测试方案是纯黑盒模糊测试,只能根据被测程序输出结果和是否崩溃判断测试用例是否有效,此类方法对测试用例的质量提出了很高要求,往往需要人工分析被测程序来手动构造高质量的测试用例,耗费大量的人力。随着智能模糊测试工具AFL 的出现,基于遗传算法的灰盒模糊测试方案开始被广泛使用,这类方法通过对被测程序代码进行插桩来监控测试用例触发的相应代码,对触发了新代码的测试用例进行保留和变异,尽可能触发更多被测程序代码,提高发现潜在安全漏洞的概率。与黑盒模糊测试不同,除了观测程序输出结果以及程序是否崩溃,这类灰盒模糊测试方案还可以通过代码插桩获取程序运行过程中的信息,即代码覆盖率。通过对测试用例代码覆盖率的评估,灰盒模糊测试会保留对测试用例的有效变异,自动化的逐步“培育”出有效的测试用例,这类方法不需要人工分析构造精巧的测试用例,大大减少了人力消耗。
然而这类灰盒测试仍然存在局限性,即此类方法获取的程序运行信息局限于代码覆盖率,而无法感知程序运行时的状态。程序的状态通常包括程序运行时内存和寄存器的内容,这些内容无法从代码控制流信息里直接获取,所以代码覆盖率不能对程序状态进行感知。另一方面,漏洞的触发需要在执行有漏洞代码的同时进入特殊的程序状态。状态不敏感的模糊测试无法有效发现和状态相关的安全漏洞,要么因为程序状态无法被满足而无法执行相应的代码,从而无法触发安全漏洞;要么即使执行了相应的代码,因为程序状态不满足而无法触发安全漏洞。因此,很多很难有效发现和状态相关的安全漏洞。
发明内容
本发明提供一种软件模糊测试方法和装置、电子设备及存储介质,用以解决现有技术中存在的技术缺陷。
本发明提供一种软件模糊测试方法,包括:
从被测程序源代码中识别出被测程序的状态,所述被测程序的状态包括状态变量以及状态变量值域范围;
基于所述状态变量,在所述被测程序源代码被编译时进行代码插桩,得到插桩后的被测程序;
基于所述插桩后的被测程序,获取代码插桩的反馈信息,所述反馈信息包括代码覆盖信息、状态变量写入信息;
基于所述反馈信息、被测程序的状态,对所述被测程序源代码进行多维度反馈的模糊测试。
根据本发明所述的软件模糊测试方法,其中,所述从被测程序源代码中识别出被测程序的状态,包括:
对所述被测程序源代码进行静态分析,识别出所述被测程序源代码中用于表示程序状态的状态变量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111257121.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于配子的恒温器
- 下一篇:一种基于文本聚类的社区居民事件识别方法及装置