[发明专利]一种针对智能合约跨合约漏洞的模糊测试方法在审

专利信息
申请号: 202110370702.9 申请日: 2021-04-07
公开(公告)号: CN112860588A 公开(公告)日: 2021-05-28
发明(设计)人: 薛吟兴;叶家鸣;张威 申请(专利权)人: 中国科学技术大学
主分类号: G06F11/36 分类号: G06F11/36;G06F21/57
代理公司: 北京凯特来知识产权代理有限公司 11260 代理人: 郑立明;韩珂
地址: 230026 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 针对 智能 合约 漏洞 模糊 测试 方法
【说明书】:

本发明公开了一种针对智能合约跨合约漏洞的模糊测试方法,使用导向型模糊测试的方法完成智能合约跨合约安全漏洞的检测,在更大程度上保证智能合约的安全。在具体实现上,生成包含函数选择器,函数参数,合约成员变量,合约余额等数据的测试用例;选择测试用例的距离度量值作为反馈指标,用以挑选优异的测试用例;结合CG(Call Graph,调用图)和CFG(Control Flow Graph,控制流程图)引导模糊测试的演进方向,对合约间的调用行为进行了重点测试。采用本发明的技术方法,在对7838个智能合约进行检测中,发现了27个跨合约重入漏洞,证明了本发明在检测跨合约漏洞方面的有效性和实用性,该方法保证了智能合约相互调用期间的安全性,并提升了测试效率。

技术领域

本发明涉及区块链技术领域,尤其涉及一种针对智能合约跨合约漏洞的模糊测试方法。

背景技术

智能合约是一种特殊协议,运行在区块链上。智能合约部署到区块链上后便无法更改,这意味着合约中的安全漏洞也无法修复。因此在智能合约部署前得到充分的测试是十分必要的。

目前,一些测试工具被开发出来用于智能合约的检测。但这些工具大都关注于单个合约的安全漏洞,忽视了跨合约安全漏洞。跨合约安全漏洞是指智能合约调用其他合约存在的漏洞,这种漏洞涉及至少二个智能合约。实际应用中,智能合约之间的调用是普遍存在的。比如一个DApp(Decentralized Application,去中心化应用)往往包含了多个合约。相比于单个智能合约的安全漏洞,跨合约安全漏洞更为隐蔽,蕴藏着更大的安全风险。

目前,主要存在如下两种方案:

方案一、专利“一种智能合约模糊测试的方法、装置及存储介质”,这项专利中提出了将模糊测试技术用于检测智能合约漏洞。

该方案可归纳为图1所示流程,主要包括:1)生成初始的测试用例。根据合约函数名和函数参数,生成测试用例。2)测试用例的变异。它提出对测试用例进行字节替换,字节翻转等方法。这些变异方法在以前的模糊测试技术中已被广泛使用。3)测试用例的执行。它提出二种执行方式,一种是先对智能合约插桩再执行,另一种是在虚拟机沙箱运行。针对这两种执行方式,分别提出了如何收集智能合约执行的结果。4)反馈指标。根据程序执行的反馈指标,确定是否继续对测试用例变异以生成更多的测试用例。反馈指标包括,测试用例的执行路径和异常测试结果。

方案一的缺陷在于:1)关注于对单个智能合约测试。多个合约的调用需要突破很多程序分支,简单的进行模糊测试,很难发生合约调用行为。2)测试用例的组成有待改进。测试用例选取了函数名和函数参数,这是不够的。因为一个合约函数的执行结果,不仅取决于函数中的参数,也可能与合约状态(合约中的成员变量,账户余额)有关;比如,一个合约函数存在向其他账户转账指令,如果此合约账户余额为0,那么就无法发生转账。3)结果中选取的反馈指标有待改进。选取执行路径作为反馈指标,是在检测其他程序语言时的常用做法,但在智能合约模糊测试中,这样做的效果不好。因为智能合约的代码短,执行路径简单,有大量重复的执行路径。4)对智能合约中的所有部分都检测,没有测试重点。智能合约的安全漏洞只存在少量的函数中,对没有安全漏洞的函数进行检测,浪费了许多不必要时间。

方案二、文献(sFuzz:An Efficient Adaptive Fuzzer for Solidity SmartContracts)。

该方案可归纳为图2所示流程,主要包括:1)生成初始的测试用例。测试用例的组成上包括了函数名,函数的参数,和合约账户余额。但是没有包括合约成员变量。2)测试用例的变异。与方案一的方法相同。3)测试用例的执行。与方案一的第2种执行方法相同,是在虚拟机沙箱运行。4)结果反馈。选取了分支距离作为反馈指标,分支距离在模糊测试其他程序语言时也被用到。

方案二的缺陷在于:1)工具只支持对单个智能合约测试。2)与方案一类似的,测试用例的组成有待改进。3)结果中选取的反馈指标有待改进,只选取了分支距离,没有包含执行路径。4)对智能合约中的所有部分都检测,没有测试重点。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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