[发明专利]一种覆盖引导的智能合约测试用例生成方法在审
申请号: | 202111311599.7 | 申请日: | 2021-11-08 |
公开(公告)号: | CN113971135A | 公开(公告)日: | 2022-01-25 |
发明(设计)人: | 孙家泽;张斌;舒新峰;王春梅;余盼盼 | 申请(专利权)人: | 西安邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 710061 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 覆盖 引导 智能 合约 测试 生成 方法 | ||
本发明属于软件测试技术领域,具体涉及智能合约漏洞检测问题,提供了一种覆盖引导的智能合约测试用例生成方法。本方法采用智能合约漏洞静态检测工具对智能合约进行静态分析,并保存漏洞检测信息,利用该检测信息指导测试用例的适应度计算,生成覆盖更多漏洞语句的测试用例,使得测试在具有方向性同时,进一步提高漏洞检测的效率。本发明提供了一种误报率和漏报率低的智能合约漏洞自动化检测方法。
技术领域
本发明属于软件测试技术领域,具体涉及到智能合约的漏洞检测问题,提供了一种覆盖引导的智能合约测试用例生成方法,主要解决现有的智能合约漏洞静态检测方法中的误报率高、测试用例覆盖到的分支数少等问题,实现智能合约漏洞的高效检测。
背景技术
目前,区块链技术已进入了以智能合约为标志的区块链2.0时代,智能合约是执行在区块链上的图灵完备的程序,同时,在数字支付、金融资产处置、云计算、互联网和共享经济等方面有着广阔的应用前景,且其具有确定性、实时性和去中心化等特点。与传统的Java与C程序相同,智能合约中存在漏洞,但与其不同的是,智能合约一旦部署在区块链上,就无法修改,因此智能合约中的漏洞会永远存在,从而更易受到攻击。近年来,针对智能合约的攻击的新闻报道越来越多,2016年6月17日区块链业界最大的众筹项目去中心化的自治组织(The Decentralized Autonomous Organization,The DAO)遭到攻击,The DAO因splitDAO函数漏洞遭到攻击,最终导致300多万以太币资产被分离出The DAO资产池。Parity钱包遭受了两个漏洞,第一个导致了6000万美元的损失,第二个则导致冻结了超过1.5亿美金的以太币。2018年美链百亿美金项目瞬时归零。智能合约的安全问题给区块链社区造成了严重的损失,因此,研究智能合约安全性问题尤为重要。
NCC Group总结的智能合约中常见的10类安全问题分别为:代码重入、未检查函数调用返回值、整数溢出、以太币冻结、短地址攻击、访问控制不当、时间戳依赖、区块变量依赖、交易顺序依赖(Transaction Order Dependency,TOD)、区块gas限制。依靠开发者的技能水平以及基于专家经验的代码审计安全保障,已无法满足智能合约数量及规模不断扩大、漏洞挖掘难度提升等新形势下漏洞分析与发现的需求。因此,大量的智能合约漏洞自动化检测工具不断涌现,利用自动化漏洞检测方法,不仅能够更加高效地挖掘出合约中的安全漏洞,而且能够同时满足漏洞分析与发现的需求。目前,主流的智能合约漏洞自动化检测方法包括静态分析,符号执行,以及模糊测试。
静态分析无需动态执行合约代码,仅通过静态分析合约源码,提取并分析源码中的语义信息,检测合约中的漏洞。Slither是一种智能合约漏洞静态检测工具,其在对合约源代码静态分析的基础上,为用户提供了信息打印和异常探测两大模块用于智能合约的分析,其异常探测可以探测多达四十余种智能合约的异常,但其未能检测出以太币冻结等业务逻辑方面的漏洞,且存在误报现象。
作为一种程序分析技术,符号执行的关键思想是使用符号值代替输入数据,从而将程序的输入转化成符号输入的函数。符号执行经过多年的持续发展,在软件测试、漏洞检测等领域有着非常重要的作用,其同样也被应用在智能合约漏洞检测领域中。Oyente是基于动态符号执行的智能合约漏洞分析工具,可以直接运行在以太坊虚拟机字节码上,Oyente目前支持检测TOD、时间戳依赖、整数溢出和代码重入等漏洞。为了防止路径爆炸,Oyente简化地处理循环,导致部分漏洞漏报。
模糊测试是一种安全性测试的方法,其通过输入一些意外数据运行被测程序,在以太坊虚拟机中监测合约是否会出现异常。ContractFuzzer是第一个基于以太坊平台智能合约漏洞检测的模糊测试工具,该漏洞检测工具首先将智能合约代码编译成字节码指令,静态分析智能合约应用程序二进制接口,生成测试用例。然后通过测试用例动态执行指令代码,检测其是否存在漏洞。该工具目前只能检测7种漏洞,但由于测试用例生成的随机性,无法达到理想的覆盖率,其难以发现所有的潜在的漏洞。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安邮电大学,未经西安邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111311599.7/2.html,转载请声明来源钻瓜专利网。