一种智能合约漏洞检测的方法、系统技术方案

技术编号:21478445 阅读:47 留言:0更新日期:2019-06-29 04:59
本发明专利技术提供一种智能合约漏洞检测的方法、系统,属于智能合约技术领域。通过上传智能合约代码文件;由服务端对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果;所述智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。本发明专利技术,通过客户端上传智能合约程序文件至服务端执行漏洞的自动检测,从而解放人力,检测方便,速度快,准确率高。

【技术实现步骤摘要】
一种智能合约漏洞检测的方法、系统
本专利技术涉及智能合约
,尤其涉及一种智能合约漏洞检测的方法、系统。
技术介绍
以太坊(Ethereum)是一个开源的公共区块链平台,他拥有区块链的去中心化、共识、分布式账本等特点。它为所有开发者提供了基于Solidity语言的智能合约解决方案平台,它上面提供各种模块让用户来创建属于自己项目的智能合约。智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。目前市场中对智能合约漏洞检测没有较优的方法是基于人工审计智能合约。但是这样的缺点明显:首先,人工检测的方式,检测结果完全依靠检测人的技术水平,导致检测结果参差不齐,多人核审结果不一致等问题;其次,人工检测的费用极高,市场上的人工检测费用少则数千,多则数十万,这样的费用不是大众开发者所能承受的;第三,人工方面的工程排期、代码难度、技术水平等维度上对检测时间影响是非常大的,检测漏洞的周期可能会非常长。
技术实现思路
有鉴于此,本专利技术提供了针对目前的智能合约检测方案所存在的结果不准确、成本高、周期长等缺点,提出了一种智能合约漏洞检测的方法、系统,用以提升开发者的开发效率,增强代码安全性,减少开发者的时间和投入成本。本专利技术的技术方案如下:一种智能合约漏洞检测的方法,所述方法包括:上传智能合约代码文件;对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果;所述智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。相应的,所述智能合约代码文件为.sol文件格式。相应的,所述检测结果包括智能合约代码对应的合约方法类错误和/或智能合约代码中的漏洞类型。相应的,所述执行智能合约漏洞检测包括:静态分析、动态分析和基于SVM的动静混合分析的一种或多种;基于静态分析、动态分析和基于SVM的动静混合分析的一种或多种分析结果,来最终确定检测结果。此外,为实现上述目的,本专利技术还提出一种智能合约漏洞检测的系统,所述系统包括客户端、服务端;其中,客户端,上传智能合约代码文件至服务端;服务端,对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果至客户端;所述的智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。相应的,所述智能合约代码文件为.sol文件格式。相应的,所述检测结果包括智能合约代码对应的合约方法类错误和/或智能合约代码中的漏洞类型。相应的,所述服务端执行智能合约漏洞检测包括:静态分析、动态分析和基于SVM的动静混合分析的一种或多种;基于静态分析、动态分析和基于SVM的动静混合分析的一种或多种分析结果,来最终确定检测结果。在本专利技术实施例的方案中,通过上传智能合约代码文件;由服务端对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果;所述智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。本专利技术,通过客户端上传智能合约程序文件至服务端执行漏洞的自动检测,从而解放人力,检测方便,速度快,准确率高。附图说明图1为本专利技术实施例提供的智能合约漏洞检测的功能实现拓扑图;图2为本专利技术实施例提供的智能合约漏洞检测结果-合约方法类错误展示图;图3为本专利技术实施例提供的智能合约漏洞检测结果-合约漏洞类型展示图。图4为本专利技术实施例提供的智能合约漏洞检测结果中具体的合约漏洞类型对照图。具体实施方式有鉴于此,本专利技术提供了针对目前的智能合约检测方案所存在的成本高、周期长等缺点,提出了一种智能合约漏洞检测的方法、装置,用以提升开发者的开发效率,增强代码安全性,减少开发者的时间和投入成本。本专利技术的技术方案如下:一种智能合约漏洞检测的方法,所述方法包括上传智能合约代码文件;相应的,所述智能合约代码文件为.sol文件格式。如图1所示为本实施例智能合约漏洞检测方法的功能实现拓扑图,具体地,通过本地客户端确定待审计的.sol智能合约文件上传至服务器端,本实施例,智能合约漏洞检测方法是针对使用Solidity编写的运行在以太坊网络的智能合约,通过一系列的技术检测制成的引擎,实现完全自动化分析该智能合约中存在的漏洞情况。面对目前复杂多样的智能合约市场,保证自己项目的智能合约安全性是无可厚非的,所以对智能合约安全检测也是必不可少的,本专利技术将给所有开发者一个更简单易用并高效的工具。相应的,对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果。服务端执行对对智能合约代码文件执行智能合约漏洞的检测,并将漏洞检测结果返回至客户端。本实施例,智能合约程序文件一般以.sol文件形式上传至服务器端,在服务器端,通过solc编译Solidity编写的运行在以太坊网络的智能合约。其中,solc是Solidity源码库的构建目标之一,它是Solidity的命令行编译器。你可使用solc--help命令来查看它的所有选项的解释。该编译器可以生成各种输出,范围从简单的二进制文件、汇编文件到用于估计“gas”使用情况的抽象语法树(解析树)。相应的,所述检测结果包括智能合约代码对应的合约方法类错误和/或智能合约代码中的漏洞类型。参见附图2,为本专利技术实施例一、二提供的智能合约漏洞检测结果-合约方法类错误的系统展示图;其中“viewofFunctions”展示了合约方法类错误,是以程序中的功能函数类来直观的显示合约代码的问题。图3为本实施例提供的智能合约漏洞检测结果-合约漏洞类型展示图,其中,“viewofChecklist”将漏洞检测审计的结果按照漏洞的种类进行分类显示,从而得知代码中存在的问题比重。进一步,参见附图4,为本实施例提供的智能合约漏洞检测结果中具体的合约漏洞类型对照图。所述智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。本实施例,服务器端执行智能合约漏洞检测的形式包括:静态分析、动态分析和基于SVM的动静混合分析的一种或多种;并基于静态分析、动态分析和基于SVM的动静混合分析的一种或多种分析结果,来最终确定检测结果。其中,静态分析,包括不执行智能合约程序,对源代码进行分析漏洞;静态分析是指在不执行计算机程序的条件下,对源代码进行分析,找出代码缺陷。静态分析一般采用数据分析流、机器学习、语义本文档来自技高网...

【技术保护点】
1.一种智能合约漏洞检测的方法,其特征在于:上传智能合约代码文件;对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果;所述智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。

【技术特征摘要】
1.一种智能合约漏洞检测的方法,其特征在于:上传智能合约代码文件;对智能合约代码文件执行智能合约漏洞的检测,并返回所述智能合约漏洞检测结果;所述智能合约漏洞包括可重入攻击漏洞、整数数值溢出漏洞、条件逻辑风险验证、访问控制权限风险验证、返回值风险验证、随机数误用风险验证、执行顺序依赖漏洞、时间戳依赖漏洞、短地址攻击漏洞、平台接口误用漏洞、拒绝服务攻击检测漏洞、多重签名合约漏洞中的一种或多种。2.根据权利要求1所述智能合约漏洞检测的方法,其特征在于:所述智能合约代码文件为.sol文件格式。3.根据权利要求1所述的智能合约漏洞检测的方法,其特征在于:所述检测结果包括智能合约代码对应的合约方法类错误和/或智能合约代码中的漏洞类型。4.根据权利要求1-3任一项所述的智能合约漏洞的方法,其特征在于:所述执行智能合约漏洞检测包括:静态分析、动态分析和基于SVM的动静混合分析的一种或多种;基于静态分析、动态分析和基于SVM的动静混合分析的一种或多种分析结果,来最终确定检测结果。5.一种智能合约漏洞检测的系统,...

【专利技术属性】
技术研发人员:王敏学刘智
申请(专利权)人:杭州拜思科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1