[发明专利]一种面向Move语言虚拟机的模糊测试方法有效
申请号: | 202110891571.9 | 申请日: | 2021-08-04 |
公开(公告)号: | CN113626324B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 姜博;隋睿;孙海龙;殷永峰 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 易卜 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 move 语言 虚拟机 模糊 测试 方法 | ||
本发明公开了一种面向Move语言虚拟机的模糊测试方法,属于软件测试技术领域:首先,针对Move语言虚拟机,通过调用接口函数确定目标测试接口;并根据给定的语法规则,手动构建初始测试样例;分别构建目标测试接口需要的两类非字节码参数;然后,将目标测试接口分别与AFL进行对接,对Move语言虚拟机进行模糊测试,收集能够触发目标测试程序出现崩溃和超时的测试样例作为训练数据集;生成对抗网络使用Wasserstein距离作为优化目标,综合考虑WGAN和DCGAN提出的约束条件,得到种子生成模型;使用训练数据集进行训练,得到新的初始测试样例;AFL随机变异产生新的输入测试样例,继续收集崩溃和超时的输入样例优化种子生成模型;本发明提高了模糊测试工具的性能。
技术领域
本发明属于软件测试领域,具体是一种面向Move语言虚拟机的模糊测试方法。
背景技术
在2020年12月1日,Libra正式更名为Diem。Diem是Facebook推出的区块链,其旨在实现一个简单的全球结算系统,并且能够作为金融基础设施而使用,满足数十亿人的日常的金融需求。为了实现这一目标,Diem提出了一种新型的沙盒化编程语言Move,并且初步将该语言应用于Diem区块链。Diem VM是Diem区块链的运行平台,能够提供智能合约定义的代码的运行环境,而Move VM是Diem VM中的语言组件,其主要功能是完成对Move字节码的验证和执行。
模糊测试技术自诞生以来一直是发现软件漏洞的克星,被广泛应用于测试软件、操作系统、文件格式或者基于网络的应用中,能够自动化地发现目标测试接口或者程序中存在的错误或漏洞,是一种简单并且高效的测试技术。模糊测试工具AFL(American fuzzylop)是目前使用最广泛的模糊测试技术,和已经实现并投入使用的其他模糊测试工具相比,AFL在设计上具有更好的实用性,它采用了一系列简单且高效的模糊测试技巧,以及一些可以使模糊测试工具的工作量达到最小化的技巧。AFL具有配置简单、系统消耗小、测试效率高、自动化程度高和误报率低等优点,这些特性使其成为了很多模糊测试相关应用的参照基准。
大量研究表明初始种子的优劣会在很大程度上影响模糊测试工具的性能和效率,高质量的初始种子输入样例可以帮助模糊测试工具更快更好地发现目标测试程序的代码执行路径,进而更有效地发现程序中的错误和漏洞。而种子生成策略普遍存在一个现象:为了发现有效的种子而更多关注于发现目标测试程序对输入的语法和语义的限制,因此这些方法产生的输入样例具有很高的冗余性。会导致输入样例在目标测试程序中触发很多相同的执行路径,这就在很大程度上浪费了模糊测试的资源。
发明内容
针对上述问题,本发明提出了一种面向Move语言虚拟机的模糊测试方法,基于生成对抗网络进行输入种子优化,减少了输入样例在测试中执行路径的冗余性,实现了对Move语言虚拟机自动化、高效的测试。
具体步骤如下:
步骤一、针对Diem区块链的语言组件Move语言虚拟机,通过调用脚本执行和模块发布两个接口函数,确定目标测试接口;
被调用的两个接口函数为execute_script()和module_publish(),这两个接口为目标测试接口;
步骤二、根据Move语言给定的语法规则,手动构建初始测试样例,使其满足将语法规则全部覆盖;
首先,根据源代码的语法规则编写程序,并编译为二进制字节码的形式作为初始测试样例;编写程序需覆盖的功能有:(1)对模块的引用,包括简单引用和创建别名,同时包括对已发布和未发布的模块的引用;(2)对模块中结构类型和函数的引用,即引用其他模块中定义的结构类型或者调用其他模块中定义的函数;(3)定义不同类型的函数;(4)对于模块类型的程序,编写定义不同数量函数的程序,编写各种语法规则出现不同顺序的程序,编写给出模块发布者合法地址和非法地址的程序。
步骤三、在本地以目录的形式模拟Diem区块链的全局存储,构建目标测试接口需要的实现存储功能的第一类非字节码参数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110891571.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种原位微区方解石U-Pb定年方法
- 下一篇:一种远红外线杀菌仪