基于运行时信息的可重入漏洞检测方法及系统技术方案

技术编号:37350340 阅读:26 留言:0更新日期:2023-04-22 21:49
本发明专利技术公开了基于运行时信息的可重入漏洞检测方法及系统,该方法包括:通过按需插桩方法收集智能合约运行时信息;根据漏洞检测算法对智能合约运行时信息进行动态遍历检测处理,得到检测结果;根据检测结果判断是否存在可重入漏洞,输出判断结果。该系统包括:字节码解析器模块、交易信息收集器模块、攻击探测器模块和交易管理器模块。通过使用本发明专利技术,能够通过提升智能合约检测覆盖率实现高效、准确地检测出可重入漏洞并进一步降低误报率。本发明专利技术作为基于运行时信息的可重入漏洞检测方法及系统,可广泛应用于区块链智能合约缺陷检测技术领域。术领域。术领域。

【技术实现步骤摘要】
基于运行时信息的可重入漏洞检测方法及系统


[0001]本专利技术涉及区块链智能合约缺陷检测
,尤其涉及基于运行时信息的可重入漏洞检测方法及系统。

技术介绍

[0002]以太坊首次将智能合约与区块链技术结合,标志着区块链2.0时代的开启,区块链具有不可篡改的特性,具有漏洞的智能合约一旦被部署上链后便无法修复,具有重大的漏洞隐患,智能合约的本质是一段代码,其在以太坊上运行,智能合约的安全性制约着以太坊的发展;现有的智能合约检测工具大部分是离线检测工具,这类型的工具往往需要智能合约的源码来进行漏洞检测,然而以太坊上的智能合约有30%是不开源的,即离线工具无法检测这部分的合约的问题,目前主流的离线检测工具主要采用的方法有符号执行法、模糊测速法、中间表示法,符号执行利用符号代替了智能合约中代码的变量,即变量符号化,分析程序的时候,把符号作为程序的输入,遇到分支语句时,会把分支条件添加到相应的路径约束中,并探索每一个分支,当运行到目标代码处时,可以得到相应的路径约束,再利用约束求解器求解,最终得到该约束条件下到达目标代码时的具体值。将程序的结果条件换本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于运行时信息的可重入漏洞检测方法,其特征在于,包括以下步骤:通过按需插桩方法收集智能合约运行时信息;根据漏洞检测算法对智能合约运行时信息进行动态遍历检测处理,得到检测结果;根据检测结果判断是否存在可重入漏洞,输出判断结果。2.根据权利要求1所述基于运行时信息的可重入漏洞检测方法,其特征在于,所述通过按需插桩方法收集智能合约运行时信息这一步骤,其具体包括:通过API接口获取智能合约的外部交易信息;根据智能合约的调用指令确定智能合约的插桩点;对智能合约的插桩点进行插桩处理,收集智能合约的内部交易信息;对智能合约的内部交易信息进行封装处理,构建四元组内部交易信息;整合智能合约的外部交易信息与四元组内部交易信息,得到智能合约运行时信息。3.根据权利要求2所述基于运行时信息的可重入漏洞检测方法,其特征在于,所述四元组内部交易信息的表达式具体如下所示:tx
info
=<CallType,From,To,Value>上式中,tx
info
表示四元组内部交易信息,CallType表示交易类型,From表示调用者地址,To表示被调用者地址,Value表示交易中转移的以太数目。4.根据权利要求3所述基于运行时信息的可重入漏洞检测方法,其特征在于,所述根据漏洞检测算法对智能合约运行时信息进行动态遍历检测处理,得到检测结果这一步骤,其具体包括:根据智能合约运行时信息构建智能合约调用树;对智能合约调用树的孩子节点进行遍历检测处理,得到第一检测结果;根据第一检测结果判断该智能合约交易是否使用预设指令进行转账;判断到该智能合约交易使用预设指令进行转账,继续执行该智能合约的交易;判断到该智能合约交易未使用预设指令进行转账,对智能合约调用树的祖先节点进行遍历检测处理,得到第二检测结果;根据第二检测结果判断该智能合约交易是否存在调用环;判断到该智能合约交易不存在调用环...

【专利技术属性】
技术研发人员:柳毅邓智丹罗玉凌捷孙宇平
申请(专利权)人:广东工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1