【技术实现步骤摘要】
一种基于智能合约代码数值溢出的安全检测方法
本专利技术涉及计算机安全检测方法,特别涉及基于智能合约代码数值溢出的安全检测方法。
技术介绍
以太坊(Ethereum)是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(EthereumVirtualMachine)来处理点对点合约。智能合约代码发布场景下存在代码编码不规范的问题。随着智能合约的增多和大规模的发展,安全问题也频繁的出现。该问题不解决,对造成经济上的损失是不可估量的。例如,此类问题曾经所引安全漏洞,导致DAO、Parity、BEC等市值几乎一夜归零。如何对智能合约资产进行有效的管理和控制,保证安全的执行合约以及不出现漏洞等,日益显得重要。且合约代码具有公开且上传不可以更改的特性,如何在最短的时间内对智能合约代码进行快速的审计,评估和修复也更加迫切。现有检测方法通常的做法是需要人工进行测试和审计,此类方法存在对于一些复杂的业务逻辑场景难以复现(特别是针对属于经济学、博弈论范畴之内)。而人为判断可能会有一定的误差,验证的效率慢,浪费人力物力以及时间的成本的缺陷。
技术实现思路
本专利技术要解决的技术问题是,克服现有技术中的不足,提供一种基于智能合约代码数值溢出的安全检测方法。为解决上述技术问题,本专利技术采用的的解决方案是:提供一种基于智能合约代码数值溢出的安全检测方法,包括以下步骤:(1)针对以太坊的加减乘除编写安全检测规则;(2)将智能合约代码加载到审计代码的引擎中;(3)对智能合约代码所调取的solidity安全规则函数进行统计,确认已采用soli ...
【技术保护点】
1.一种基于智能合约代码数值溢出的安全检测方法,其特征在于,包括以下步骤:(1)针对以太坊的加减乘除编写安全检测规则;(2)将智能合约代码加载到审计代码的引擎中;(3)对智能合约代码所调取的solidity安全规则函数进行统计,确认已采用solidity安全代码库;(4)对智能合约代码进行翻译,将其构造成有效的智能合约脚本语言,并用另外可执行的脚本语言对合约代码进行形式化的描述;(5)针对翻译后的智能合约脚本语言找寻可能存在溢出的加减法运算的变量参数,然后搜索存在安全规则函数的代码;加载带智能合约安全代码库规则,针对书写不规范进行变量的上溢出和下溢出检测;如果不存在溢出,表示测试通过,显示输入的值和输出结果;如果存在溢出,则显示为上溢、下溢或除零,并同时显示输入的参数与溢出结果;(6)针对翻译后的智能合约脚本语言找寻可能存在溢出的加减法运算的变量参数,然后搜索不存在安全规则函数的代码;加载带智能合约安全代码库规则,针对书写不规范进行变量的上溢出和下溢出检测;如果不存在溢出,表示测试通过,显示输入的值和输出结果;如果存在溢出,则显示上溢、下溢或除零,并同时显示输入的参数与溢出结果。
【技术特征摘要】
1.一种基于智能合约代码数值溢出的安全检测方法,其特征在于,包括以下步骤:(1)针对以太坊的加减乘除编写安全检测规则;(2)将智能合约代码加载到审计代码的引擎中;(3)对智能合约代码所调取的solidity安全规则函数进行统计,确认已采用solidity安全代码库;(4)对智能合约代码进行翻译,将其构造成有效的智能合约脚本语言,并用另外可执行的脚本语言对合约代码进行形式化的描述;(5)针对翻译后的智能合约脚本语言找寻可能存在溢出的加减法运算的变量参数,然后搜索存在安全规则函数的代码;加载带智能合约安全代码库规则,针对书写不规范进行变量的上溢出和下溢出检测;如果不存在溢出,表示测试通过,显示输入的值和输出结果;如果存在溢出,则显示为上溢、下溢或除零,并同时显示输入的参数与溢出结果;(6)针对翻译后...
【专利技术属性】
技术研发人员:周楠,范渊,杨勃,
申请(专利权)人:杭州安恒信息技术股份有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。