【技术实现步骤摘要】
一种基于图神经网络的智能合约重入性漏洞检测的方法
本专利技术属于区块链智能合约安全漏洞检测
,具体涉及一种基于图神经网络的智能合约重入性漏洞检测的方法。
技术介绍
智能合约是区块链的核心技术之一,是多方参与场景中的共识规则,更是智能合约是价值传递的中枢。之所以区块链出现以后安全问题变得前所未有的重要,是因为智能合约实现的是一种价值传递,区块链上的每一个数字都是价值,每个漏洞导致的数字变化,其背后就是巨额的价值损失。2016年6月TheDAO安全漏洞,导致5000万美元的损失;2017年7月Parity多签名钱包两次安全漏洞,分别导致3000万美元、1.52亿美元的损失。2018年4月BEC代币被盗事件,由于一行代码的安全漏洞引发其9亿美元市值几乎归零。近年来,由于智能合约安全问题造成大量财务损失,智能合约漏洞检测已引起广泛关注。现有智能合约漏洞检测的方法依靠专家手动定义的严格规则(或模拟),是劳动密集型且不可扩展的。更重要的是,专家制定的规则容易出错,同时容易被攻击者攻破。重入性漏洞是最常见的智能合约漏洞之一, ...
【技术保护点】
1.一种基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,具体包括如下步骤:/n(1)收集智能合约源码数据集;/n(2)由智能合约源码数据集抽取构建图结构模型;/n(3)对所述图结构模型进行标准化处理;/n(4)构建时间消息流的图神经网络,将标准化处理后的图结构模型作为输入数据传入图神经网络;/n(5)由图神经网络训练、学习得到检测模型,并使用所述的检测模型检测智能合约重入性漏洞。/n
【技术特征摘要】
1.一种基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,具体包括如下步骤:
(1)收集智能合约源码数据集;
(2)由智能合约源码数据集抽取构建图结构模型;
(3)对所述图结构模型进行标准化处理;
(4)构建时间消息流的图神经网络,将标准化处理后的图结构模型作为输入数据传入图神经网络;
(5)由图神经网络训练、学习得到检测模型,并使用所述的检测模型检测智能合约重入性漏洞。
2.根据权利要求1所述的基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(2)使用自动抽图工具把智能合约源码转变为图结构模型,具体抽取步骤包括:
(a)智能合约源码的预处理,删除智能合约源码中所有非ASCII码字符和注释,然后,将所有调用都展开到非内置函数,使所述智能合约源码转换为一段顺序代码,同时,对所述顺序代码贴标签,即重入性和非重入性两种标签;
(b)构建节点结构,根据不同程序中元素的重要性不同,从所述顺序代码中提取三类节点:核心节点、普通节点、fallback节点;
(c)构建边结构,根据节点间在时间上的彼此关系,构造四种类型的边,即控制流、数据流、正向边、fallback边;
(d)特征提取,提取节点和边的特征。
3.根据权利要求2所述基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(b)包括:
节点模型的构造,对call.value进行直接或间接调用的节点为核心节点;
其中,withdraw函数包括一个call.value的直接调用,若函数直接或通过调用链调用withdraw函数,将其定义为间接withdraw函数;直接调用源程序S中的call.value,为核心节点,定义其类型为C;对于节点调用withdraw函数或间接调用withdraw函数,节点构造为核心节点,并定义该节点的类型分别为W和I,即共构造三种核心节点,C、W和I;
普通节点为用于建模关键变量,用户余额、奖励标志为普通节点,定义类型为N;
fallback节点,定义类型为F,可以激发攻击者合同中的fallback函数,fallback函数可以与被测函数交互。
4.根据权利要求2所述基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(c)还包括:
边模型的构造,根据节点间在时间上的彼此关系,构造四种类型的边结构,即控制流、数据流、正向边、fallback边;
控制流,为条件语句或安全性句柄语句的控件语义;
数据流,用于跟踪变量的用法,涉及对变量的访问、修改;
正向边,用于描述功能代码中的自然顺序关系,正向边线连接两个相邻的顺序节点;
fallback边,用于显示地建模中智能合约的fallback机制,构造两个fallback边以激发被...
【专利技术属性】
技术研发人员:黄步添,俞之贝,刘成永,苑振霞,焦颖颖,罗春凤,黄媛媛,
申请(专利权)人:杭州云象网络技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。