[发明专利]一种基于符号执行验证的智能合约漏洞检测方法及装置在审
| 申请号: | 202111243944.8 | 申请日: | 2021-10-26 |
| 公开(公告)号: | CN113688403A | 公开(公告)日: | 2021-11-23 |
| 发明(设计)人: | 汪德嘉;王泽旭;宋超 | 申请(专利权)人: | 江苏通付盾科技有限公司 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 北京弘权知识产权代理有限公司 11363 | 代理人: | 逯长明;许伟群 |
| 地址: | 215000 江苏省苏州市中国(江苏)自由贸易试*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 符号 执行 验证 智能 合约 漏洞 检测 方法 装置 | ||
本申请公开了一种基于符号执行验证的智能合约漏洞检测方法及装置,包括获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;基于所述执行树完成智能合约属性验证,得到验证结果。本申请通过符号执行的方法对待检测程序完成程序属性验证的工作,从而实现对代码漏洞的精确检测。
技术领域
本申请涉及智能合约技术领域,尤其涉及一种基于符号执行验证的智能合约漏洞检测方法及装置。
背景技术
智能合约设计的初衷在于能够自动、高效与公平地执行区块链上的每一笔交易,在区块链的日常活动中,智能合约扮演着较为重要的角色。随着区块链的应用场景日益丰富、功能不断完善,智能合约的安全问题逐渐凸显,智能合约的安全即为区块链项目的命脉,因此智能合约的安全漏洞检测工作尤为重要。
现有技术中,对于智能合约漏洞检测技术主要包括符号执行、模糊测试、形式化验证、程序分析技术及污点分析等手段。其中,符号执行相比于其他技术更适用于对程序进行精确全面的分析。符号执行的主要思想为:把程序执行中的不确定的输入值转换为符号值,从而推动程序执行分析、完成属性验证等工作,保证了检测结果具有较好的真实性与可靠性。
目前常用的用于检测智能合约漏洞的装置有Oyente,Oyente以智能合约字节码作为输入,包含四个核心组件:控制流图生成器 (CFG Builder)、探索器 (Explorer)、分析器(Core Analysis)和验证器(Validator)。控制流图生成器对合约进行预分析,为合约构建基本的控制流图,以基本块为节点,跳转关系为边。然而部分跳转关系并不能由控制流图生成器完全确定。因此,探索器会对智能合约进行符号执行,并在执行过程中将这些信息补齐。探索器承担着收集合约信息的重要责任,它本质上是一个循环,依次执行合约控制流图中各个基本块的代码。它利用Z3求解器对合约中的条件跳转进行求解,探索器根据求解结果决定对哪个分支进行分析,当条件跳转的两个分支条件都有解时, 两个分支都会被探索。分析器是 Oyente 的另一个重要组件,用于根据探索器收集的信息,识别合约漏洞。验证器,用于过滤分析器所产生的误报。
然而,Oyente 仅是一个字节码层面的合约漏洞挖掘工具,在符号执行的过程中对程序控制流图进行动态探索,并通过路径约束、变量来源等信息对合约漏洞进行检测。但是,Oyente的部分检测方案并不完善,在实际的智能合约检测工作中会报出大量假阳性误报,涉及的漏洞也不够全面,仅实现了条件竞争、时间戳依赖、未校验返回值以及重入漏洞四种合约漏洞的检测方案。同时,该工具也缺乏相关开发人员的维护与更新,已不能满足目前智能合约发展对安全漏洞检测的需求工作。
发明内容
本申请提供了一种基于符号执行验证的智能合约漏洞检测方法及装置,以解决现有技术中执行智能合约漏洞检测时精度低、准确度低等问题。
第一方面,本申请提供了一种基于符号执行验证的智能合约漏洞检测方法,所述方法包括:
获取输入初始值,所述输入初始值包括符号值以及与所述符号值对应的、用于简化约束条件的实际值;
根据所述初始值或者经过路径反求后的结果选择将要执行的路径并执行;
当当前路径执行到叶子节点时停止,根据执行结果生成所述当前路径的约束条件;
将约束条件反求得到路径反求后的结果,所述结果对应下一个要执行的新路径;
当满足第一预设规则后,停止路径执行并生成包括所有执行路径的执行树;
基于所述执行树完成智能合约属性验证,得到验证结果。
在一些实施例中,所述第一预设规则包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏通付盾科技有限公司,未经江苏通付盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111243944.8/2.html,转载请声明来源钻瓜专利网。





