一种智能合约重入攻击检测方法、系统及终端设备技术方案

技术编号:38921871 阅读:10 留言:0更新日期:2023-09-25 09:32
本申请提供一种智能合约重入攻击检测方法、系统及终端设备。所述方法对智能合约运行时输入的源代码文本执行预处理,得到预处理数据。以便于从预处理数据中提取智能合约的行为特征与结构特征。行为特征与结构特征可输入至重入攻击识别模型以通过重入攻击识别模型输出智能合约中存在重入攻击的概率。在重入攻击存在的概率超过阈值时,执行重入攻击防御策略。基于重入攻击识别模型,可以在智能合约运行时同步检测运行状态,提高智能合约运行时的安全性,也提高重入攻击识别效率。也提高重入攻击识别效率。也提高重入攻击识别效率。

【技术实现步骤摘要】
一种智能合约重入攻击检测方法、系统及终端设备


[0001]本申请涉及区块链
,尤其涉及一种智能合约重入攻击检测方法、系统及终端设备。

技术介绍

[0002]智能合约以编程的方式实现预定义的业务逻辑,并可以自动执行,因此可以提升基于智能合约的交易效率。但在智能合约运行的过程中,容易因重入攻击导致用户资产损失,且损失不可逆。
[0003]重入攻击指的是利用智能合约的递归调用漏洞,以多次调用合约中的同一函数的方式,使智能合约重复执行资产损失操作的攻击方式。因此在智能合约部署时,可以通过对智能合约的源代码进行检测以判断当前智能合约是否存在重入攻击。
[0004]但在智能合约的检测中,相关技术人员多采用人工代码审查的方式以判断智能合约的安全性。在代码量较多的情况下,审查过程容易出现疏忽,且效率低下。

技术实现思路

[0005]本申请提供一种智能合约重入攻击检测方法、系统及终端设备,以解决因智能合约的代码量较多,导致审查效率较低的问题。
[0006]第一方面,本申请提供一种智能合约重入攻击检测方法,包括:
[0007]对所述智能合约运行时输入的源代码文本执行预处理,得到预处理数据;
[0008]从所述预处理数据中提取所述智能合约的行为特征与结构特征;
[0009]将所述行为特征与所述结构特征输入至重入攻击识别模型,以得到所述重入攻击识别模型输出的所述智能合约中存在重入攻击的概率;
[0010]若所述概率超过概率阈值,则执行重入攻击防御策略。
[0011]在一些可行的实施例中,对所述智能合约运行时输入的源代码文本执行预处理的步骤包括:
[0012]对所述源代码文本执行文本分割,以将所述源代码文本转化为多个标记;所述标记包括变量名、关键词、运算符以及数据字面量;
[0013]基于所述标记和语法规则建立语法树;
[0014]基于所述语法树生成控制流图,和/或,数据流图。
[0015]在一些可行的实施例中,从所述预处理数据中提取所述智能合约的行为特征与结构特征,包括:
[0016]根据所述语法树中的节点提取函数调用图,以识别重入攻击路径;
[0017]和/或,从所述控制流图以及数据流图中提取数据流信息和控制流信息,以得到所述智能合约的执行逻辑与数据传输模式。
[0018]在一些可行的实施例中,从所述预处理数据中提取所述只能合约的行为特征与结构特征,还包括:
[0019]从所述预处理数据中提取所述智能合约包含的函数数量与变量数量;
[0020]计算与所述语法树的节点对应的函数的函数深度和函数宽度;
[0021]根据所述函数数量、变量数量、函数深度和函数宽度提取所述智能合约的整体结构信息。
[0022]在一些可行的实施例中,所述重入攻击识别模型还输出重入攻击的类型,所述方法还包括:
[0023]从所述源代码文本中提取包含重入攻击的代码片段或函数调用;
[0024]根据所述代码片段与函数调用识别重入攻击类型;
[0025]根据所述重入攻击类型执行重入攻击防御策略。
[0026]在一些可行的实施例中,所述方法还包括:
[0027]将在训练数据中提取的行为特征与结构特征输入至待训练的重入攻击识别模型,得到训练预测结果;所述训练数据包括智能合约运行时输入的正常源代码,以及带有重入攻击标记的异常源代码;
[0028]计算所述训练预测结果与训练数据对应的真实标签的误差;
[0029]若所述误差超过误差阈值,则更新所述待训练的重入攻击识别模型的配置参数,以优化待训练的重入攻击识别模型;
[0030]若所述误差低于所述误差阈值,则输出当前重入攻击识别模型以及当前重入攻击识别模型的配置参数。
[0031]在一些可行的实施例中,所述方法还包括:
[0032]计算所述重入攻击识别模型识别重入攻击的准确率、误报率和漏报率;
[0033]若所述准确率、误报率和漏报率中的任一个不符合预测期望值,则查找与所述误报率、漏报率关联的未识别重入攻击事件;所述预测期望值包括准确率期望值、误报率期望值和漏报率期望值;
[0034]查找与所述未识别重入攻击事件关联的智能合约的源代码文本;
[0035]将与未识别重入攻击事件关联的源代码文本作为训练数据输入至重入攻击识别模型,以优化所述重入攻击识别模型。
[0036]第二方面,本申请提供一种智能合约重入攻击检测系统,包括:预处理模块、特征提取模块、重入攻击检测模块、策略模块;
[0037]所述预处理模块用于对所述智能合约运行时输入的源代码文本执行预处理,得到预处理数据;
[0038]所述特征提取模块用于从所述预处理数据中提取所述智能合约的行为特征与结构特征;
[0039]所述重入攻击模块用于将所述行为特征与所述结构特征输入至重入攻击识别模型以得到所述智能合约中存在重入攻击的概率;
[0040]所述策略模块用于在所述概率超过阈值时,执行重入攻击防御策略。
[0041]在一些可行的实施例中,所述系统还包括训练模块,所述训练模块被配置为:
[0042]将训练数据中提取的行为特征与结构特征输入至所述重入攻击识别模型,得到重入攻击预测结果;所述训练数据包括智能合约运行时输入的正常源代码,以及带有重入攻击标记的异常源代码;
[0043]计算所述预测结果与训练数据对应的真实标签的误差;
[0044]若所述误差超过误差阈值,则更新所述重入攻击识别模型的配置参数,以优化所述重入攻击识别模型;
[0045]若所述误差低于所述误差阈值,则输出当前重入攻击识别模型以及当前重入攻击识别模型的配置参数。
[0046]第三方面,本申请提供一种终端设备,用于在区块链上部署智能合约以及监控所述智能合约,包括上述第二方面提供的智能合约重入攻击检测系统;所述检测系统用于监控智能合约运行时是否存在重入攻击,以及根据重入攻击的类型执行防御策略。
[0047]由上述
技术实现思路
可知,本申请提供一种智能合约重入攻击检测方法、系统及终端设备。所述方法对智能合约运行时输入的源代码文本执行预处理,得到预处理数据。以便于从预处理数据中提取智能合约的行为特征与结构特征。行为特征与结构特征可输入至重入攻击识别模型以通过重入攻击识别模型输出智能合约中存在重入攻击的概率。在重入攻击存在的概率超过阈值时,执行重入攻击防御策略。基于重入攻击识别模型,可以在智能合约运行时同步检测运行状态,提高智能合约运行时的安全性,也提高重入攻击识别效率。
附图说明
[0048]为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049]图1为本申请实施例提供的智能合约重入攻击检测方法流程示意图;
[0050]图2为本申本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能合约重入攻击检测方法,其特征在于,包括:对所述智能合约运行时输入的源代码文本执行预处理,得到预处理数据;从所述预处理数据中提取所述智能合约的行为特征与结构特征;将所述行为特征与所述结构特征输入至重入攻击识别模型,以得到所述重入攻击识别模型输出的所述智能合约中存在重入攻击的概率;若所述概率超过概率阈值,则执行重入攻击防御策略。2.根据权利要求1所述的检测方法,其特征在于,对所述智能合约运行时输入的源代码文本执行预处理的步骤包括:对所述源代码文本执行文本分割,以将所述源代码文本转化为多个标记;所述标记包括变量名、关键词、运算符以及数据字面量;基于所述标记和语法规则建立语法树;基于所述语法树生成控制流图,和/或,数据流图。3.根据权利要求2所述的检测方法,其特征在于,从所述预处理数据中提取所述智能合约的行为特征与结构特征,包括:根据所述语法树中的节点提取函数调用图,以识别重入攻击路径;和/或,从所述控制流图以及数据流图中提取数据流信息和控制流信息,以得到所述智能合约的执行逻辑与数据传输模式。4.根据权利要求2所述的检测方法,其特征在于,从所述预处理数据中提取所述智能合约的行为特征与结构特征,还包括:从所述预处理数据中提取所述智能合约包含的函数数量与变量数量;计算与所述语法树的节点对应函数的函数深度和函数宽度;根据所述函数数量、变量数量、函数深度和函数宽度提取所述智能合约的整体结构信息。5.根据权利要求1所述的检测方法,其特征在于,所述重入攻击识别模型还输出重入攻击的类型,所述方法还包括:从所述源代码文本中提取包含重入攻击的代码片段或函数调用;根据所述代码片段与函数调用识别重入攻击类型;根据所述重入攻击类型执行重入攻击防御策略。6.根据权利要求1所述的检测方法,其特征在于,还包括:将在训练数据中提取的行为特征与结构特征输入至待训练的重入攻击识别模型,得到训练预测结果;所述训练数据包括智能合约运行时输入的正常源代码,以及带有重入攻击标记的异常源代码;计算所述训练预测结果与训练数据对应的真实标签的误差;若所述误差超过误差阈值,则更新所述待训练的重入...

【专利技术属性】
技术研发人员:徐中强宋超张齐齐
申请(专利权)人:江苏通付盾信息安全技术有限公司
类型:发明
国别省市:

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

1