[发明专利]一种基于深度学习的智能合约漏洞检测方法在审
申请号: | 201911257654.1 | 申请日: | 2019-12-10 |
公开(公告)号: | CN111159012A | 公开(公告)日: | 2020-05-15 |
发明(设计)人: | 王锐;叶可江;须成忠 | 申请(专利权)人: | 中国科学院深圳先进技术研究院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/04;G06N3/08 |
代理公司: | 北京市诚辉律师事务所 11430 | 代理人: | 杨帅峰 |
地址: | 518055 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 智能 合约 漏洞 检测 方法 | ||
本发明属于区块链领域,涉及一种基于深度学习的智能合约漏洞检测方法,包括以下步骤:1)学习训练阶段:针对智能合约代码进行处理,选择合适的神经网络进行训练;2)检测阶段:将需要检测代码进行处理,输入到训练好的神经网络进行检测,得出结果。本发明漏洞检测方法通过深度学习的方法进行漏洞检测,实现了自动化,提高了效率。
技术领域
本发明属于区块链领域,涉及一种基于深度学习的智能合约漏洞检测方法。
背景技术
智能合约是区块链的核心技术之一,是多方参与场景中的共识规则,更是价值传递的中枢。智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。以以太坊体系的代币为例,其业务逻辑是代币发币和交易。以太坊在设计之初,将智能合约设计成了一旦部署就不能修改的模式,这种设计有可能是为了提高智能合约的可信性。在区块链应用中,由于区块链的不可篡改性,智能合约一旦上线并出现安全隐患,对用户造成的损失是巨大且不可挽回的。一旦出现黑客事件,需要整个社区的共识才能回滚交易,所以每次遭受攻击都回滚交易也是不现实的。因此,区块链应用开发的过程需要用大量的测试和检验以获取足够的安全性,而反过来牺牲迭代的速度。要应对区块链智能合约的安全漏洞问题,未来需要普遍考虑设计相应的智能合约协商更新机制,降低漏洞修复的成本。同时,在智能合约上线之前,对其进行全面深入的代码安全检测,尽可能的消除漏洞,降低安全风险。因此,我们需要一种可以自动化检测智能合约代码漏洞的方法及系统来减少该问题的产生。通过漏报率、误报率、命中率、测试时限等评估维度,来整体判别某种验证和检测工具的可行性,是当前智能合约及区块链应用发展的必经阶段,也是作为区块链从业者需要认真践行的使命。
目前主流的智能合约漏洞检测分为三类,第一类就是特征代码的匹配,第二类就是基于形态化验证的自动化检测,以及第三类,基于符号执行和符号抽象的自动化检测。
1)特征代码匹配:对恶意代码进行一些提取抽象,类似于代码静态检测,通过抽样成一种语义匹配,然后再去匹配它的静态源代码。这种检测的方法的优点是速度很快,因为它就是对原码进行一个字符串的匹配。第二是它能够迅速的响应新的漏洞,因为这种检测方法大部分是以插件形式开发,比如出现了一个新的漏洞,那么就可以快速的提交一些新的匹配模式。
2)基于形式化验证的自动化检测:形式化方法是采用某种严格的数学理论,对目标对象进行准确且无二异性的严格数学建模,描述以及推导与证明。形式化验证是用逻辑来验证程序的可靠性,把一段程序用逻辑的方法证明一遍,证明它能得到预期的结果,没有bug。形式化验证来检测智能合约安全,最早是在16年,由Hirai提供,使用Isabelle高阶逻辑交互定理证明器,将EVM的一些OPCODE(机器码),通过lem language转化成一个形式化模型,然后通过形式化模型的验证来去判断代码中的逻辑是否存在问题。
3)基于符号执行、符号抽象的自动化检测:
在对代码进行检测时,通过源代码或者编译,可以形成一个OPCODE,并输入到自动化分析引擎。在输入到引擎后,会转化成一个CFG(ControlFlowGraph控制流程图),
CFG会将合约代码里的逻辑包装成块,当逻辑有分叉的时候,将其分叉。CFGBuilder主要是对OPCODE这种智能合约代码,把它形成一个十分庞大完善的一个CFG。CFG生成后,有以下两种分析方法:
a.符号执行验证:Oyente
Oyente的逻辑是在CFG build形成之后,首先通过EXPLORER验证,将代码当中的每一个流程都去验证一遍。接下来是CodeAnalysis,将刚刚输出的EXPLORER路径转化,进行一些漏洞验证,目前只提供TOD、Timestamp dependence、Mishandled exceptions这三种验证,最后系统为了保证误报率和漏报率,采用了微软的Z3 Bit-Vector Solver开源的验证器,然后来进行整体架构的一个封装。
b.符号抽象分析:Securify
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院深圳先进技术研究院,未经中国科学院深圳先进技术研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911257654.1/2.html,转载请声明来源钻瓜专利网。