CN112364304B - 一种区块链的日蚀攻击检测方法及装置 - Google Patents
一种区块链的日蚀攻击检测方法及装置 Download PDFInfo
- Publication number
- CN112364304B CN112364304B CN202011306835.1A CN202011306835A CN112364304B CN 112364304 B CN112364304 B CN 112364304B CN 202011306835 A CN202011306835 A CN 202011306835A CN 112364304 B CN112364304 B CN 112364304B
- Authority
- CN
- China
- Prior art keywords
- data packet
- error
- moment
- vector
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明公开了一种区块链的日蚀攻击检测方法及装置,其中方法为:针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量;根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量;根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。上述方法应用于金融科技(Fintech)时,不会因为某一个数据包的预测准确与否影响全局判断,减少了日蚀攻击误报的几率。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种区块链的日蚀攻击检测方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。目前金融科技常和区块链(blockchain)领域结合。但运用区块链时也存在一些隐患,区块链中可能存在日蚀攻击,其表现形式为攻击节点侵占受害人节点的全部对外网络连接,受害人节点无法获取到正确的区块和交易消息。因此,及时检验出区块链中的日蚀攻击是区块链可靠性的重要指标。
目前检验区块链的日蚀攻击方式中,通过区块链节点收到的正常数据包和攻击数据包来训练日蚀攻击探测器。之后便通过日蚀攻击探测器对单个数据包进行判断,当有一个数据包被判断为攻击数据包时,就认定为攻击发生。然而,数据包非常多,只要有一个数据包判断错误,就会产生误报。因此,目前日蚀攻击探测器容易产生误报是一个亟待解决的问题。
发明内容
本发明提供一种区块链的日蚀攻击检测方法及装置,解决了现有技术中目前日蚀攻击探测器容易产生误报的问题。
第一方面,本发明提供一种区块链的日蚀攻击检测方法,包括:针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量;M,N均为正整数,且M小于N;根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量;根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。
上述方式下,每个误差向量是基于已训练LSTM,且根据预测的数据包特征向量和经M个第二时刻的M个实际的数据包特征向量得到,因此每个误差向量也是考虑了时序因素以及M个实际的数据包特征向量得到的,从而能够较为准确地评估预测的数据包特征向量与实际的数据包特征向量之间的误差,且通过综合考虑连续N个第一时刻的N个误差向量,一同确定所述区块链节点是否受到日蚀攻击,由于M小于N,即用于预测数据包特征向量的数据包个数小于判断日蚀攻击的数据包个数,即便连续M个数据包受到日蚀攻击,导致预测的数据包特征向量不准确,也能检验出N个数据包受到了日蚀攻击,从而根据所述N个第一时刻的N个误差向量宏观上判断区块链节点是否受到日蚀攻击,不会因为某一个数据包的预测准确与否影响全局判断,减少了日蚀攻击误报的几率。
可选的,所述根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击,包括:根据所述N个误差向量,获得所述N个误差向量的平滑误差向量;根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击。
上述方法中,指数平滑法适用于时间序列的趋势预测,使得到的平滑误差向量能够将时间变化的因素考虑进去,从而按照预设统计分析规则分析,进一步地合理分析向量误差,更准确地确定所述区块链节点是否受到日蚀攻击。
可选的,所述根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击,包括:根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值;根据所述误差评估值和所述误差阈值,确定所述区块链节点是否受到日蚀攻击。
上述方法中,根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值,也就是说,误差评估值和误差阈值并不是固定了的,而是通过考虑了具体时序因素的所述各维度特征值来确定的,对于不同的所述各维度特征值都不同,从而可以自适应地根据所述各维度特征值来确定,避免了固定的规则导致日蚀攻击判断不准确。
可选的,所述根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值,包括:将所述各维度特征值的加权平均值,作为所述误差评估值;根据所述各维度特征值的均值和所述各维度特征值的标准差,按照所述预设统计分析规则中的预设公式,确定所述误差阈值。
上述方式下,通过对所述各维度特征值加权平均,将各维度特征的重要程度和具体值都考虑进去,综合表征了所述各维度特征,并且还考虑了所述各维度特征值的分布特性,从而更准确地确定所述误差评估值和所述误差阈值。
可选的,所述已训练LSTM按照以下方式迭代训练得到:获取第四时刻之前多个第三时刻实际的数据包特征向量;基于所述多个第三时刻实际的数据包特征向量和训练中的LSTM,得到所述第四时刻预测的数据包特征向量;根据所述第四时刻预测的数据包特征向量和所述第四时刻实际的数据包特征向量,更新所述训练中的LSTM;若所述训练中的LSTM满足预设训练终止条件,则将所述训练中的LSTM作为所述已训练LSTM;否则更新所述第四时刻和所述多个第三时刻,返回“获取第四时刻之前多个第三时刻实际的数据包特征向量”的步骤。
可选的,数据包特征向量的特征包括:数据包的逻辑距离和数据包类型。
可选的,所述区块链节点所在的区块链为以太坊。
第二方面,本发明提供一种区块链的日蚀攻击检测装置,包括:向量提取模块,用于针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量;M,N均为正整数,且M小于N;以及用于根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量;处理模块,用于根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。
可选的,所述处理模块具体用于:根据所述N个误差向量,按照指数平滑法,获得所述N个误差向量的平滑误差向量;根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击。
可选的,所述处理模块具体用于:根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值;根据所述误差评估值和所述误差阈值,确定所述区块链节点是否受到日蚀攻击。
可选的,所述处理模块具体用于:将所述各维度特征值的加权平均值,作为所述误差评估值;根据所述各维度特征值的均值和所述各维度特征值的标准差,按照所述预设统计分析规则中的预设公式,确定所述误差阈值。
可选的,所述已训练LSTM按照以下方式迭代训练得到:获取第四时刻之前多个第三时刻实际的数据包特征向量;基于所述多个第三时刻实际的数据包特征向量和训练中的LSTM,得到所述第四时刻预测的数据包特征向量;根据所述第四时刻预测的数据包特征向量和所述第四时刻实际的数据包特征向量,更新所述训练中的LSTM;若所述训练中的LSTM满足预设训练终止条件,则将所述训练中的LSTM作为所述已训练LSTM;否则更新所述第四时刻和所述多个第三时刻,返回“获取第四时刻之前多个第三时刻实际的数据包特征向量”的步骤。
可选的,数据包特征向量的特征包括:数据包的逻辑距离和数据包类型。
可选的,所述区块链节点所在的区块链为以太坊。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种区块链的日蚀攻击检测系统的系统架构示意图;
图2为本发明实施例提供的一种区块链的日蚀攻击检测方法对应的流程示意图;
图3为本发明实施例提供的一种区块链的日蚀攻击检测装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面首先列出本申请中出现的名词。
ETH(Ethereum):以太坊。Ethereum是拥有图灵完备智能合约语言的公共区块链平台,支持ERC20同质化代币和ERC721非同质化代币,为去中心化金融、供应链溯源、公共票务市场等场景提供了底层的区块链系统支持,是目前除比特币之外,市值最高、社区和开发最活跃的公共区块链平台。
Eclipse attack:日蚀攻击。日蚀攻击是对等网路中典型的一种攻击形式。在对等网络中,攻击者通过侵占受害者节点的所有对外连接资源,将受害者置于恶意节点的包围中,无法接收诚实网路中传来的正常信息,而只能接收攻击者操纵的信息。区块链系统由于采用了对等网络,同样存在日蚀攻击,其表现形式为攻击节点侵占受害人节点的全部对外网络连接,受害人节点无法获取到正确的区块和交易消息。区块链中的日蚀攻击同时可以降低自私攻击、双花攻击等共识层面攻击的成本。
LSTM(Long Short Term Memory Network):长短期记忆网络。LSTM是循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而提出的。普通RNN神经元内部只用tan层进行计算,而LSTM有四个全连接层进行计算。LSTM共有三个门,包括遗忘门、输入门以及输出门,其中遗忘门决定丢弃哪些信息,输入门表示要保存的信息或者待更新的信息,输出门决定当前神经原细胞输出的隐向量。
Dropout:是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。大规模神经网络训练存在费时和过拟合的问题,而Dropout由于相当于从原始的神经网络中找到随机找到一个规模更小的网络,因此可以很好地解决费时和过拟合问题。
One-hotencoding:独热编码。又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征。并且,这些特征互斥,每次只有一个激活。因此,数据会变成稀疏的。这样做可以解决了分类器不好处理属性数据的问题,同时在一定程度上也起到了扩充特征的作用。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,常和区块链(blockchain)领域结合。但运用区块链时也存在一些隐患,区块链中可能存在日蚀攻击。
举例来说,一种低资源消耗的以太坊上的日蚀攻击如图1所示。以太坊节点的区块传输、交易同步采用TCP协议,而节点发现则采用UDP协议。在以太坊网络的节点发现协议中,如图1所示,存在四种数据包,它们两两结对,分别是Ping和Pong,FindNode和Neighbors。
对于邻居节点的信息,以太坊节点有两种存储结构,分别为db和table。其中db位于硬盘中,长久存储,而table位于内存中,每次重启后会清空。当节点对发送过来的Ping消息返回了Pong消息时,就会将发送Ping消息的节点加入到db中。如果有节点已经存在于本地的db中,同时db记录该节点对于Findnode请求的失败次数为0,同时该节点在24小时内返回过有效的Pong消息,则将该节点信息加入到table中。table结构由256个桶(bucket)组成,每个bucket中存放了16个邻居节点信息实体,每个信息实体由nodeID、IP地址、TCP端口以及UDP端口组成。
以太坊节点发现协议采用了类似于KademiliaDHT的节点发现协议,节点之间通过异或定义了逻辑距离,数据包的逻辑距离为两节点a,b之间的逻辑距离(logdist),a和b分别为数据包的发送节点和接收节点,如逻辑距离计算可以为logdist=SHA3(a)XOR SHA3(b),其中SHA3为哈希算法,a、b为节点的nodeID,XOR为异或运算。两节点的逻辑距离等于256位nodeId的差异,取值从0到256,节点与自身的logdist=0。对于指定而对于一个节点来说,它将逻辑距离自己logdist为r的节点信息存放在table的(256-r)号bucket中。
对于每一个以太坊节点,默认最多建立25个TCP链接。日蚀攻击则是由攻击方侵占受害人所有的TCP链接,导致受害人无法接收新的节点信息。当节点重启后,会重新建立TCP链接,此时默认有一半的TCP链接是从table数据库中选取logdist逻辑距离近的节点建立出向链接,而另一半则是通过运行look_up进程建立入向链接。攻击方会在受害人节点的db中加入大量伪造的逻辑距离较近的nodeID,由于以太坊并不会对IP地址进行校验,因此可以轻易地通过脚本定向大量制造伪造的nodeId,侵占目标节点的db,进而当节点重启后会直接导入逻辑距离较近的节点进入table,与攻击者控制的虚假节点建立出向的TCP链接。同时攻击节点会在look_up进程运行结束之前,主动向受害者节点建立入向的TCP链接,侵占另一半TCP链接。这样以来,重启后节点建立的所有用于同步区块信息的TCP链接都由攻击节点控制,受害人节点与诚实的区块链网络分离开来。
本发明中针对的低资源消耗攻击日蚀攻击模型分为三个阶段:第一阶段,伪造节点,攻击方针对受害人节点,通过运行脚本伪造大量短逻辑距离的虚假nodeID;第二阶段,侵占db,攻击方通过不断向受害者发送Ping消息,侵占受害人节点的db,进而在重启时侵占受害人节点table的短逻辑距离bucket;第三阶段,侵占TCP链接,通过抢占入向和出向的TCP链接,实现控制受害人节点的全部区块同步数据来源。
目前检验区块链的日蚀攻击方式中,通过区块链节点收到的正常数据包和攻击数据包来训练日蚀攻击探测器。然而,数据包非常多,只要有一个数据包判断错误,就会产生误报。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图2所示,本申请提供一种区块链的日蚀攻击检测方法。
步骤201:针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量。
其中,M,N均为正整数,且M小于N。
步骤202:根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量。
步骤203:根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。
步骤201~步骤203的方法中,举例来说,N个第一时刻为t1、t2、t3、…tN,针对t1,t1之前连续M个第二时刻为t11’、t12’、t13’、…t1M’,需要说明的是,第一时刻和第二时刻可能有重叠,举例来说,对于tN,tN之前连续M个第二时刻为tN-M、tN-M+1、tN-M+2、…tN-1。
需要说明的是,步骤201~步骤203中,所述区块链节点所在的区块链可以为以太坊。
步骤201~步骤203中,数据包特征向量的特征可以包括:数据包的逻辑距离和数据包类型。
这是因为本发明中将以太坊上的日蚀攻击问题抽象为时序数据异常检测问题。在日蚀攻击发生的过程中,由于攻击者需要向受害者大量发送含有较短逻辑距离(logdist)的虚假节点标识(nodeID)信息的Ping数据包,因此对于受害者节点而言,攻击发生时接收到节点发现数据包中logdist特征会出现显著的短时下降趋势。针对这一特点,选用数据包的逻辑距离和数据包类型可以有效表征日蚀攻击的异常。
数据包特征向量的提取过程可以为:
提取出接收到节点发现数据包中的logdist特征,经过[-1,1]归一化处理,基于LSTM算法取前一段时间的logdist特征对下一时刻的logdist特征进行预测。假设节点发现数据包构成的数据包特征向量X={x(1),x(2),…,x(n)},其中x(t)是由归一化logdist特征以及one-hot编码处理过后的数据包类型特征共同组成的数据包特征向量。
本发明对于时序异常特征向量数据,根据误差向量判定攻击发生与否。基于前N个误差向量,判断这一时刻的误差向量是否属于异常,N个误差向量(误差向量窗口)为:
e=[e(1),…,e(N-M),…,e(N-1),e(N)];
通过加权指数平均法,到平滑误差向量:
es=[es(1),…,es(N-M),…,es(N-1),es(N)]。
一种可选实施方式中,所述已训练LSTM按照以下方式迭代训练得到:
步骤(a):获取第四时刻之前多个第三时刻实际的数据包特征向量。
步骤(b):基于所述多个第三时刻实际的数据包特征向量和训练中的LSTM,得到所述第四时刻预测的数据包特征向量。
步骤(c):根据所述第四时刻预测的数据包特征向量和所述第四时刻实际的数据包特征向量,更新所述训练中的LSTM。
步骤(d):若所述训练中的LSTM满足预设训练终止条件,则将所述训练中的LSTM作为所述已训练LSTM;否则更新所述第四时刻和所述多个第三时刻,返回步骤(a)。
需要说明的是,在步骤(a)~步骤(d)的过程中,由于LSTM模型可能存在过拟合以及训练时间长的缺陷,因此本发明采用Dropout方法解决这一问题。Dropout是一种训练时可以采用的正则化方法,通过在正向传递和权值更新的过程中对LSTM神经元的输入和递归连接进行概率性,网络架构还是会被使用。这样做抵消了没有神经元被丢弃的神经网络尺寸过大的影响,并且可以被解释为在训练时可能出现的网络上取平均。
在步骤(a)~步骤(d)的过程中,LSTM模型从接收到的节点发现UDP数据包中抽象出归一化的logdist特征,通过经过LSTM模型预测出下一时刻特征向量并计算出误差向量。
本发明所采用的LSTM模型参数可以如表1所示:
表1
本发明基于LSTM算法,利用日蚀攻击过程中,节点需要伪造大量距离受害人节点距离较近的虚假节点,并频繁发送ping数据包的特点,将攻击探测问题抽象为时序数据异常检测问题,利用动态的无监督误差门限,提出了一种无需离线、可以实时判定日蚀攻击发生的探测手段。
步骤203的一种可选实施方式如下:
步骤(1):根据所述N个误差向量,按照指数平滑法,获得所述N个误差向量的平滑误差向量。
步骤(1)中指数平滑法可以为加权指数平均法。
步骤(2):根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击。
步骤(2)具体可以如下:
各维度特征值实际上分别为N个时刻的误差向量的平滑误差向量。
方式一:
可以根据N个时刻中每个时刻的平滑误差向量和该时刻的误差阈值来判定该时刻的误差向量是否正常,并可以根据误差向量异常个数、比例以及误差向量累积之和综合判断所述区块链节点是否受到日蚀攻击。
举例来说,误差向量异常个数超过异常个数阈值,误差向量异常比例超过异常比例阈值,误差向量累积之和超过误差向量累积阈值。
步骤(2)的一种可选实施方式如下:
步骤(2-1):根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值。
举例来说,误差评估值为所述各维度特征值中异常的维度特征值的个数,误差阈值是根据所述各维度特征值之和得到的,如可以预先设置所述各维度特征值之和与误差阈值的换算关系,所述各维度特征值之和位于区间1,那么对应的误差阈值为误差阈值1,所述各维度特征值之和位于区间2,那么对应的误差阈值为误差阈值2,...以此类推。
步骤(2-2):根据所述误差评估值和所述误差阈值,确定所述区块链节点是否受到日蚀攻击。
举例来说,若所述误差评估值大于所述误差阈值,则确定所述区块链节点受到了日蚀攻击。
步骤(2-1)的一种可选实施方式如下:
将所述各维度特征值的加权平均值,作为所述误差评估值;根据所述各维度特征值的均值和所述各维度特征值的标准差,按照所述预设统计分析规则中的预设公式,确定所述误差阈值。
具体来说,所述误差阈值可以为所述各维度特征值的均值与所述各维度特征值的标准差之差,或者为所述各维度特征值的均值与所述各维度特征值的标准差之和。
更具体地,误差阈值∈可以按照以下方式确定:
其中,
Δμ(es)=μ(es)-μ({es∈es|es<∈});
Δσ(es)=σ(es)-σ({es∈es|es<∈})
ea={es∈es|es>∈};
Eseq=满足ea∈ea的连续序列。
本发明中没有对数据包进行攻击或正常的分类,而是利用基于LSTM算法,由过去的节点发现数据包提取出的特征预测出下一时隙节点发现数据包的特征。由于当攻击发生时,预测特征值会与实际特征值产生较大的偏差,通过一种无监督的误差门限计算方法,当偏差大于门限时,判定攻击发生。在这一过程中,并不需要对攻击数据包进行手动的标签分类,而是利用了攻击过程中时序异常的特性。
进一步地,本发明还搭建了一种基于Geth和Docker技术的大规模日蚀攻击测试平台。在Docker容器中独立运行着不同的Geth节点。平台中包括攻击节点、普通节点、受害人节点以及Bootstrap节点。
实验过程中通过nsenter进入节点的docker环境,再通过Wireshark录制接受的节点发现UDP数据包。各个普通节点加入到网络中时首先链接Bootstrap节点,同时普通节点会以一定概率退出网络,新的节点重新加入,这是为了模拟真实以太坊网络环境中节点的加入与退出状况。实验时随机选取受害人节点发起攻击,攻击者会利用这些虚假节点向受害人持续发送Ping数据包,同时还设置有另一个脚本用于抢占节点重启后的入向TCP链接。
在模型训练与实验过程中,举例来说,可以采用100段长度为5分钟的攻击片段,其中攻击前后分别有3分钟和2分钟的正常流量,这是因为实际网络中攻击并不会频繁发生,设置窗口期有助于探测器更准确进行预警。在时序数据异常检测中,存在三种异常:Point异常、Collective异常以及Contextual异常。由于日蚀攻击发生于数据点密度不异常,但与正常数据特征不连贯的区域,因此称日蚀攻击为Contextual异常。在这种情况下,预测结果与实际数据存在三种可能结果:
TruePositive:预测攻击区间与实际攻击区间存在交集,则记录一次TruePositive。
FalseNegative:如果对于一段实际攻击区间,没有预测区间与其产生交集,ze记录一次FalseNegative。
FalsePostive:如果预测的一段攻击区间完全落在了正常区间之内,则记录一次FalsePositive。
当攻击发生后,logdist位于0以下的点数明显增多,这是因为攻击者伪造了距离近的Ping数据包,发出攻击。而在同样长度的正常序列中,绝大多数节点距离都位于0以上。这是因为正常情况下,对于任意节点,87.5%的节点对于该节点的logdist都大于归一化后的0.50。
在一次日蚀攻击过程中,可以看到预测的logdist序列较实际攻击序列具有一定的延迟效性,也因此产生了较大的误差。攻击发生于12424步至12600步。看到攻击序列率先由于接收到大量低距离数据包下沉,而预测序列则先维持原先的趋势再进行下沉。通过预测序列和实际序列,可以导出用于判断攻击发生与否的平滑误差序列。
在误差阈值参数p的选取中,在选择p=0.04时,可以取得最佳的探测性能,最佳探测性能结果如表2所示。
表2
在相同的攻击模型,平台环境条件下。通过选择不同的误差阈值参数,可以取得和本发明类似的攻击探测器。同样选取100段,窗口长度为5分钟的攻击数据包进行模型训练,以0.01步长,从0.01到0.09选择10个不同的误差阈值参数,同样将收集数据以3:7比例进行训练和测试,所得模型探测器的效果如表3所示:
表3
本发明在日蚀攻击的实验中,构建了一种大规模节点集群的测试平台。利用Docker容器运行海量的Geth节点,平台设置由普通节点以及bootstrap节点。所有节点加入到网络中后,首先连接bootstrap节点,然后进行最初的节点发现。普通节点由脚本控制以一定概率随机退出或重启,这可以模拟真实eth网络种节点的退出与加入。
如图3,本发明提供一种区块链的日蚀攻击检测装置,包括:向量提取模块301,用于针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量;M,N均为正整数,且M小于N;以及用于根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量;处理模块302,用于根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。
可选的,所述处理模块302具体用于:根据所述N个误差向量,按照指数平滑法,获得所述N个误差向量的平滑误差向量;根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击。
可选的,所述处理模块302具体用于:根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值;根据所述误差评估值和所述误差阈值,确定所述区块链节点是否受到日蚀攻击。
可选的,所述处理模块302具体用于:将所述各维度特征值的加权平均值,作为所述误差评估值;根据所述各维度特征值的均值和所述各维度特征值的标准差,按照所述预设统计分析规则中的预设公式,确定所述误差阈值。
可选的,所述已训练LSTM按照以下方式迭代训练得到:获取第四时刻之前多个第三时刻实际的数据包特征向量;基于所述多个第三时刻实际的数据包特征向量和训练中的LSTM,得到所述第四时刻预测的数据包特征向量;根据所述第四时刻预测的数据包特征向量和所述第四时刻实际的数据包特征向量,更新所述训练中的LSTM;若所述训练中的LSTM满足预设训练终止条件,则将所述训练中的LSTM作为所述已训练LSTM;否则更新所述第四时刻和所述多个第三时刻,返回“获取第四时刻之前多个第三时刻实际的数据包特征向量”的步骤。
可选的,数据包特征向量的特征包括:数据包的逻辑距离和数据包类型。
可选的,所述区块链节点所在的区块链为以太坊。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链的日蚀攻击检测方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的区块链的日蚀攻击检测方法及任一可选方法被执行。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种区块链的日蚀攻击检测方法,其特征在于,包括:
针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量;M,N均为正整数,且M小于N;
根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量;所述第一时刻实际的数据包特征向量是由归一化逻辑距离特征以及独热编码处理过后的数据包类型特征共同组成的数据包特征向量;
根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。
2.如权利要求1所述的方法,其特征在于,所述根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击,包括:
根据所述N个误差向量,按照指数平滑法,获得所述N个误差向量的平滑误差向量;
根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击。
3.如权利要求2所述的方法,其特征在于,所述根据所述平滑误差向量中各维度特征值,按照预设统计分析规则,确定所述区块链节点是否受到日蚀攻击,包括:
根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值;
根据所述误差评估值和所述误差阈值,确定所述区块链节点是否受到日蚀攻击。
4.如权利要求3所述的方法,其特征在于,所述根据所述各维度特征值,按照所述预设统计分析规则,确定误差评估值和误差阈值,包括:
将所述各维度特征值的加权平均值,作为所述误差评估值;
根据所述各维度特征值的均值和所述各维度特征值的标准差,按照所述预设统计分析规则中的预设公式,确定所述误差阈值。
5.如权利要求1至4任一项所述的方法,其特征在于,所述已训练LSTM按照以下方式迭代训练得到:
获取第四时刻之前多个第三时刻实际的数据包特征向量;
基于所述多个第三时刻实际的数据包特征向量和训练中的LSTM,得到所述第四时刻预测的数据包特征向量;
根据所述第四时刻预测的数据包特征向量和所述第四时刻实际的数据包特征向量,更新所述训练中的LSTM;
若所述训练中的LSTM满足预设训练终止条件,则将所述训练中的LSTM作为所述已训练LSTM;否则更新所述第四时刻和所述多个第三时刻,返回“获取第四时刻之前多个第三时刻实际的数据包特征向量”的步骤。
6.如权利要求1至4任一项所述的方法,其特征在于,所述区块链节点所在的区块链为以太坊。
7.一种区块链的日蚀攻击检测装置,其特征在于,包括:
向量提取模块,用于针对连续N个第一时刻中任一第一时刻,基于已训练长短期记忆网络LSTM,根据区块链节点在所述第一时刻之前连续M个第二时刻的M个实际的数据包特征向量,确定所述区块链节点在所述第一时刻预测的数据包特征向量;M,N均为正整数,且M小于N;以及用于
根据所述第一时刻预测的数据包特征向量和所述第一时刻实际的数据包特征向量,确定所述第一时刻的误差向量;所述第一时刻实际的数据包特征向量是由归一化逻辑距离特征以及独热编码处理过后的数据包类型特征共同组成的数据包特征向量;
处理模块,用于根据所述N个第一时刻的N个误差向量,确定所述区块链节点是否受到日蚀攻击。
8.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6中任意一项所述的方法被执行。
9.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至6中任意一项所述的方法被执行。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011306835.1A CN112364304B (zh) | 2020-11-20 | 2020-11-20 | 一种区块链的日蚀攻击检测方法及装置 |
PCT/CN2021/126378 WO2022105550A1 (zh) | 2020-11-20 | 2021-10-26 | 一种区块链的日蚀攻击检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011306835.1A CN112364304B (zh) | 2020-11-20 | 2020-11-20 | 一种区块链的日蚀攻击检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112364304A CN112364304A (zh) | 2021-02-12 |
CN112364304B true CN112364304B (zh) | 2023-04-07 |
Family
ID=74532640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011306835.1A Active CN112364304B (zh) | 2020-11-20 | 2020-11-20 | 一种区块链的日蚀攻击检测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112364304B (zh) |
WO (1) | WO2022105550A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364304B (zh) * | 2020-11-20 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种区块链的日蚀攻击检测方法及装置 |
CN114285640B (zh) * | 2021-12-24 | 2023-07-18 | 重庆邮电大学 | 面向区块链中以太坊节点日蚀攻击的检测系统及检测方法 |
CN115065502A (zh) * | 2022-05-05 | 2022-09-16 | 南京邮电大学 | 一种基于cnn的区块链日蚀攻击检测与防御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900542A (zh) * | 2018-08-10 | 2018-11-27 | 海南大学 | 基于LSTM预测模型的DDoS攻击检测方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106888205B (zh) * | 2017-01-04 | 2020-02-18 | 浙江大学 | 一种非侵入式基于功耗分析的plc异常检测方法 |
CN108234496A (zh) * | 2018-01-05 | 2018-06-29 | 宝牧科技(天津)有限公司 | 一种基于神经网络的流量预测方法 |
US11005736B2 (en) * | 2018-03-06 | 2021-05-11 | Afilias Limited | Determining traceability of network traffic over a communications network |
CN108965259B (zh) * | 2018-06-21 | 2021-03-26 | 佛山科学技术学院 | 一种区块链恶意节点发现与隔离方法及装置 |
CN111092849B (zh) * | 2018-10-24 | 2022-01-25 | 中移(杭州)信息技术有限公司 | 基于流量的分布式拒绝服务的检测方法及装置 |
CN109934337B (zh) * | 2019-03-14 | 2020-12-25 | 哈尔滨工业大学 | 一种基于集成lstm的航天器遥测数据异常的检测方法 |
CN112364304B (zh) * | 2020-11-20 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种区块链的日蚀攻击检测方法及装置 |
-
2020
- 2020-11-20 CN CN202011306835.1A patent/CN112364304B/zh active Active
-
2021
- 2021-10-26 WO PCT/CN2021/126378 patent/WO2022105550A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900542A (zh) * | 2018-08-10 | 2018-11-27 | 海南大学 | 基于LSTM预测模型的DDoS攻击检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112364304A (zh) | 2021-02-12 |
WO2022105550A1 (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112364304B (zh) | 一种区块链的日蚀攻击检测方法及装置 | |
Reddy et al. | Deep neural network based anomaly detection in Internet of Things network traffic tracking for the applications of future smart cities | |
JP6622928B2 (ja) | 悪意のあるbgpハイジャックの正確なリアルタイム識別 | |
CN112235264B (zh) | 一种基于深度迁移学习的网络流量识别方法及装置 | |
Farhan et al. | Performance analysis of flow-based attacks detection on CSE-CIC-IDS2018 dataset using deep learning | |
Ortet Lopes et al. | Towards effective detection of recent DDoS attacks: A deep learning approach | |
CN112653682B (zh) | 一种区块链日蚀攻击检测的方法及装置 | |
CN113015167B (zh) | 加密流量数据的检测方法、系统、电子装置和存储介质 | |
Benferhat et al. | A naive bayes approach for detecting coordinated attacks | |
Marchetti et al. | Identification of correlated network intrusion alerts | |
Agrawal et al. | Autoencoder for design of mitigation model for DDOS attacks via M-DBNN | |
Saurabh et al. | Nfdlm: A lightweight network flow based deep learning model for ddos attack detection in iot domains | |
Liu et al. | Multi-step attack scenarios mining based on neural network and Bayesian network attack graph | |
Senthilnayaki et al. | An intelligent intrusion detection system using genetic based feature selection and Modified J48 decision tree classifier | |
CN111191683A (zh) | 基于随机森林和贝叶斯网络的网络安全态势评估方法 | |
WO2023159812A1 (zh) | 一种ami网络入侵检测的方法、装置及介质 | |
KR102548321B1 (ko) | 효율적인 악성 위협 탐지를 위한 valuable alert 선별 방법 | |
CN113839963B (zh) | 基于人工智能与大数据的网络安全漏洞智能检测方法 | |
Satyanegara et al. | Implementation of CNN-MLP and CNN-LSTM for MitM attack detection system | |
CN113536299A (zh) | 一种基于贝叶斯神经网络的入侵检测系统的设计方法 | |
Dhingra et al. | Detection of denial of service using a cascaded multi-classifier | |
Chetouane et al. | Performance Improvement of DDoS Intrusion Detection Model Using Hybrid Deep Learning Method in the SDN Environment | |
Jose et al. | Prediction of Network Attacks Using Supervised Machine Learning Algorithm | |
Alagrash et al. | Malware Detection via Machine Learning and Recognition of Non Stationary Tasks | |
Zhao et al. | Compound attack prediction method based on improved algorithm of hidden Markov model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |