智能合约源代码的安全审计
发布时间:2021-11-21 06:28
近几年,区块链技术越来越受各国政府和研究机构的关注和重视。智能合约作为区块链2.0的代表技术,以一段可编程的代码形式部署到区块链上,且一旦部署成功就无法修改。如果智能合约本身存在安全漏洞,那么就可能造成极大的损失。因此,在智能合约部署上链前,对其进行安全审计是非常重要的。本文根据以太坊智能合约和Fabric智能合约的常见安全漏洞类型与特征,设计与开发了一个可扩展的智能合约安全审计工具,并使用该工具实现了对以太坊智能合约源代码和Fabric智能合约源代码的安全审计。论文的主要研究内容如下:1.针对当前检测智能合约类型单一和检测效率低等问题,设计了一种可扩展的智能合约安全漏洞检测模型,其主要分为预处理模块、漏洞匹配检测模块和规则库。该模型在漏洞匹配检测算法不变的情况下,通过设计不同的ANTLR4文法规则和安全规则,可实现对不同区块链平台上的智能合约的安全审计。2.基于此模型,设计与开发了一个可扩展的智能合约安全审计工具——Contract Detection。该工具实现了对以太坊智能合约源代码和Fabric智能合约源代码的安全审计,其设计与实现主要完成如下工作:首先,根据Solidity语...
【文章来源】:重庆邮电大学重庆市
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
ANTLR的主要工作过程[45]
ESCVDM模型采用静态检测技术,可以在不执行智能合约的情况下进行检测,提高了检测效率。此外,ESCVDM模型使用自定义的规则进行检测,提高了扩展性。如图3.1所示,ESCVDM模型主要架构分为三大模块,包括预处理模块、漏洞匹配检测模块和安全规则库。从图3.1可知,ESCVDM模型通过ANTLR4工具完成预处理模块。在预处理模块中,通过自定义的文法规则(即.g4文件),将智能合约源代码转化成XML中间表示。在规则库模块中,将自定义的XPath检测模式组成不同的规则,形成规则库。在漏洞匹配检测模块中,将预处理模块中生成的XML中间表示作为待匹配检测对象,使用自定的规则对其进行漏洞检测,输出漏洞检测报告。ESCVDM模型能够根据不同的规则检测不同区块链平台上的智能合约源代码中是否存在漏洞,从而保证智能合约的安全。
自定义的规则决定着可检测智能合约安全漏洞的类型。为了方便智能合约漏洞匹配检测,本文的规则库是基于XML数据格式来存储的。本文通过自定义XPath检测模式,组成不同的规则,并存储在规则库中。规则库形成过程如图3.2所示。一个规则被存储到规则库中需要经过多个步骤,如图3.2所示,主要包括:
【参考文献】:
期刊论文
[1]智能合约安全漏洞挖掘技术研究[J]. 付梦琳,吴礼发,洪征,冯文博. 计算机应用. 2019(07)
[2]智能合约:架构及进展[J]. 欧阳丽炜,王帅,袁勇,倪晓春,王飞跃. 自动化学报. 2019(03)
[3]基于区块链的众筹智能合约设计[J]. 张帅,延安,贾敏智. 计算机工程与应用. 2019(08)
[4]基于区块链的智能合约技术与应用综述[J]. 贺海武,延安,陈泽华. 计算机研究与发展. 2018(11)
[5]ERC20智能合约整数溢出系列漏洞披露[J]. 陈力波,殷婷婷,倪远东,张超. 信息技术与网络安全. 2018(08)
[6]区块链智能合约漏洞 修复困难[J]. 高枫. 计算机与网络. 2018(12)
[7]区块链技术:架构及进展[J]. 邵奇峰,金澈清,张召,钱卫宁,周傲英. 计算机学报. 2018(05)
[8]The DAO被攻击事件分析与思考[J]. 伍旭川,刘学. 金融纵横. 2016(07)
[9]区块链技术发展现状与展望[J]. 袁勇,王飞跃. 自动化学报. 2016(04)
[10]基于XML的软件安全静态检测方法研究[J]. 周宽久,郑红波,赖晓晨,刘春燕,迟宗正. 计算机工程与应用. 2010(28)
博士论文
[1]软件源代码安全分析研究[D]. 张立勇.西安电子科技大学 2011
硕士论文
[1]针对以太坊智能合约代码的安全检测系统[D]. 谈辰.电子科技大学 2019
[2]基于区块链的智能合约研究与实现[D]. 杨茜.西南科技大学 2018
[3]基于抽象语法树的代码静态缺陷检测工具开发[D]. 方登辉.北京邮电大学 2018
[4]基于抽象语法树和改进粒子群算法的代码同源性分析[D]. 张刘毅.东南大学 2017
[5]基于DSL和区块链技术的可编程智能合约设计与实现[D]. 朱忠宁.华南理工大学 2017
[6]基于静态检测的代码审计技术研究[D]. 罗琴灵.贵州大学 2015
[7]基于静态分析的代码安全缺陷检测系统[D]. 赵迎钊.电子科技大学 2012
[8]源码审核技术中的词法分析研究[D]. 肖锋.西安电子科技大学 2009
本文编号:3508965
【文章来源】:重庆邮电大学重庆市
【文章页数】:71 页
【学位级别】:硕士
【部分图文】:
ANTLR的主要工作过程[45]
ESCVDM模型采用静态检测技术,可以在不执行智能合约的情况下进行检测,提高了检测效率。此外,ESCVDM模型使用自定义的规则进行检测,提高了扩展性。如图3.1所示,ESCVDM模型主要架构分为三大模块,包括预处理模块、漏洞匹配检测模块和安全规则库。从图3.1可知,ESCVDM模型通过ANTLR4工具完成预处理模块。在预处理模块中,通过自定义的文法规则(即.g4文件),将智能合约源代码转化成XML中间表示。在规则库模块中,将自定义的XPath检测模式组成不同的规则,形成规则库。在漏洞匹配检测模块中,将预处理模块中生成的XML中间表示作为待匹配检测对象,使用自定的规则对其进行漏洞检测,输出漏洞检测报告。ESCVDM模型能够根据不同的规则检测不同区块链平台上的智能合约源代码中是否存在漏洞,从而保证智能合约的安全。
自定义的规则决定着可检测智能合约安全漏洞的类型。为了方便智能合约漏洞匹配检测,本文的规则库是基于XML数据格式来存储的。本文通过自定义XPath检测模式,组成不同的规则,并存储在规则库中。规则库形成过程如图3.2所示。一个规则被存储到规则库中需要经过多个步骤,如图3.2所示,主要包括:
【参考文献】:
期刊论文
[1]智能合约安全漏洞挖掘技术研究[J]. 付梦琳,吴礼发,洪征,冯文博. 计算机应用. 2019(07)
[2]智能合约:架构及进展[J]. 欧阳丽炜,王帅,袁勇,倪晓春,王飞跃. 自动化学报. 2019(03)
[3]基于区块链的众筹智能合约设计[J]. 张帅,延安,贾敏智. 计算机工程与应用. 2019(08)
[4]基于区块链的智能合约技术与应用综述[J]. 贺海武,延安,陈泽华. 计算机研究与发展. 2018(11)
[5]ERC20智能合约整数溢出系列漏洞披露[J]. 陈力波,殷婷婷,倪远东,张超. 信息技术与网络安全. 2018(08)
[6]区块链智能合约漏洞 修复困难[J]. 高枫. 计算机与网络. 2018(12)
[7]区块链技术:架构及进展[J]. 邵奇峰,金澈清,张召,钱卫宁,周傲英. 计算机学报. 2018(05)
[8]The DAO被攻击事件分析与思考[J]. 伍旭川,刘学. 金融纵横. 2016(07)
[9]区块链技术发展现状与展望[J]. 袁勇,王飞跃. 自动化学报. 2016(04)
[10]基于XML的软件安全静态检测方法研究[J]. 周宽久,郑红波,赖晓晨,刘春燕,迟宗正. 计算机工程与应用. 2010(28)
博士论文
[1]软件源代码安全分析研究[D]. 张立勇.西安电子科技大学 2011
硕士论文
[1]针对以太坊智能合约代码的安全检测系统[D]. 谈辰.电子科技大学 2019
[2]基于区块链的智能合约研究与实现[D]. 杨茜.西南科技大学 2018
[3]基于抽象语法树的代码静态缺陷检测工具开发[D]. 方登辉.北京邮电大学 2018
[4]基于抽象语法树和改进粒子群算法的代码同源性分析[D]. 张刘毅.东南大学 2017
[5]基于DSL和区块链技术的可编程智能合约设计与实现[D]. 朱忠宁.华南理工大学 2017
[6]基于静态检测的代码审计技术研究[D]. 罗琴灵.贵州大学 2015
[7]基于静态分析的代码安全缺陷检测系统[D]. 赵迎钊.电子科技大学 2012
[8]源码审核技术中的词法分析研究[D]. 肖锋.西安电子科技大学 2009
本文编号:3508965
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3508965.html