掌桥专利:专业的专利平台
掌桥专利
首页

一种基于改进图卷积神经网络的智能合约漏洞检测方法

文献发布时间:2024-04-18 19:58:26


一种基于改进图卷积神经网络的智能合约漏洞检测方法

技术领域

本发明涉及区块链安全检测领域,具体为一种基于改进图卷积神经网络的智能合约漏洞检测方法。

背景技术

近年来,加密货币和区块链技术在工业界和学术界都得到了快速发展。区块链是一种交易媒介,它利用精心设计的共识协议来确保交易安全,并控制交易单元的创建。目前,数以万计的智能合约部署在各类区块链平台上,它们总是涉及价值数百万美元的加密货币。因此,在智能合约下管理如此多的财富必然会引起黑客的注意。例如,2016年著名的“The Dao”事件中,攻击者利用智能合约中的重入漏洞绕过正常逻辑的执行,导致了6000万美元的损失。根据SlowMist统计,截至目前,区块链攻击事件造成的资金损失超300亿美元,其中很多都是由智能合约的漏洞造成的。因此,智能合约的漏洞研究得到多了广泛的关注。

传统的智能合约漏洞检测方法主要受到代码漏洞检测方法的启发,如Oyente,Mythril使用符号执行的方式进行漏洞检测,Securify提出使用形式化验证的方式进行漏洞检测,SmartCheck提出使用静态分析的方式进行漏洞检测。以上工具虽然取得了较为显著的效果,但存在一些局限性:对智能合约的分析主要依赖专家的逻辑规则,当发生新漏洞时,需要安全专家更新逻辑规则以适应新的漏洞;由于整个检测过程是人为设定的,检测成本较高;传统的智能合约检测工具准确度偏低。

随着深度学习技术的发展,神经网络模型在众多领域取得了巨大的成功;然而,当前仍缺少基于深度学习的智能合约漏洞检测方法;因此结合神经网络模型,提出一种智能合约漏洞检测方法具有重要的理论意义和使用价值。

发明内容

本发明提供一种基于改进图卷积神经网络的智能合约漏洞检测方法,该方法通过提取智能合约图特征,训练分类器模型,从而实现智能合约漏洞自动化检测,该方法包括如下步骤:

收集并构建智能合约源码漏洞数据集;

对数据集中的智能合约源码进行预处理;

利用智能合约图生成工具,从智能合约中生成节点和边,转换成对应的智能合约图形式;

利用智能合约图规范化工具,将不同合约图规范成统一的图结构;

构建改进图卷积神经网络模型,提取高维特征向量;

构建分类器模型,将高维特征向量输入分类器模型中,输出智能合约漏洞检测结果。

进一步地,所述收集并构建智能合约源码漏洞数据集具体为:从网络中收集以太坊中的智能合约源码以及经过验证的漏洞案例,利用开源漏洞检测工具标注检测并标注漏洞,从而构建智能合约漏洞数据集。

进一步地,所述对数据集中的智能合约源码进行预处理具体为:为了减少无关因素对漏洞检测的影响,移除智能合约源码中与漏洞分析不相关的内容。

进一步地,所述利用智能合约图生成工具,从智能合约中生成节点和边,转换成对应的智能合约图形式具体为:考虑到智能合约代码关键程度的不同,利用智能合约图生成工具生成节点和边,从而构造智能合约图结构,包括节点和边。

合约图的节点包括核心节点、次要节点以及fallback节点。核心节点和次要节点分别表示在智能合约漏洞检测中起关键作用的函数和关键变量的调用,fallbcak节点则是针对智能合约的fallback函数进行建模。

合约图的边则根据逻辑语义分为控制流边、数据流边、前向边以及fallback边。

进一步地,所述利用智能合约图规范化工具,将不同合约图规范成统一图结构具体为:智能合约图生成工具生成合约图的节点众多,形状各异,严重阻碍了图卷积神经网络的训练;因此,利用智能合约图规范化工具删除次要节点和fallbcak节点,并将其特征传递给最近的核心节点,并且如果次要节点有多个最近的核心节点,则将其特征传递给所有核心节点。

进一步地,所述构建改进图卷积神经网络模型,提取高维特征向量具体为:构建一种改进图卷积神经网络模型,将规范化合约图节点特征和边特征输入到图卷积神经网络中,提取合约图的高维特征向量。

进一步地,所属构建分类器模型,将高维特征向量输入分类器模型中,输出智能合约漏洞检测结果,具体为:构建包含多个全连接层和激活函数的分类器模型;将图卷积神经网络提取的高维特征向量输入到分类器模型中进行训练;利用分类器模型实现智能合约的漏洞检测。

本发明的有溢之处在于:本发明将智能合约源代码转换成合约图形式,突出了对漏洞检测非常有帮助的函数调用关系,同时将合约图进行规范化处理,突出了核心节点的关键作用,有利于图神经网络学习智能合约图特征。

本发明提出的改进图卷积神经网络利用邻接矩阵的平方增加了规范化图中节点的连通性,又将图卷积神经网络的层数扩展到两层,可以学习更深层的合约图特征,提高了漏洞检测准率。

本发明适用于智能合约漏洞检测领域。

本发明适用于智能合约漏洞检测领域。

附图说明

图1为本发明智能合约漏洞检测方法的流程示意图。

图2为本发明智能合约图生成和规范化示意图。

具体实施方式

为使本发明的技术方案及优点表述得更加清晰,下面结合附图对本发明实施方式中的技术方案进行进一步详细地描述。

1.本发明基于改进图卷积神经网络的智能合约漏洞检测方法,利用开源漏洞检测工具、智能合约图生成工具、智能合约图规范化工具、图卷积神经网络等工具实现智能合约图特征的训练与提取以及检测结果地输出,其过程如图1流程图所示。

2.本实施例以重入漏洞为例,提取智能合约源代码相应的智能合约规范化图,如图2所示,具体实现过程:利用智能合约图生成工具,将智能合约源码转化为合约图形式,考虑到智能合约代码中不同元素的功能和重要程度不同,将节点分为核心节点、次要节点和fallback节点,分别用

为了捕捉节点之间丰富的语义依赖关系,构建了四种类型的有向边:数据流边是变量访问或修改的代码;控制流边是具有条件控制的代码(如if、require);前向边表示代码中的自然顺序关系;fallback边模拟fallback函数与攻击函数的关系。图2(b)中的边类型如表1所示:

表1

智能合约图生成工具生成合约图的节点众多,形状各异,严重阻碍了图卷积神经网络的训练;利用智能合约图规范化工具,将合约图中的次要节点和fallback节点的特征融合到最近的核心节点上,并且如果次要节点有多个最近的核心节点,则将其特征传递给所有核心节点;与次要节点、fallback节点连接的边则连接到对应的核心节点上。

经过图规范化,核心节点的特征由三部分组成:核心节点本身的特征、相邻次要节点的特征以及相邻fallback节点的特征,将规范后的核心节点重新定义为

3.构建改进图卷积神经网络模型,实现漏洞检测,具体过程如下:

图神经网络是将卷积神经网络应用于图结构,开发了一种逐层传播网络,其图卷积公式为:

其中

通过训练改进后的图卷积神经网络,提高模型的拟合度;将规范化合约图节点特征和边特征输入到图卷积神经网络中,提取合约图的高维特征向量;构建包含多个全连接层和激活函数的分类器模型;将图卷积神经网络提取的高维特征向量输入到分类器模型中进行训练;利用分类器模型实现智能合约的漏洞检测(若输出结果为“1”,合约存在漏洞;输出结果为“0”,合约无漏洞)。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明;熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动;因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

相关技术
  • 一种基于图神经网络的智能合约漏洞检测方法
  • 一种基于图神经网络的多特征融合区块链智能合约漏洞检测方法、装置、计算机及存储介质
技术分类

06120116495625