[发明专利]一种智能合约漏洞检测方法在审
申请号: | 202310137041.4 | 申请日: | 2023-02-09 |
公开(公告)号: | CN116010975A | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 孙建国;常景辉;田野 | 申请(专利权)人: | 杭州领巍信息技术有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06N3/08;G06N3/0464 |
代理公司: | 杭州浙科专利事务所(普通合伙) 33213 | 代理人: | 陈洁 |
地址: | 311231 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 智能 合约 漏洞 检测 方法 | ||
本发明属于区块链智能合约安全检测领域,公开了一种智能合约漏洞检测方法,包括:反编译及CFG构建,经过反编译的字节码会生成EVM指令及相应的参数。之后根据反编译后的EVM指令重建控制流图CFG。将EVM指令构建数据集,并利用Transformer模型的编码器进行训练。将CFG图中节点信息输入模型中,经过模型的处理得到节点信息的特征表示向量。构建事件的时序图神经网络,将图结构以及节点的信息表征向量作为输入端传入神经网络中;经过信息传递和更新,并根据节点的时序信息构造事件序列将图信息进行表示,最终进行漏洞的检测。进行模型效果评估。本发明使模型具有更好的并行性,能有效的将CFG图中的节点信息进行表征。
技术领域
本发明属于区块链智能合约安全检测领域,尤其涉及一种智能合约漏洞检测方法。
背景技术
近年来,以太坊中智能合约数量不断增多,带来巨大经济利益的同时也潜藏着高危的安全风险。区块链技术具有不可篡改,去中心化等特点,这很容易导致区块链数据受到攻击和恶意传播,但对区块链平台进行攻击难度相对较高并且资源耗费巨大。然而,由于智能合约运行在不具有可信计算环境的底层基础设施上,并且具有区别于传统程序的特性,其在本身安全性上存在许多影响深远的漏洞,所以对智能合约的攻击相对简单。并且智能合约被部署上线后就无法进行修改,一旦后期发现了智能合约存在安全风险,也不能对其进行更改修复,相当于直接将安全漏洞暴露给攻击者,且无法阻止其对智能合约的恶意利用。如何在智能合约部署前对其进行漏洞检测,已经成为了区块链开发人员密切关注的问题。
目前主要的智能合约漏洞检测手段有:形式化验证、模糊测试、符号执行等方法,具体分析:形式化方法的优点在于整个验证过程具有数学逻辑上的完备性,能保证100%的检测精度,缺点在于需要人工参与建模和推理过程,效率十分低下;模糊测试生成用例的随机性,其所能涵盖的执行路径有限,路径覆盖率低,很难发现潜在的漏洞;基于符号执行的静态漏洞检测工具多数依赖于已有的专家规则,无法识别复杂逻辑漏洞且误报率较高。
发明内容
本发明的目的是为解决智能合约漏洞检测技术手段单一,提供一种基于事件的时序图神经网络与Transformer相结合的漏洞检测方案;通过反编译字节码生成控制流图,利用Transformer的编码器将语义特征即节点特征转换为向量表示,并结合事件的时序图神经网络捕获语义信息和程序范围内的控制流时序信息,从而实现高精度的智能合约漏洞检测。
为解决上述技术问题,本发明的一种智能合约漏洞检测方法的具体技术方案如下:
一种智能合约漏洞检测方法,包括如下步骤:
步骤1:反编译及CFG构建,经过反编译的字节码生成EVM指令及相应的参数,之后根据反编译后的EVM指令重建控制流图CFG;
步骤2:将EVM指令构建数据集,并利用Transformer模型的编码器进行训练;
步骤3:将CFG图中节点信息输入Transformer模型中,经过模型的处理得到节点信息的特征表示向量;
步骤4:构建事件的时序图神经网络,将图结构以及节点的信息表征向量作为输入端传入神经网络中;经过信息传递和更新,并根据节点的时序信息构造事件序列将图信息进行表示,最终进行漏洞的检测;
步骤5:通过目标检测指标进行模型效果评估。
进一步地,所述步骤1包括如下具体步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州领巍信息技术有限公司,未经杭州领巍信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310137041.4/2.html,转载请声明来源钻瓜专利网。