当前位置: 首页 > 专利查询>广州大学专利>正文

智能合约攻击检测方法及装置制造方法及图纸

技术编号:39060721 阅读:16 留言:0更新日期:2023-10-12 19:53
本发明专利技术提供了一种智能合约攻击检测方法及装置,涉及网络安全领域,其中,方法包括:在以太坊客户端Geth进行插桩,获得每笔交易的交易操作码序列;通过模拟交易涉及的智能合约在EVM的执行过程,获取交易操作码序列中每个操作码对应的参数特征;利用预训练模型分别对交易操作码序列和参数特征训练Embedding词向量,获得两个词向量索引字典;根据词向量索引字典将交易操作码序列和参数特征转换成交易操作码序列嵌入以及参数特征嵌入;利用融合特征后的嵌入矩阵对预设的DNN分类模型进行训练并检测攻击行为。以提高智能合约漏洞的攻击行为检测的准确率。为检测的准确率。为检测的准确率。

【技术实现步骤摘要】
智能合约攻击检测方法及装置


[0001]本文件涉及网络安全
,尤其涉及一种智能合约攻击检测方法及装置。

技术介绍

[0002]智能合约的使用逐渐成为了区块链应用的重要组成部分。智能合约能够自动执行合约中规定的条款和条件,而无需第三方机构进行确认或验证。然而,以太坊智能合约的安全性并没有受到太多的关注。目前由智能合约安全漏洞引发的案例并不少见,并对以太坊区块链的生态造成了重大影响。因此,智能合约安全的研究已经成为区块链技术发展过程中的一个重要领域。
[0003]近些年利用深度学习技术检测针对智能合约漏洞的攻击行为的研究很多,其中大多数都是采用智能合约相关的静态数据作为深度学习模型的训练数据,而利用动态数据检测智能合约中交易的攻击行为的研究很少,张等人提出了一种名为CBGRU的新型混合深度学习模型,该模型通过不同的深度学习模型提取智能合约源代码的特征,并结合这些特征进行智能合约漏洞检测;Mi等人提出了VSCL框架来自动检测区块链上智能合约中的漏洞,利用智能合约字节码的新特征向量生成技术将收集到的向量输入到基于度量学习的深度神经网络(DNN)中以获得检测结果。
[0004]上述方案中原始数据一般是整个智能合约源码或有智能合约源代码编译而来的字节码,在深度学习构建特征向量时会缺乏上下文关系;并且缺乏智能合约运行时的信息,进而影响针对智能合约漏洞的攻击行为检测的准确率。

技术实现思路

[0005]本专利技术提供了一种智能合约攻击检测方法及装置,旨在解决上述问题。
[0006]本专利技术实施例提供了一种智能合约攻击检测方法,包括:
[0007]S1、在以太坊客户端Geth进行插桩,对调用智能合约的交易进行重放,获得每笔交易的交易操作码序列;
[0008]S2、通过模拟交易涉及的智能合约在EVM的执行过程,获取交易操作码序列中每个操作码对应的参数特征;
[0009]S3、利用预训练模型分别对交易操作码序列和参数特征训练Embedding词向量,获得两个词向量索引字典;
[0010]S4、根据词向量索引字典将交易操作码序列和参数特征转换成交易操作码序列嵌入以及参数特征嵌入;
[0011]S5、通过拼接融合特征将交易操作码序列嵌入和参数特征嵌入进行连接,获得一个整体交易操作码序列嵌入矩阵;
[0012]S6、根据整体交易操作码序列嵌入矩阵对预设的DNN分类模型进行训练并检测攻击行为。
[0013]本专利技术实施例提供了一种智能合约攻击检测装置,包括:
[0014]操作码序列获取模块,用于在以太坊客户端Geth进行插桩,对调用智能合约的交易进行重放,获得每笔交易的交易操作码序列;
[0015]参数特征获取模块,用于通过模拟交易涉及的智能合约在EVM的执行过程,获取交易操作码序列中每个操作码对应的参数特征;
[0016]词向量索引字典模块,用于利用预训练模型分别对交易操作码序列和参数特征训练Embedding词向量,获得两个词向量索引字典;
[0017]特征嵌入模块,用于根据词向量索引字典将交易操作码序列和参数特征转换成交易操作码序列嵌入以及参数特征嵌入;
[0018]特征融合模块,用于通过拼接融合特征将交易操作码序列嵌入和参数特征嵌入进行连接,获得一个整体交易操作码序列嵌入矩阵;
[0019]攻击检测模块,用于根据整体交易操作码序列嵌入矩阵对预设的DNN分类模型进行训练并检测攻击行为。
[0020]采用本专利技术实施例,通过利用预训练的Word2Vec模型对交易操作码序列和参数特征进行嵌入向量构建,分别得到交易操作码序列嵌入和参数特征嵌入,将交易操作码序列嵌入和参数特征嵌入进行拼接,得到一个整体的嵌入矩阵,该嵌入矩阵既保留了交易操作码序列对栈操作的语义信息,也保留了参数特征的来源与关联信息,通过DNN训练最大化地学习智能合约交易中的攻击行为信息,提高检测智能合约交易中的攻击行为的准确率。本申请能实现在智能合约上链后,实时动态地检测交易攻击,最大程度地减少用户损失。
附图说明
[0021]为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1为本专利技术实施例的智能合约攻击检测方法的流程图;
[0023]图2为本专利技术实施例的智能合约攻击检测装置的示意图;
[0024]图3为本专利技术实施例的智能合约攻击检测方法的DNN分类模型架构图。
具体实施方式
[0025]为了使本
的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
[0026]方法实施例
[0027]根据本专利技术实施例,提供了一种智能合约攻击检测方法,图1为本专利技术实施例的智能合约攻击检测方法的流程图,根据图1所示,本专利技术实施例的智能合约攻击检测方法具体包括:
[0028]S1、在以太坊客户端Geth进行插桩,对调用智能合约的交易进行重放,获得每笔交
易的交易操作码序列;
[0029]S1中的插桩是指在以太坊客户端Geth源码中插入代码段,以收集每笔交易的详细数据。这些代码段主要被插入到EVM虚拟机操作码方法、执行交易涉及的类和函数中。收集到的交易信息包括:区块参数、参与交易的账户地址、调用的智能合约地址、转账金额、以及交易的输入数据;其中区块参数包括:区块高度、时间戳、根哈希、交易价格、nonce值。
[0030]S1中的重放是指对以太坊目前已执行过的所有调用智能合约的交易在已插桩的客户端Geth上重新执行,最终获取每笔交易的交易操作码序列和其他信息,具体过程包括:
[0031]本地或云服务器上安装并开启数据库;
[0032]在以太坊客户端Geth终端输入指令开启重放,插桩代码会自动处理底层交易字节码进而生成交易操作码序列,并将交易操作码序列和智能合约地址存入数据库。
[0033]S2、通过模拟交易涉及的智能合约在EVM的执行过程,获取交易操作码序列中每个操作码对应的参数特征;S2具体包括:
[0034]分析每个操作码对EVM栈的操作,比如PUSHn指令,将n个字节长度的操作数压入栈顶;ADD指令,弹出两个栈顶元素,并执行相加操作,随后将结果压入栈顶;其中PUSHn指令压入栈中的操作数是从外部获取的,本文将该类从外部获取数据并对栈进行操作的操作码对应的操作数自定义为一种参数类型,比如PUSHn指令对应的参数类本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约攻击检测方法,其特征在于,包括:S1、在以太坊客户端Geth进行插桩,对调用智能合约的交易进行重放,获得每笔交易的交易操作码序列;S2、通过模拟交易涉及的智能合约在EVM的执行过程,获取交易操作码序列中每个操作码对应的参数特征;S3、利用预训练模型分别对交易操作码序列和参数特征训练Embedding词向量,获得两个词向量索引字典;S4、根据词向量索引字典将交易操作码序列和参数特征转换成交易操作码序列嵌入以及参数特征嵌入;S5、通过拼接融合特征将交易操作码序列嵌入和参数特征嵌入进行连接,获得一个整体交易操作码序列嵌入矩阵;S6、根据整体交易操作码序列嵌入矩阵对预设的DNN分类模型进行训练并检测攻击行为。2.根据权利要求1所述的方法,其特征在于,所述在以太坊客户端Geth进行插桩具体包括:在以太坊客户端Geth源码中插入代码段,以收集每笔交易的详细数据;所述代码段被插入到EVM虚拟机操作码方法、执行交易涉及的类和函数中,收集到的所述交易的详细包括:区块参数、参与交易的账户地址、调用的智能合约地址、转账金额以及交易的输入数据。3.根据权利要求1所述的方法,其特征在于,所述对所有交易进行重放,获得每笔交易的交易操作码序列具体包括:对以太坊目前已执行过的所有调用智能合约的交易在已插桩的客户端Geth上重新执行,最终获取每笔交易的交易操作码序列和其他信息,具体过程包括:在本地或云服务器上安装并开启数据库;在以太坊客户端Geth终端输入指令开启重放,插桩代码自动处理底层交易字节码进而生成交易操作码序列,并将交易操作码序列和智能合约地址存入数据库。4.根据权利要求1所述的方法,其特征在于,所述S2具体包括:定义操作码对应的参数类型,通过模拟交易涉及的智能合约在EVM的执行过程,获取交易操作码序列中每个操作码对应的参数特征。5.根据权利要求1所述的方法,其特征在于,所述S3具体包括:搭建Word2Vec预训练模型,对所述Word2Vec预训练模型采用skip

gram算法并使用负采样进行模型优化;将交易操作码序列和参数特征输入Word2Vec预训练模型,获取交易操作码序列和参数特征的词向量索引字典。6.一种智能合约攻击检测装置,其特征在于,包括:操作码序列获取模块,用于在以太坊客户端Geth进...

【专利技术属性】
技术研发人员:王国军翟广鑫李培强李旭彬顾婉仪张雨恒
申请(专利权)人:广州大学
类型:发明
国别省市:

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

1