[发明专利]一种基于元操作的智能合约漏洞检测方法和系统在审
申请号: | 202211634919.7 | 申请日: | 2022-12-19 |
公开(公告)号: | CN116127466A | 公开(公告)日: | 2023-05-16 |
发明(设计)人: | 徐向华;王顺 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310018 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 操作 智能 合约 漏洞 检测 方法 系统 | ||
本发明公开一种基于元操作的智能合约漏洞检测方法与系统。首先把智能合约转换为中间表示,把在中间表示上的基本匹配操作定义为元操作,作为合约代码漏洞检测的基本检测逻辑单元;其次将合约漏洞的检测规则表示为一组元操作的逻辑运算表达式,形成漏洞检测脚本文件。在合约漏洞检测系统中实现所有元操作的检测代码,以及合约漏洞检测规则的解析执行代码;最后系统通过解析漏洞检测脚本文件并执行匹配操作,判断待测智能合约是否存在某种漏洞特征。本发明适用于不同版本智能合约漏洞的检测,通过元操作的重用,减少了很多重复漏洞检测代码编写工作,提高了合约漏洞检测工具的可扩展性。
技术领域
本发明属于智能合约安全检测技术领域,具体涉及一种基于元操作的智能合约漏洞检测方法与系统。
背景技术
智能合约是在区块链基础设施上执行的图灵完备程序,与传统程序不同,智能合约一旦部署就无法针对暴露出的漏洞进行修补。智能合约静态代码分析作为智能合约漏洞检测的一种手段,具有检测速度快、不需要代码真实执行等优点。
基于静态分析的智能合约漏洞检测相关的开源框架、专利和论文如下:
SmartCheck采用漏洞特征匹配的漏洞检测方法,将待测智能合约通过词法分析、语法分析将合约源代码文件转换为XML中间表示;针对各类合约漏洞的特征逐一编写对应的漏洞扫描代码,在代码中间表示上进行漏洞特征的扫描匹配,完成合约漏洞检测。Slither检测方法与SmartCheck类似,区别是Slither将待测智能合约通过词法分析、语法分析将合约源代码文件转换为SlitherIR中间表示,在SlitherIR中间表示上进行漏洞特征扫描匹配。
但是,上述合约漏洞检测分析工具在代码实现框架中将漏洞检测规则嵌入到漏洞检测代码中,针对新漏洞需要编写相应的漏洞检测代码,并添加到现有版本的漏洞检测分析工具中,漏洞检测规则与检测工具代码紧密耦合,存在漏洞检测工具代码设计复杂、可扩展性差等问题,难以适应合约漏洞快速增加的趋势。
CN109492402A提出了一种基于规则引擎的智能合约安全评测方法,将智能合约通过语法分析器转换为合约语法树,针对各类合约漏洞的特征逐一编写对应的漏洞扫描代码块并作为漏洞规则置于漏洞规则库之中;漏洞规则引擎执行漏洞规则代码并遍历扫描合约语法树,实现合约漏洞检测。该方法的漏洞规则是用智能合约描述语言编写的漏洞检测代码,与SmartCheck和SlitherIR不同,实现了漏洞规则引擎代码与漏洞规则代码的分离,但仍需要针对各类漏洞的特征逐一编写漏洞检测代码块,作为检测规则。该方法存在以下问题:针对新的合约漏洞编写对应漏洞特征的检测代码,需要有专业的合约语言编程能力;另外,各类漏洞规则代码中包含了很多重复的特征匹配操作代码,该方法针对所有漏洞逐一编写对应的漏洞规则代码带来了很多重复代码编写工作,代价高且容易出错,影响到检测工具的可维护性、可扩展性。
综上所述,针对上述问题,本发明提出了基于元操作的智能合约漏洞分析检测方法,采用漏洞检测规则与检测代码分离的设计思想,将漏洞特征的基本匹配操作定义为元操作,漏洞检测规则描述为一组元操作的逻辑表达式,所有类型漏洞检测规则构成系统漏洞检测脚本文件,通过检测引擎解析执行漏洞检测规则从而实现合约漏洞检测。该方法实现了元操作(基本特征匹配操作代码)的重用,漏洞检测规则与检测引擎代码的分离,提高漏洞检测工具的可扩展性、可维护性。
发明内容
针对上述智能合约漏洞检测方法的不足,本发明提出了一种基于元操作的智能合约漏洞检测方法与系统,首先把智能合约转换为中间表示,把在中间表示上的基本匹配操作定义为元操作,作为合约代码漏洞检测的基本检测逻辑单元;将每种合约漏洞的检测规则表示为一组元操作的逻辑运算表达式,形成漏洞检测脚本文件。在合约漏洞检测系统中实现所有元操作的检测代码,以及合约漏洞检测规则的解析执行代码;系统通过解析执行合约漏洞检测规则脚本文件,判断待测智能合约是否存在某种漏洞特征。
本发明提出了一种基于元操作的智能合约漏洞检测方法,包括:规则描述阶段、规则解析阶段和规则执行阶段;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211634919.7/2.html,转载请声明来源钻瓜专利网。