[发明专利]一种智能合约权限管理漏洞检测方法及装置在审
申请号: | 202210150834.5 | 申请日: | 2022-02-18 |
公开(公告)号: | CN114510723A | 公开(公告)日: | 2022-05-17 |
发明(设计)人: | 文伟平;刘军杰;胡叶舟;刘宇航;肖遥;方莹 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 贾晓玲 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 权限 管理 漏洞 检测 方法 装置 | ||
本发明公开了一种智能合约权限管理漏洞检测方法及装置,属于区块链安全技术领域。本发明分为两个阶段,第一阶段是将智能合约solidity源码编译成操作码指令序列,在操作码指令序列中找到表示构造函数结束的指令,在构造函数结束指令之前的指令中找到与关键权限变量“owner”初始化相关的指令,并确定“owner”初始化时的存储位置;第二阶段是通过符号执行的方法,遍历构造函数之外所有可能修改“owner”存储位置所存储的值的路径,进行约束求解,得到智能合约权限管理漏洞。本发明可以检测出智能合约中定义的特殊权限变量“owner”的值是否可以被修改,并增加特定约束条件来提高检测准确率。
技术领域
本发明涉及区块链安全技术领域,尤其涉及一种区块链智能合约权限管理漏洞的检测方法及装置。
背景技术
Solidity是一门图灵完备的编程语言,用于编写智能合约,这也意味着可以构建任意复杂逻辑的DApp。在编写智能合约的过程中,合约的开发者一般会设置一个“owner”值,该值拥有一些特权,如转账、函数调用等。如果攻击者能够修改该值为自己的地址,那么攻击者将会利用这些特权来攻击合约并获取利益。
目前,使用符号执行方法进行漏洞检测的代表性的工具有Oyente、Manticore、Mythril等。Oyente可以检测四种常见的漏洞,但并没有对该漏洞进行检测;Mythril可以检测出tx.origin用作身份验证的漏洞,但并没有对“owner”值是否可以修改进行检测;Manticore亦是如此。此外,还有一些工具对函数的修饰限定符进行检查,但也只能拿函数调用者和“owner”进行比较,而“owner”是否被修改则不可知。
发明内容
为了弥补上述现有技术的不足,本发明提出一种基于符号执行的智能合约权限管理漏洞检测方法及装置,通过检测出智能合约中定义的特殊权限变量“owner”的值是否可以被修改,判断是否存在权限管理漏洞,并增加“onlyOwner”判断来提高检测准确率。
本发明提供的技术方案如下:
一种基于符号执行的智能合约权限管理漏洞的检测方法,其特征在于,分为两个阶段,第一阶段是将智能合约solidity源码编译成操作码指令序列,在操作码指令序列中找到表示构造函数结束的指令,在构造函数结束指令之前的指令中找到与关键权限变量“owner”初始化相关的指令,并确定“owner”初始化时的存储位置;第二阶段是通过符号执行的方法,遍历构造函数之外所有可能修改“owner”存储位置所存储的值的路径,进行约束求解,得到智能合约权限管理漏洞。
第一阶段确定“owner”的存储位置,执行如下步骤:
步骤1.根据智能合约的操作码指令序列,确定构造函数分界点,即确定构造函数内指令和构造函数外指令;
步骤2.对构造函数内指令初始化的变量进行筛查,确定“owner”变量,并确定其初始化时的存储位置。
通过符号执行的方法,遍历构造函数外指令所有可能修改该存储位置所存储的值的路径,进行约束求解,得到智能合约权限管理漏洞,该遍历求解阶段执行如下步骤:
步骤3.对构造函数外指令的写操作指令进行判断,根据“owner”变量的存储位置,判断写操作的存储位置是否是该位置;
步骤4.判断写操作这笔交易是否为任意地址可以调用;
步骤5.对满足上述条件的路径进行约束求解,有解则报告该漏洞。
本发明提供了一种基于符号执行的智能合约权限管理漏洞检测装置,包括:源代码处理子系统、符号执行虚拟机子系统、漏洞检测和约束求解子系统;其中:
源代码处理子系统包括智能合约代码编译模块和智能合约字节码文件解析模块,将输入的智能合约数据转换为统一描述的操作码指令序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210150834.5/2.html,转载请声明来源钻瓜专利网。