System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及网络安全,具体为基于图神经网络的智能合约漏洞检测方法、系统和设备。
技术介绍
1、传统的智能合约漏洞检测方法包括模糊测试、符号执行和形式化验证为三种最常用的技术。模糊测试是一种较为高效的软件分析技术,其核心思想是为程序提供大量测试样例,在程序执行过程中监控程序异常行为,以发现程序漏洞;符号执行是一种自动化漏洞检测技术,目前被广泛用于智能合约的漏洞检测;形式化验证技术是通过严谨可验证的描述语言或逻辑来描述程序,以便对其进行严格的数学推理和验证,从而获得漏洞检测结果。然而,这些检测方法存在以下不足:1)高误报率,可能产生大量的误报,即错误地标记一些合法代码或行为为错误或漏洞;2)易发生状态空间爆炸和执行路径指数级增长,覆盖漏洞种类不全面;3)自定义漏洞检测的建模需要一定的人工经验,切探测出的漏洞不一定是实际可达的。上述出现不足造成目前智能合约的检测难度大,检测结果的精确率低。
技术实现思路
1、本专利技术的目的是提供一种基于图神经网络的智能合约漏洞检测方法、系统和设备。
2、本专利技术技术方案如下:
3、一种基于图神经网络的智能合约漏洞检测方法,包括如下操作:
4、s1、获取待检智能合约的字节码,所述字节码经反编译处理,得到操作码序列;基于所述操作码序列,得到操作码基本块和控制流图;获取所述操作码基本块中的特征指令,基于所述特征指令,得到特征指令向量;
5、s2、所述特征指令向量经语义特征提取处理,得到语义特征向量;基于获取
6、s3、所述节点特征向量集中,每个节点特征向量经邻居节点信息聚合处理,得到的所有节点聚合特征向量,形成节点聚合特征向量集;所述节点聚合特征向量集中,每个节点聚合特征向量经自注意力处理后,得到的所有节点注意力特征经聚合处理,得到图特征向量;
7、s4、所述图特征向量经分类处理,得到漏洞检测结果。
8、所述s3中邻居节点信息聚合处理的操作具体为:获取所述节点特征向量,与当前邻居节点节点特征向量的关联度,得到当前邻居节点关联度;基于所述当前邻居节点关联度,以及所有邻居节点关联度,得到当前邻居节点关联度注意力系数;所述节点特征向量,与所有邻居节点关联度注意力系数分别进行相乘后,进行求和处理,得到所述节点聚合特征向量。
9、所述s3中得到图特征向量的操作具体为:获取所述节点聚合特征向量的潜在权重,得到节点潜在权重;所述节点潜在权重经归一化处理,得到节点规范化注意权重;所述节点规范化注意权重与节点聚合特征向量相乘,得到节点注意力特征;所有的节点注意力特征经求和处理,得到所述图特征向量。
10、所述s1中得到特征指令向量的操作具体为:所述特征指令经分词和嵌入初始化处理,得到所述特征指令向量。
11、所述s1中所述特征指令包括:算术指令、和/或堆栈指令、和/或环境指令、和/或控制指令、和/或区块链系统指令。
12、所述s4中分类处理的操作具体为:将所述图特征向量,与分类数据库中的标准图特征向量进行特征匹配,获取匹配值;当匹配值大于阈值后,输出对应标准图特征向量的漏洞属性,得到所述漏洞检测结果。
13、所述s2中语义特征提取处理的操作可通过如下公式实现:
14、zt=σ(wz·[ht-1,xt]),
15、rt=σ(wr·[ht-1,xt]),
16、
17、
18、xt为所述特征指令向量,ht-1为t-1时刻的语义特征向量,wz为更新门权重矩阵,σ()为sigmod函数,zt为t时刻的更新门输出,wr为重置门权重矩阵,rt为t时刻的重置门输出,tanh()双曲正切函数,⊙为元素乘法,为t时刻的中间语义特征向量,ht为t时刻的语义特征向量。
19、一种基于图神经网络的智能合约漏洞检测系统,包括:
20、特征指令向量生成模块,用于获取待检智能合约的字节码,所述字节码经反编译处理,得到操作码序列;基于所述操作码序列,得到操作码基本块和控制流图;获取所述操作码基本块中的特征指令,基于所述特征指令,得到特征指令向量;
21、节点特征向量集生成模块,用于所述特征指令向量经语义特征提取处理,得到语义特征向量;基于获取的所述控制流图中基本块之间的边关系,得到关系特征向量;所述语义特征向量与关系特征向量经融合处理后,进行对应基本块的分割处理,得到的所有节点特征向量,形成节点特征向量集;
22、图特征向量生成模块,用于所述节点特征向量集中,每个节点特征向量经邻居节点信息聚合处理,得到的所有节点聚合特征向量,形成节点聚合特征向量集;所述节点聚合特征向量集中,每个节点聚合特征向量经自注意力处理后,得到的所有节点注意力特征经聚合处理,得到图特征向量;
23、漏洞检测结果生成模块,用于所述图特征向量经分类处理,得到漏洞检测结果。
24、一种基于图神经网络的智能合约漏洞检测设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现上述的基于图神经网络的智能合约漏洞检测方法。
25、一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现上述的基于图神经网络的智能合约漏洞检测方法。
26、本专利技术的有益效果在于:
27、本专利技术提供的一种基于图神经网络的智能合约漏洞检测方法,将基于操作码基础块中的特征指令得到的特征指令向量,进行语义特征提取处理,得到语义特征向量;同时,提取控制流图中基本块之间的边关系,得到关系特征向量;然后将语义特征向量与关系特征向量进行融合后,根据基本块的位置进行分割,得到每个基本块对应的节点特征向量;接着,将节点特征向量集进行邻居节点信息聚合和自注意力处理,获得的图特征向量经分类处理,得到漏洞检测结果;该检测方法具有较高的精确率、召回率和f1分数。
本文档来自技高网...【技术保护点】
1.一种基于图神经网络的智能合约漏洞检测方法,其特征在于,包括如下操作:
2.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述S3中邻居节点信息聚合处理的操作具体为:
3.根据权利要求1所述的1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述S3中得到图特征向量的操作具体为:
4.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述S1中得到特征指令向量的操作具体为:所述特征指令经分词和嵌入初始化处理,得到所述特征指令向量。
5.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述S1中所述特征指令包括:算术指令、和/或堆栈指令、和/或环境指令、和/或控制指令、和/或区块链系统指令。
6.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述S4中分类处理的操作具体为:
7.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述S2中语义特征提取处理的操作可通过如下公式实现:
9.一种基于图神经网络的智能合约漏洞检测设备,其特征在于,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1-7任一项所述的基于图神经网络的智能合约漏洞检测方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的基于图神经网络的智能合约漏洞检测方法。
...【技术特征摘要】
1.一种基于图神经网络的智能合约漏洞检测方法,其特征在于,包括如下操作:
2.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述s3中邻居节点信息聚合处理的操作具体为:
3.根据权利要求1所述的1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述s3中得到图特征向量的操作具体为:
4.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述s1中得到特征指令向量的操作具体为:所述特征指令经分词和嵌入初始化处理,得到所述特征指令向量。
5.根据权利要求1所述的基于图神经网络的智能合约漏洞检测方法,其特征在于,所述s1中所述特征指令包括:算术指令、和/或堆栈指令、和/或环境指令、和/或控制指令、和/或区块链系统指令。
【专利技术属性】
技术研发人员:赵相福,甄子贤,张金凯,王奕辰,陈海悦,何龙,
申请(专利权)人:烟台大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。