[发明专利]智能合约漏洞的检查方法、系统及介质有效
申请号: | 201910672086.5 | 申请日: | 2019-07-24 |
公开(公告)号: | CN110399730B | 公开(公告)日: | 2021-05-04 |
发明(设计)人: | 张晴钊;王艺卓;鲁梦华;陶思文;刘功申 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 庄文莉 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 智能 合约 漏洞 检查 方法 系统 介质 | ||
本发明提供了一种智能合约漏洞的检查方法、系统和介质,包括:Solidity程序静态污点分析步骤:从语法上分析Solidity程序的源代码,针对Solidity程序的源代码中的每个函数,遍历所有可能的执行流程,形成控制流程图,再标记所有可能的污点数据,获得并存储污点分析结果;State矩阵生成步骤:生成交易序列,再进行交易序列的重组,生成重组后的交易序列,再根据获得的污点分析结果,获得State矩阵。本发明结合了深度学习和模糊测试,利用深度强化学习模型与污点分析优化了模糊测试技术,大大提升了模糊测试的覆盖率与效率。本发明实现了一个高覆盖率、高效率与低误判率兼具的智能合约漏洞检测技术。
技术领域
本发明涉及以太坊智能合约安全技术领域,具体地,涉及智能合约漏洞的检查方法、系统及介质。尤其地,涉及基于深度强化学习与模糊测试技术的智能合约漏洞检测方法。进一步地,涉及一种基于深度强化学习(Deep Q-Learning)与模糊测试技术(fuzzing)的智能合约漏洞检测方法。
背景技术
近年来,随着区块链成为全球市场上一个炙手可热的话题,越来越多的黑客将目光锁定在区块链的安全漏洞上。以太坊作为目前市值第二的区块链平台,它支持虚拟机中的智能合约在交易到达时执行一串预先配置规则的代码。而攻击者们正是通过攻击智能合约代码中存在的漏洞,非法获得数目巨大的以太币,对区块链市场造成严重危害。以区块链业界最大的众筹项目The DAO为例,黑客通过攻击漏洞转移了约360万以太币,直接导致了以太坊的硬分叉和市值的暴跌。
安全研究人员对智能合约代码存在的漏洞进行了分析,分为了两个层面的研究方向。第一个层面,即漏洞,是已被黑客攻击造成巨大损失或被白帽子发现的可能引发损失的代码问题,例如整形溢出漏洞、重入漏洞、时间戳依赖性漏洞等,是静态的代码问题;第二个层面,即利用程序(exploit),是一段通过触发一个漏洞(或者几个漏洞)进而达成某种目的的代码。例如存在调用路径使得某账户能获得非法盈利或者某账户能越过特权执行合约析构等危险操作,是动态的攻击载核分析。针对以上两个角度的研究,分别进行训练:使用模糊测试生成交易组,调用EVM虚拟执行交易组,输出测试日志供DQN神经网络处理反馈给模糊测试器更新交易组,该闭环循环执行直到测试到触发漏洞,然后根据日志进行测试结果生成。
智能合约漏洞检测方法已有学者或企业进行了一定的研究。Bo Jiang等人设计了一套基于fuzz的智能合约审计工具Contract Fuzzer,此工具发现漏洞的准确率较高,但由于预先设置的测试准则有限,它能够找到的漏洞数量较少。Johannes Krupp等人开发的一款审计工具teEther能够在给定二进制字节码的情况下进行智能合约的自动漏洞识别和漏洞利用,但审计速度和误报率还有待加强。
目前没有发现同本发明类似技术的说明或报道,也尚未收集到国内外类似的资料。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种智能合约漏洞的检查方法、系统及介质。
根据本发明提供的一种智能合约漏洞的检查方法,包括:
Solidity程序静态污点分析步骤:从语法上分析Solidity程序的源代码,针对Solidity程序的源代码中的每个函数,遍历所有可能的执行流程,形成控制流程图,再标记所有可能的污点数据,获得并存储污点分析结果;
State矩阵生成步骤:生成交易序列,再进行交易序列的重组,生成重组后的交易序列,再根据获得的污点分析结果,获得State矩阵;
智能合约漏洞检测步骤:使用模糊测试技术,输入State矩阵,获得奖励Reward并输入到神经网络,神经网络根据当前记忆选择触发奖励的机会最大的动作Action,根据该动作Action对当前state矩阵进行更新,生成检测漏洞效率更高的模糊测试的输入交易序列样本,对智能合约进行检测以发现智能合约错误。
优选地,所述Solidity程序静态污点分析步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910672086.5/2.html,转载请声明来源钻瓜专利网。