【技术实现步骤摘要】
智能合约漏洞的检查方法、系统及介质
本专利技术涉及以太坊智能合约安全
,具体地,涉及智能合约漏洞的检查方法、系统及介质。尤其地,涉及基于深度强化学习与模糊测试技术的智能合约漏洞检测方法。进一步地,涉及一种基于深度强化学习(DeepQ-Learning)与模糊测试技术(fuzzing)的智能合约漏洞检测方法。
技术介绍
近年来,随着区块链成为全球市场上一个炙手可热的话题,越来越多的黑客将目光锁定在区块链的安全漏洞上。以太坊作为目前市值第二的区块链平台,它支持虚拟机中的智能合约在交易到达时执行一串预先配置规则的代码。而攻击者们正是通过攻击智能合约代码中存在的漏洞,非法获得数目巨大的以太币,对区块链市场造成严重危害。以区块链业界最大的众筹项目TheDAO为例,黑客通过攻击漏洞转移了约360万以太币,直接导致了以太坊的硬分叉和市值的暴跌。安全研究人员对智能合约代码存在的漏洞进行了分析,分为了两个层面的研究方向。第一个层面,即漏洞,是已被黑客攻击造成巨大损失或被白帽子发现的可能引发损失的代码问题,例如整形溢出漏洞、重入漏洞、时间戳依赖性漏洞等,是静态的代码问题;第二个 ...
【技术保护点】
1.一种智能合约漏洞的检查方法,其特征在于,包括:Solidity程序静态污点分析步骤:从语法上分析Solidity程序的源代码,针对Solidity程序的源代码中的每个函数,遍历所有可能的执行流程,形成控制流程图,再标记所有可能的污点数据,获得并存储污点分析结果;State矩阵生成步骤:生成交易序列,再进行交易序列的重组,生成重组后的交易序列,再根据获得的污点分析结果,获得State矩阵;智能合约漏洞检测步骤:使用模糊测试技术,输入State矩阵,获得奖励Reward并输入到神经网络,神经网络根据当前记忆选择触发奖励的机会最大的动作Action,根据该动作Action对当 ...
【技术特征摘要】
1.一种智能合约漏洞的检查方法,其特征在于,包括:Solidity程序静态污点分析步骤:从语法上分析Solidity程序的源代码,针对Solidity程序的源代码中的每个函数,遍历所有可能的执行流程,形成控制流程图,再标记所有可能的污点数据,获得并存储污点分析结果;State矩阵生成步骤:生成交易序列,再进行交易序列的重组,生成重组后的交易序列,再根据获得的污点分析结果,获得State矩阵;智能合约漏洞检测步骤:使用模糊测试技术,输入State矩阵,获得奖励Reward并输入到神经网络,神经网络根据当前记忆选择触发奖励的机会最大的动作Action,根据该动作Action对当前state矩阵进行更新,生成检测漏洞效率更高的模糊测试的输入交易序列样本,对智能合约进行检测以发现智能合约错误。2.根据权利要求1所述的智能合约漏洞的检查方法,其特征在于,所述Solidity程序静态污点分析步骤:所述标记所有可能的污点数据:将源代码中的状态变量、和函数传入参数以及Solidity内置变量归入污点类变量,遍历一次控制流程图,将被污点类变量修改过的变量归入污点类;所述存储污点分析结果:针对每个函数生成json格式字典来存储污点分析结果。3.根据权利要求2所述的智能合约漏洞的检查方法,其特征在于,所述State矩阵生成步骤包括:所述生成交易序列包括:合约源码经过ABI解析后从中间挑选一个可调用的非静态函数;为非静态函数生成列参数,即从种子seed集合中随机抽取一个种子seed生成参数;生成交易的发送方和交易价值value;根据获得的非静态函数、生成的列参数、生成的交易的发送方以及交易价值value,生成交易序列;所述进行交易序列的重组指:指替换交易序列中某个交易调用的函数、函数传入的参数、交易的交易价值和发送方,形成一个新的交易序列;所述State矩阵包括:生成的重组的交易序列、交易调用的函数的污点分析结果。4.根据权利要求3所述的智能合约漏洞的检查方法,其特征在于,所述智能合约漏洞检测步骤:所述奖励Reward与检查出错误所用的输入次数的数学期望有关,期望越大,奖励Reward越小,反之则越大;所述触发奖励的机会指:对一个合约进行多次错误检查后,尝试次数的数学期望越多,触发奖励的机会越小;所述动作Action包括:交易函数的改变、参数替换、发送方替换以及交易额替换。5.根据权利要求4所述的智能合约漏洞的检查方法,其特征在于,所述智能合约漏洞检测步骤:所述获得奖励Reward指:将生成的重组后的交易序列放入以太坊智能合约虚拟机EVM中执行,获得交易执行反馈信息,再根据污点分析结果获得漏洞检测信息,根据交易执行反馈信息和漏洞检测信息获得奖励Reward;所述对智能合约进行检测以发现智能合约错误:若检查出错误,则终止;若未检查出错误,则判断检测次数是否达到预设的模糊测试尝试次数上限:若是,则检测结束;否则,则继续检测。6.一种智能合约漏洞的检查系统,其特征在于,...
【专利技术属性】
技术研发人员:张晴钊,王艺卓,鲁梦华,陶思文,刘功申,
申请(专利权)人:上海交通大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。