[发明专利]一种基于元操作的智能合约漏洞检测方法和系统在审
| 申请号: | 202211634919.7 | 申请日: | 2022-12-19 |
| 公开(公告)号: | CN116127466A | 公开(公告)日: | 2023-05-16 |
| 发明(设计)人: | 徐向华;王顺 | 申请(专利权)人: | 杭州电子科技大学 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 310018 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 操作 智能 合约 漏洞 检测 方法 系统 | ||
1.一种基于元操作的智能合约漏洞检测方法,其特征在于,包括:规则描述阶段、规则解析阶段和规则执行阶段;
定义元操作为一种抽象函数表示形式,包含元操作名、变量类型及变量名;
定义逻辑运算符用以描述元操作之间的逻辑运算关系;
定义漏洞检测规则,其代表一种漏洞的检测规则描述形式;
定义漏洞检测脚本文件,其代表一组待检测的合约漏洞;
定义检测代码单元,为元操作所代表的具体检测逻辑的代码片段;
其中规则描述阶段中,通过使用系统中已定义的元操作与逻辑运算符生成漏洞检测脚本文件;使用元操作描述漏洞检测时,按照其抽象函数形式中的入参类型传入对应的类型值;
智能合约漏洞在中间表示IR中呈现的漏洞特征用漏洞检测规则表示;
脚本文件中以顺序的形式列出漏洞检测规则;
其中规则解析阶段中,包括:
通过对漏洞检测脚本文件中的漏洞检测规则进行顺序遍历;
解析每个漏洞检测规则中所有元操作和入参值;
解析漏洞检测规则中所有逻辑运算符,根据运算符的优先级顺序将已解析的代码检测单元按照优先级添加到优先级队列中并保存元操作之间存在的逻辑运算符;
其中规则执行阶段中,包括:
遍历获取优先级队列中的代码检测单元,执行代码检测单元并在中间表示IR上进行路径匹配,若存在相应的检测路径则返回True,否则返回False;
并更新当前已匹配的IR路径为待匹配IR;
将优先级队列中所有的代码检测单元的结果与相应的逻辑运算符进行组合形成逻辑运算表达式;
通过计算逻辑运算表达式返回结果True、False来描述当前智能合约中是否存在特定的漏洞。
2.一种基于元操作的智能合约漏洞检测系统,其特征在于,包括:合约转换模块:使用Slither工具对智能合约源代码进行编译,通过词法分析与语法分析等生成中间表示IR,作为后续代码执行中待扫描的对象;
解析模块:将元操作源码文件的映射关系解析为内存中元操作与具体的检测代码单元的映射关系,对漏洞检测脚本文件进行解析,获得每条检测规则中所包含的元操作、元操作之间的优先级和各个元操作之间的逻辑关系;
执行模块:根据解析模块中所解析出的元操作与检测代码单元的映射关系来依次执行每条元操作并记录其返回值;通过逻辑关系来组合所有返回值并计算结果从而判断合约是否存在漏洞问题;
扩展模块:用于注册检测代码单元,并引用注册的检测代码单元,实现解析模块追加映射关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211634919.7/1.html,转载请声明来源钻瓜专利网。





