CN112653682B - 一种区块链日蚀攻击检测的方法及装置 - Google Patents
一种区块链日蚀攻击检测的方法及装置 Download PDFInfo
- Publication number
- CN112653682B CN112653682B CN202011486985.5A CN202011486985A CN112653682B CN 112653682 B CN112653682 B CN 112653682B CN 202011486985 A CN202011486985 A CN 202011486985A CN 112653682 B CN112653682 B CN 112653682B
- Authority
- CN
- China
- Prior art keywords
- node
- logical
- determining
- distance
- detection
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Abstract
本发明公开了一种区块链日蚀攻击检测的方法及装置,包括:基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在检测时刻的各输出节点,其中,各第二节点为第一节点的分布式路由表中的节点,各邻居节点为第二节点的分布式路由表中的节点,然后确定检测时刻的各输出节点分别与第一节点之间的各第一逻辑距离,针对检测时刻之前的至少一个历史时刻,确定历史时刻的各输出节点分别与第一节点之间的各第二逻辑距离,再根据各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定第一节点是否处于日蚀攻击中。以此增加在检测时刻对无重启式的日蚀攻击检测的实时性与主动性,且针对无重启式日蚀攻击的攻击方式进行检测。
Description
技术领域
本发明涉及金融科技(Fintech)领域,尤其涉及一种区块链日蚀攻击检测的方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:区块链、云计算或大数据)应用在金融领域,传统金融业正在逐步向金融科技转变,大数据技术也不例外,但由于金融、支付行业的安全性、实时性要求,也对大数据技术提出的更高的要求。
日蚀攻击是针对区块链系统的一种攻击手段,攻击者通过日蚀攻击使得受害者节点进行重启,并将受害者节点中的路由表清空,然后通过控制特定节点(如恶意节点)对受害者节点进行信息的访问,以使受害者节点的路由表中存在的都是特定节点,使其只能接收攻击者的信息且将反馈信息发送至攻击者,从而使受害者节点无法查看真实的区块链系统的信息,导致受害者节点与区块链系统产生分裂,进而使攻击者可以使用少于51%的算力对区块链系统发起51%攻击,导致区块链系统存在安全隐患。
现有技术中,为了防御重启式日蚀攻击,通过随机森林算法对日蚀攻击进行检测。具体的,通过随机森林算法离线收集其他正常节点在各自路由表中确定的邻居节点构建随机决策森林,再根据随机决策森林收集受害者节点的在路由表中确定的多个邻居节点(特定节点),进而对受害者节点进行检测。
然而,日蚀攻击的方式包括多种,其中包括不需要使受害者节点重启也可以实现日蚀攻击,即无重启式日蚀攻击。具体的,通过与受害者节点保持频繁的数据通信,使特定节点逐步插入至受害者节点的输出节点列表中,以此入侵运行平稳的受害者节点,无需将受害者节点的路由表都存储特定节点,实现无重启式日蚀攻击,但随机森林算法只能针对路由表均为特定节点的受害者节点检测出日蚀攻击,因此随机森林算法无法检测出无重启式日蚀攻击,且随机森林算法需要离线进行检测,使其实时性与主动性低。
因此,现需要一种日蚀攻击检测的方法,以检测无重启式日蚀攻击,增加对日蚀攻击检测的实时性与主动性。
发明内容
本发明实施例提供一种区块链日蚀攻击检测的方法及装置,用于检测无重启式的日蚀攻击,增加对日蚀攻击检测的实时性与主动性。
第一方面,本发明实施例提供一种区块链日蚀攻击检测的方法,包括:
基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在所述检测时刻的各输出节点;所述各第二节点为所述第一节点的分布式路由表中的节点;所述各邻居节点为第二节点的分布式路由表中的节点;
确定所述检测时刻的各输出节点分别与所述第一节点之间的各第一逻辑距离;
针对所述检测时刻之前的至少一个历史时刻,确定所述历史时刻的各输出节点分别与所述第一节点之间的各第二逻辑距离;
根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中。
上述技术方案中,基于各第二节点在检测时刻上报的各邻居节点与第一节点之间的逻辑距离,将预设数量的且各邻居节点与第一节点之间的逻辑距离最小的邻居节点确定为第一节点在检测时刻的各输出节点,基于此,无重启式日蚀攻击会构造出与第一节点之间的逻辑距离较小的邻居节点,因此,在确定出检测时刻的输出节点之后,确定出输出节点与第一节点之间的第一逻辑距离,再根据历史时刻的第二逻辑距离以及检测时刻的第一逻辑距离来确定在检测时刻时,第一节点是否处于日蚀攻击中,以此增加在检测时刻对无重启式的日蚀攻击检测的实时性与主动性,且针对无重启式日蚀攻击的攻击方式进行检测。
可选的,根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中,包括:
根据所述至少一个历史时刻的各第二逻辑距离,通过神经网络模型,确定所述检测时刻的预测逻辑距离;
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述第一节点是否处于日蚀攻击中。
上述技术方案中,根据至少一个历史时刻的各第二逻辑距离,通过神经网络模型,确定检测时刻的预测逻辑距离,增加了对检测时刻的输出节点检测的实时性与主动性,以此增加了对无重启式的日蚀攻击检测的实时性与主动性。
可选的,根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述第一节点是否处于日蚀攻击中,包括:
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述检测时刻是否为异常时刻;
若所述第一节点存在多个连续的异常时刻,则确定所述第一节点处于日蚀攻击中。
可选的,根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述检测时刻是否为异常时刻,包括:
针对任一所述第一逻辑距离,根据所述第一逻辑距离与所述检测时刻的预测逻辑距离,确定第一误差;
针对N个历史时刻中的任一历史时刻,基于所述历史时刻的各第二逻辑距离和所述历史时刻的预测逻辑距离,确定各第二误差;
根据所述N个历史时刻的各第二误差和所述第一误差,确定误差阈值;
若所述第一误差大于所述误差阈值,则确定所述检测时刻为异常时刻。
上述技术方案中,针对任一第一逻辑距离对应的输出节点进行检测,若在检测时刻,任一输出节点对应的第一误差大于误差阈值,则确定检测时刻为异常时刻,防止攻击者逐步占据第一节点的输出节点表,增加了对无重启式日蚀攻击检测的准确性。
可选的,根据所述N个历史时刻的各第二误差和所述第一误差,确定误差阈值,包括:
根据所述N个历史时刻的各第二误差和所述第一误差得到第一向量;
根据所述第一向量和指数移动加权平均算法确定第二向量;
根据所述第二向量得到所述误差阈值。
可选的,根据公式(1)得到所述误差阈值,包括:
其中,∈为误差阈值;μ(es)为所述第二向量的平均值;σ(es)为所述第二向量的标准差;Δμ(es)为所述第二向量中异常值的平均值;Δσ(es)为所述第二向量中异常值的标准差;|ea|为所述第二向量中异常值的集合的模;|Eseq|2为所述第二向量中,连续的异常值的集合的模的平方;所述异常值是所述第二向量中历史时刻为异常时刻的值。
可选的,所述神经网络模型是根据M个历史时刻上报的各邻居节点与所述第一节点之间的逻辑距离进行训练的到的。
第二方面,本发明实施例提供一种区块链日蚀攻击检测的装置,包括:
计算模块,用于基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在所述检测时刻的各输出节点;所述各第二节点为所述第一节点的分布式路由表中的节点;所述各邻居节点为第二节点的分布式路由表中的节点;
确定所述检测时刻的各输出节点分别与所述第一节点之间的各第一逻辑距离;
处理模块,用于针对所述检测时刻之前的至少一个历史时刻,确定所述历史时刻的各输出节点分别与所述第一节点之间的各第二逻辑距离;
根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中。
可选的,所述处理模块具体用于:
根据所述至少一个历史时刻的各第二逻辑距离,通过神经网络模型,确定所述检测时刻的预测逻辑距离;
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述第一节点是否处于日蚀攻击中。
可选的,所述处理模块具体用于:
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述检测时刻是否为异常时刻;
若所述第一节点存在多个连续的异常时刻,则确定所述第一节点处于日蚀攻击中。
可选的,所述处理模块具体用于:
针对任一所述第一逻辑距离,根据所述第一逻辑距离与所述检测时刻的预测逻辑距离,确定第一误差;
针对N个历史时刻中的任一历史时刻,基于所述历史时刻的各第二逻辑距离和所述历史时刻的预测逻辑距离,确定各第二误差;
根据所述N个历史时刻的各第二误差和所述第一误差,确定误差阈值;
若所述第一误差大于所述误差阈值,则确定所述检测时刻为异常时刻。
可选的,所述处理模块具体用于:
根据所述N个历史时刻的各第二误差和所述第一误差得到第一向量;
根据所述第一向量和指数移动加权平均算法确定第二向量;
根据所述第二向量得到所述误差阈值。
可选的,根据公式(1)得到所述误差阈值,包括:
其中,∈为误差阈值;μ(es)为所述第二向量的平均值;σ(es)为所述第二向量的标准差;Δμ(es)为所述第二向量中异常值的平均值;Δσ(es)为所述第二向量中异常值的标准差;|ea|为所述第二向量中异常值的集合的模;|Eseq|2为所述第二向量中,连续的异常值的集合的模的平方;所述异常值是所述第二向量中历史时刻为异常时刻的值。
可选的,所述神经网络模型是根据M个历史时刻上报的各邻居节点与所述第一节点之间的逻辑距离进行训练的到的。
第三方面,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链日蚀攻击检测的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述区块链日蚀攻击检测的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种随机森林算法的攻击检测方法的示意图;
图2为本发明实施例提供的一种系统架构示意图;
图3为本发明实施例提供的一种区块链日蚀攻击检测的方法的流程示意图;
图4为本发明实施例提供的一种区块链日蚀攻击检测的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
区块链系统是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,而建立的物理网络基础是点对点(P2P)的分布式网络。用以太坊为例,以太坊底层分布式网络,即P2P网络,使用了经典的Kademlia(Kademlia Distributed HashTable,分布式哈希表)网络,简称KAD,是一种分布式散列表技术,以异或运算为节点之间逻辑距离的度量基础,其中,KAD的路由表是通过称为K桶的数据构造而成,K桶记录了节点ID,逻辑距离等信息,在不同版本的以太坊客户端中,K桶的数量也不是一致的,例如,在以太坊客户端1.8版本中,K桶的数量为17,每个桶中存在有16个节点ID。其中,K桶中的路由表是根据节点发现机制得到的。
现有技术中存在多种攻击方式,例如女巫攻击和日蚀攻击,通过女巫攻击和日蚀攻击将正常节点隔离开区块链系统,以达到在低于51%算力时,实现51%攻击,例如,以太坊节点的TCP(Transmission Control Protocol,传输控制协议)接口是在两个表中确定的,包括输出节点表和输入节点表,其中,输入节点表是根据K桶中的节点确定的,输出节点表中预设数量(如一半数量)的节点是在输入节点表中选择的,其余的节点是通过节点发现机制确定的。攻击者通过女巫攻击构建大量的恶意节点,通过控制僵尸网络不断地去连接以太坊节点,即达到刷新这两张节点表的目的,使得这两张节点表都保存恶意节点的地址,攻击者再通过DDoS(Distributed Denial of Service,分布式拒绝服务)攻击等方法,让以太坊节点重启,以此使以太坊节点的输出节点表和输入节点表存储的均是攻击者控制的恶意节点。
现有技术中,为了检测出以太坊节点收到了日蚀攻击,给出了随机森林算法的检测方法,图1示例性的示出了一种随机森林算法的攻击检测方法的示意图,如图1所示,随机森林算法在以太坊的正常节点中收集正常数据包,作为数据包训练集,其中,正常数据包中包括多个邻居节点,数据包是根据节点发现机制得到的,例如,节点A随机生成目标节点B,并计算出节点A与目标节点B之间的逻辑距离lAB,节点A在自身的K桶中找出节点C,需要说明的是,节点A与节点C之间的逻辑距离lAC小于逻辑距离lAB,然后节点A向节点C发送find-node请求(查询与目标节点B之间的逻辑距离的节点的请求),其中,find-node请求包括目标节点B的ID,节点C根据目标节点B的ID确定出预设数量(如16个)的节点D等多个节点,需要说明的是,节点D等多个节点在节点C的K桶中,与目标节点B的ID之间的逻辑距离最小。然后在正常节点的数据包的训练集中提取特征向量,然后根据包括特征向量和标签的训练集训练出随机森林模型,并在随机森林模型中加入标签。
在测试过程中,随机森林模型运行攻击脚本,通过不断向受害者节点发送find-node请求,以收集受害者节点返回的包含有恶意节点的攻击数据包,然后提取攻击数据包的特征向量,通过随机森林模型进行预测,将随机森林模型预测的结果视作检测的预测标签。
需要说明的是,随机森林算法是由大量决策树共同组成的,随机森林算法可以在较低计算资源消耗的情况下给出较为准确的探测结果。在上述测试过程中,随机森林算法实现流程为:1、采用Bootstrap方法随机从训练集中提取k个训练样本,从而生成k个分类树。2、从k个分类树的节点中随机选取S个变量,并选出具有代表性的变量,再由多分类点选出分类的阈值。3、不修建分类树,令其保持无限增长,每当输入新的训练样本时,将被构建好了的决策树森林拆分,并通过分类树投票得到最终标签。
根据上面所述,基于随机森林算法的检测日蚀攻击的方法需要收集海量正常节点的数据包,需要预先构建随机决策森林,再对需要探测的数据进行标签分类,当判定存在恶意节点的攻击数据包时,则认为受害者节点遭受到了攻击。因此,基于随机森林算法的检测日蚀攻击的方法无法实时检测以太坊节点,而且,当存在一个数据包被标签为攻击数据包时,就认为发生了攻击,误报率较高。
另外,基于随机森林算法的检测日蚀攻击的方法针对的日蚀攻击类型有限,只可以重启式日蚀攻击,即检测受害者节点重启后侵占以太坊节点的TCP链接的低资源消耗的日蚀攻击模式。
但是目前,存在一种名为False Friend Attack的无重启式日蚀攻击模式,该攻击模式可以利用以太坊网络中正常节点的邻居节点会断开连接的特点,通过构造长期在线的女巫节点,在节点发现机制过程中侵占受害者节点的TCP接口中的输出节点表,无需等待以太坊节点重启,而这种无重启式日蚀攻击是基于随机森林算法的检测日蚀攻击的方法所无法检测的。
为了进一步地描述False Friend Attack的日蚀攻击模式,下面再具体实例中阐述False Friend Attack的日蚀攻击实现方式。
实例1
在以太坊客户端1.8版本,受害者节点的包括25个TCP连接ID,分为包括8个输出节点的输出节点表和包括17个输入节点的输入节点表。由于以太坊网络不对输入的节点链路施加限制,攻击者可以根据构建的多个女巫节点,并持续向受害者节点发送TCP入站连接请求,轻松地利用输入节点表主动与受害者节点建立连接,直到占领完成为止,以实现侵占输入节点表。受害者节点的输出节点表是通过两个机制选择的,第一种机制是通过ReadRandom Nodes函数在受害者节点的每个K桶中的首个节点中随机选择的,即在输入节点表中随机选择的。另一种机制是通过节点发现机制选择的,受害者节点在通过发现机制得到邻居节点后,在邻居节点中确定出与受害者节点最近的4个节点,作为输出节点,得到输出节点表。
False Friend Attack日蚀攻击可以入侵运行平稳的受害者节点,无需使受害者节点重新启动。在False Friend Attack攻击模型中,包括两种机制,第一种机制,只需要在受害者节点的每个K桶中的头部注入一个女巫节点即可确保以太坊节点的输出节点表完成了侵占。受害者节点选择输出节点表的节点时,一部分取决于第一种机制,如通过ReadRandom Nodes函数在输入节点表中随机选取4个节点作为输出节点。
针对另一种机制:攻击者需要在的受害者节点的每个K桶中至少放置一个女巫节点,以便以太坊节点向攻击者发送find Node查询,攻击者在接收到受害者节点的find-node请求后,返回预先制造的虚假的女巫节点(neighbors列表),其中,neighbors列表中的节点是与受害者节点距离较近的女巫节点,因此,攻击者通过伪造与受害者节点之间短距离的节点侵占受害者节点的输出节点表。
需要说明的是,节点之间的逻辑距离是根据节点的ID通过异或运算计算得到的。例如,比如节点ID为000111的节点与节点ID为000110、000011的节点之间的逻辑距离计算为:(十进制1)、(十进制4)。
因此,现需要一种日蚀攻击检测的方法,以针对无重启式日蚀攻击的攻击方式进行检测,并增加在检测时刻对无重启式的日蚀攻击检测的实时性与主动性。
图2示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括第一节点210和第二节点220。
其中,第二节点220是第一节点210通过在自身的K桶中确定的,具体的,第一节点210随机生成一个目标节点,并计算出第一节点210与目标节点之间的逻辑距离,然后确定出第一节点210在自身的K桶中的第二节点220,第一节点210与第二节点220之间的逻辑距离小于第一节点210与目标节点之间的逻辑距离,需要说明的是,第二节点220可以为多个,也可以为预设的数量,例如,确定出第一节点210在自身的K桶中确定出10个小于第一节点210与目标节点之间的逻辑距离的节点,随机选取3个作为第二节点220。
第一节点210用于向第二节点220发送find-node请求,以使第二节点220查询出邻居节点,并将邻居节点反馈至第一节点210。
第一节点210在得到邻居节点之后,在邻居节点中确定出输出节点,并对输出节点进行检测,进而确定出检测时刻是否为异常时刻。
需要说明的是,上述图2所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图3示例性的示出了本发明实施例提供的一种区块链日蚀攻击检测的方法的流程示意图,该流程可由区块链日蚀攻击检测的装置执行。
如图3所示,该流程具体包括:
步骤310,基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在所述检测时刻的各输出节点。
本发明实施例中,各第二节点为第一节点的分布式路由表中的节点,各邻居节点为第二节点的分布式路由表中的节点。
具体的,第二节点是第一节点根据目标节点在第一节点的分布式路由表中确定的,各邻居节点是第二节点根据目标节点在第二节点的分布式路由表中确定的。为了更好的描述第一节点如何确定输出节点,下面将在具体的实例中进行阐述。
实例2
在检测时刻,第一节点a随机的生成目标节点b,其中,随机的生成目标节点b包括目标节点b的节点ID,并通过第一节点a的节点ID和目标节点b的节点ID计算出第一节点a与目标节点b之间的逻辑距离lab,然后第一节点a在自身的分布式路由表中找出第二节点c,其中,第一节点a与第二节点c之间的逻辑距离lac小于逻辑距离lab。在确定出第二节点c之后,第一节点a向第二节点c发送find-node请求,其中,find-node请求中包括目标节点b的节点ID。以使第二节点c根据目标节点b的节点ID确定出16个的邻居节点d,其中,邻居节点d是第二节点c的分布式路由表中,与目标节点b之间的逻辑距离最小的16个节点,然后由第二节点c将邻居节点d反馈至第一节点a。
第一节点a在得到16个邻居节点d之后,计算出各邻居节点d与第一节点a之间的各逻辑距离lad,在16个逻辑距离lad中确定4个最小值,则最小值对应的邻居节点d为第一节点在检测时刻的各输出节点。
步骤320,确定所述检测时刻的各输出节点分别与所述第一节点之间的各第一逻辑距离。
本发明实施例中,在第一节点确定输出节点时,根据输出节点的节点ID得到输出节点与第一节点之间的第一逻辑距离。
步骤330,针对所述检测时刻之前的至少一个历史时刻,确定所述历史时刻的各输出节点分别与所述第一节点之间的各第二逻辑距离。
本发明实施例中,在历史时刻中,第一节点根据第二节点确定出输出节点,进而确定出历史时刻的输出节点与第一节点之间的各第二逻辑距离。例如,结合实例2,历史时刻为检测时刻的前一时刻,历史时刻的第二节点e与第一节点之间的为第二逻辑距离。
步骤340,根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中。
本发明实施例中,根据历史时刻的第二逻辑距离确定出检测时刻的预测逻辑距离,进而确定第一节点是否处于日蚀攻击中。
进一步地,根据至少一个历史时刻的各第二逻辑距离,通过神经网络模型,确定检测时刻的预测逻辑距离,再根据各第一逻辑距离与检测时刻的预测逻辑距离,确定第一节点是否处于日蚀攻击中。
本发明实施例中,可以根据至少一个历史时刻的各第二逻辑距离确定检测时刻的预测逻辑距离,也可以根据至少一个历史时刻的各邻居节点与第一节点之间的逻辑距离确定检测时刻的预测逻辑距离,在此不做限定,使用第二逻辑距离可以增加确定检测时刻的预测逻辑距离的准确度。
例如,检测时刻为t,每个检测时刻的输出节点为4个,将检测时刻之前的两个历史时刻(t-1和t-2)的输出节点作为神经网络模型的输入样本,即输入样本X为其中,样本X中的每个特征(如)包括预处理后的第二逻辑距离,预处理包括归一化处理,编码处理等。然后根据输入样本X得到检测时刻的预测逻辑距离其中,检测时刻的预测逻辑距离用于确定检测时刻是否为异常时刻,根据异常时刻确定第一节点是否处于日蚀攻击中。
进一步地,根据各第一逻辑距离与检测时刻的预测逻辑距离,确定检测时刻是否为异常时刻,若第一节点存在多个连续的异常时刻,则确定第一节点处于日蚀攻击中。
具体的,针对任一第一逻辑距离,根据第一逻辑距离与检测时刻的预测逻辑距离,确定第一误差,针对N个历史时刻中的任一历史时刻,基于历史时刻的各第二逻辑距离和历史时刻的预测逻辑距离,确定各第二误差,根据N个历史时刻的各第二误差和第一误差,确定误差阈值,若第一误差大于误差阈值,则确定检测时刻为异常时刻。
本发明实施例中,在检测时刻,存在多个第一逻辑距离,针对任一第一逻辑距离进行确定,在任一第一逻辑距离对应的第一误差大于误差阈值时,确定检测时刻为异常时刻,需要说明的是,为了降低误报率,也可以在大于误差阈值的第一误差大于预设数量时,确定检测时刻为异常时刻,在此不限定具体数量确定检测时刻为异常时刻。
其中,误差阈值是将N个历史时刻的各第二误差和第一误差作为一个向量得到的。具体的,根据N个历史时刻的各第二误差和第一误差得到第一向量,再根据第一向量和指数移动加权平均算法确定第二向量,最后根据第二向量得到误差阈值。
进一步地,根据下述公式(1)得到误差阈值,包括:
其中,∈为误差阈值;μ(es)为第二向量的平均值;σ(es)为第二向量的标准差,Δμ(es)为第二向量中异常值的平均值,Δσ(es)为第二向量中异常值的标准差,|ea|为第二向量中异常值的集合的模,|Eseq|2为第二向量中,连续的异常值的集合的模的平方,异常值是第二向量中历史时刻为异常时刻的值。
本发明实施例中,公式(1)是一种无监督的阈值计算方法,为了更好的解释如何确定检测时刻的误差阈值,下面将结合实例2在具体实例中进行阐述。
实例3
在检测时刻,确定出输出节点d1、d2、d3、d4,针对输出节点d1得到输出节点d1与第一节点之间的第一逻辑距离,根据上述得到的预测逻辑距离得到第一误差 再根据前两个(即N为2)历史时刻的第二误差(如e(t-1)和e(t-2))得到第一向量e,再将第一向量e通过指数移动加权平均算法得到第二向量es,然后根据第二向量es得到异常值的集合,如t-1的历史时刻为异常时刻,则异常值的集合 然后根据第二向量es和异常值的集合通过上述公式(1)确定出检测时刻t的误差阈值s1,最后根据第一误差与误差阈值s1的大小确定检测时刻是否为异常时刻。如,第一误差大于误差阈值s1,则检测时刻为异常时刻。
需要说明的是,在本发明中,不局限于对输出节点的检测,也可以对第二节点反馈的各邻居节点进行检测,但会相应的增加检测过程中的计算量。
其中,指数移动加权平均算法用于对第一向量e分别给予不同的权数,按不同权数求得移动平均值,并以最后的移动平均值为基础,确定第二向量es。
本发明实施例中,神经网络模型是根据M个历史时刻上报的各邻居节点与第一节点之间的逻辑距离进行训练的到的,例如,将检测时刻的前一时刻至前M各时刻的M个历史时刻第一节点得到的各居节点作为训练样本,根据M个训练样本进行训练,得到神经网络模型。
进一步地,可以通过Dropout方法训练神经网络模型,以防止神经网络模型在训练时存在过拟合且训练时间过长的缺陷。
本发明中所提及的任一逻辑距离包括但不限于通过节点ID得到的逻辑距离通过归一化、one-hot编码处理后的距离特征。
基于相同的技术构思,图4示例性的示出了本发明实施例提供的一种区块链日蚀攻击检测的装置的结构示意图,该装置可以执行区块链日蚀攻击检测的方法的流程。
如图4所示,该装置具体包括:
计算模块410,用于基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在所述检测时刻的各输出节点;所述各第二节点为所述第一节点的分布式路由表中的节点;所述各邻居节点为第二节点的分布式路由表中的节点;
确定所述检测时刻的各输出节点分别与所述第一节点之间的各第一逻辑距离;
处理模块420,用于针对所述检测时刻之前的至少一个历史时刻,确定所述历史时刻的各输出节点分别与所述第一节点之间的各第二逻辑距离;
根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中。
可选的,所述处理模块420具体用于:
根据所述至少一个历史时刻的各第二逻辑距离,通过神经网络模型,确定所述检测时刻的预测逻辑距离;
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述第一节点是否处于日蚀攻击中。
可选的,所述处理模块420具体用于:
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述检测时刻是否为异常时刻;
若所述第一节点存在多个连续的异常时刻,则确定所述第一节点处于日蚀攻击中。
可选的,所述处理模块420具体用于:
针对任一所述第一逻辑距离,根据所述第一逻辑距离与所述检测时刻的预测逻辑距离,确定第一误差;
针对N个历史时刻中的任一历史时刻,基于所述历史时刻的各第二逻辑距离和所述历史时刻的预测逻辑距离,确定各第二误差;
根据所述N个历史时刻的各第二误差和所述第一误差,确定误差阈值;
若所述第一误差大于所述误差阈值,则确定所述检测时刻为异常时刻。
可选的,所述处理模块420具体用于:
根据所述N个历史时刻的各第二误差和所述第一误差得到第一向量;
根据所述第一向量和指数移动加权平均算法确定第二向量;
根据所述第二向量得到所述误差阈值。
可选的,根据公式(1)得到所述误差阈值,包括:
其中,∈为误差阈值;μ(es)为所述第二向量的平均值;σ(es)为所述第二向量的标准差;Δμ(es)为所述第二向量中异常值的平均值;Δσ(es)为所述第二向量中异常值的标准差;|ea|为所述第二向量中异常值的集合的模;|Eseq|2为所述第二向量中,连续的异常值的集合的模的平方;所述异常值是所述第二向量中历史时刻为异常时刻的值。
可选的,所述神经网络模型是根据M个历史时刻上报的各邻居节点与所述第一节点之间的逻辑距离进行训练的到的。
基于相同的技术构思,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链日蚀攻击检测的方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述区块链日蚀攻击检测的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种区块链日蚀攻击检测的方法,其特征在于,包括:
基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在所述检测时刻的各输出节点;所述各第二节点为所述第一节点的分布式路由表中的节点;所述各邻居节点为第二节点的分布式路由表中与目标节点之间的逻辑距离最小的各节点;所述目标节点是所述第一节点随机生成的;所述第二节点为所述第一节点从自身的分布式路由表中找出的与所述第一节点之间的逻辑距离小于所述第一节点与所述目标节点之间的逻辑距离的节点;所述各输出节点为从所述各邻居节点中确定出的与所述第一节点之间的逻辑距离最小的多个邻居节点;
确定所述检测时刻的各输出节点分别与所述第一节点之间的各第一逻辑距离;
针对所述检测时刻之前的至少一个历史时刻,确定所述历史时刻的各输出节点分别与所述第一节点之间的各第二逻辑距离;
根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中。
2.如权利要求1所述的方法,其特征在于,根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中,包括:
根据所述至少一个历史时刻的各第二逻辑距离,通过神经网络模型,确定所述检测时刻的预测逻辑距离;
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述第一节点是否处于日蚀攻击中。
3.如权利要求2所述的方法,其特征在于,根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述第一节点是否处于日蚀攻击中,包括:
根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述检测时刻是否为异常时刻;
若所述第一节点存在多个连续的异常时刻,则确定所述第一节点处于日蚀攻击中。
4.如权利要求3所述的方法,其特征在于,根据所述各第一逻辑距离与所述检测时刻的预测逻辑距离,确定所述检测时刻是否为异常时刻,包括:
针对任一所述第一逻辑距离,根据所述第一逻辑距离与所述检测时刻的预测逻辑距离,确定第一误差;
针对N个历史时刻中的任一历史时刻,基于所述历史时刻的各第二逻辑距离和所述历史时刻的预测逻辑距离,确定各第二误差;
根据所述N个历史时刻的各第二误差和所述第一误差,确定误差阈值;
若所述第一误差大于所述误差阈值,则确定所述检测时刻为异常时刻。
5.如权利要求4所述的方法,其特征在于,根据所述N个历史时刻的各第二误差和所述第一误差,确定误差阈值,包括:
根据所述N个历史时刻的各第二误差和所述第一误差得到第一向量;
根据所述第一向量和指数移动加权平均算法确定第二向量;
根据所述第二向量得到所述误差阈值。
7.如权利要求2所述的方法,其特征在于,所述神经网络模型是根据M个历史时刻上报的各邻居节点与所述第一节点之间的逻辑距离进行训练的到的。
8.一种区块链日蚀攻击检测的装置,其特征在于,包括:
计算模块,用于基于各第二节点在检测时刻上报的各邻居节点,确定第一节点在所述检测时刻的各输出节点;所述各第二节点为所述第一节点的分布式路由表中的节点;所述各邻居节点为第二节点的分布式路由表中与目标节点之间的逻辑距离最小的各节点;所述目标节点是所述第一节点随机生成的;所述第二节点为所述第一节点从自身的分布式路由表中找出的与所述第一节点之间的逻辑距离小于所述第一节点与所述目标节点之间的逻辑距离的节点;所述各输出节点为从所述各邻居节点中确定出的与所述第一节点之间的逻辑距离最小的多个邻居节点;
确定所述检测时刻的各输出节点分别与所述第一节点之间的各第一逻辑距离;
处理模块,用于针对所述检测时刻之前的至少一个历史时刻,确定所述历史时刻的各输出节点分别与所述第一节点之间的各第二逻辑距离;
根据所述各第一逻辑距离和至少一个历史时刻的各第二逻辑距离,确定所述第一节点是否处于日蚀攻击中。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011486985.5A CN112653682B (zh) | 2020-12-16 | 2020-12-16 | 一种区块链日蚀攻击检测的方法及装置 |
PCT/CN2021/124772 WO2022127342A1 (zh) | 2020-12-16 | 2021-10-19 | 一种区块链日蚀攻击检测的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011486985.5A CN112653682B (zh) | 2020-12-16 | 2020-12-16 | 一种区块链日蚀攻击检测的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112653682A CN112653682A (zh) | 2021-04-13 |
CN112653682B true CN112653682B (zh) | 2022-12-27 |
Family
ID=75354318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011486985.5A Active CN112653682B (zh) | 2020-12-16 | 2020-12-16 | 一种区块链日蚀攻击检测的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112653682B (zh) |
WO (1) | WO2022127342A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112653682B (zh) * | 2020-12-16 | 2022-12-27 | 深圳前海微众银行股份有限公司 | 一种区块链日蚀攻击检测的方法及装置 |
CN114462589B (zh) * | 2021-09-28 | 2022-11-04 | 北京卫达信息技术有限公司 | 正常行为神经网络模型训练方法、系统、装置及存储介质 |
CN113783901B (zh) * | 2021-11-15 | 2022-02-08 | 湖南宸瀚信息科技有限责任公司 | 一种基于区块链的多通信节点协同抗攻击网络系统 |
CN114285640B (zh) * | 2021-12-24 | 2023-07-18 | 重庆邮电大学 | 面向区块链中以太坊节点日蚀攻击的检测系统及检测方法 |
CN114389859B (zh) * | 2021-12-24 | 2023-07-18 | 重庆邮电大学 | 面向区块链中以太坊节点女巫攻击的检测系统及检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
WO2019242340A1 (zh) * | 2018-06-22 | 2019-12-26 | 深圳前海益链网络科技有限公司 | 一种防范对区块链网络进行短暂分叉双花攻击的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701771A (zh) * | 2013-11-26 | 2014-04-02 | 中国十七冶集团有限公司 | 一种用于检测物联网Sybil攻击新方法 |
CN104125572B (zh) * | 2014-07-17 | 2017-08-11 | 南京邮电大学 | 基于节点协作的Sybil攻击检测方法 |
CN106888205B (zh) * | 2017-01-04 | 2020-02-18 | 浙江大学 | 一种非侵入式基于功耗分析的plc异常检测方法 |
CN108965259B (zh) * | 2018-06-21 | 2021-03-26 | 佛山科学技术学院 | 一种区块链恶意节点发现与隔离方法及装置 |
CN109088862B (zh) * | 2018-07-24 | 2021-01-12 | 中国计量大学 | 一种基于分布式系统的节点性质识别方法 |
WO2020099924A1 (en) * | 2018-11-08 | 2020-05-22 | Iagon As | Intelligent, decentralized and autonomous marketplace for distributed computing and storage |
CN110191116B (zh) * | 2019-05-24 | 2021-10-26 | 北京清红微谷技术开发有限责任公司 | 恶意节点隔离方法和系统、算力验证终端及p2p网络 |
CN110730195B (zh) * | 2019-12-18 | 2020-03-31 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置以及计算机可读存储介质 |
CN112653682B (zh) * | 2020-12-16 | 2022-12-27 | 深圳前海微众银行股份有限公司 | 一种区块链日蚀攻击检测的方法及装置 |
-
2020
- 2020-12-16 CN CN202011486985.5A patent/CN112653682B/zh active Active
-
2021
- 2021-10-19 WO PCT/CN2021/124772 patent/WO2022127342A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019242340A1 (zh) * | 2018-06-22 | 2019-12-26 | 深圳前海益链网络科技有限公司 | 一种防范对区块链网络进行短暂分叉双花攻击的方法 |
CN110493198A (zh) * | 2019-07-26 | 2019-11-22 | 北京工业大学 | 一种基于改进PBFT算法防御区块链中Sybil攻击的方法 |
Non-Patent Citations (1)
Title |
---|
基于免疫的区块链eclipse攻击的异常检测;吕婧淑等;《计算机科学》;20180215;第45卷(第02期);第8-14页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022127342A1 (zh) | 2022-06-23 |
CN112653682A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112653682B (zh) | 一种区块链日蚀攻击检测的方法及装置 | |
Reddy et al. | Deep neural network based anomaly detection in Internet of Things network traffic tracking for the applications of future smart cities | |
Haggag et al. | Implementing a deep learning model for intrusion detection on apache spark platform | |
US20210203605A1 (en) | Method and apparatus for detecting abnormal traffic pattern | |
Ortet Lopes et al. | Towards effective detection of recent DDoS attacks: A deep learning approach | |
CN112364304B (zh) | 一种区块链的日蚀攻击检测方法及装置 | |
CN107733877B (zh) | 一种物联网无线通讯架构的管理方法及系统 | |
Sanchez et al. | Evaluating ML-based DDoS detection with grid search hyperparameter optimization | |
Benferhat et al. | A naive bayes approach for detecting coordinated attacks | |
CN111709022B (zh) | 基于ap聚类与因果关系的混合报警关联方法 | |
CN113162888B (zh) | 安全威胁事件处理方法、装置及计算机存储介质 | |
Gelenbe et al. | G-networks can detect different types of cyberattacks | |
Dong et al. | Integration of edge computing and blockchain for provision of data fusion and secure big data analysis for Internet of Things | |
Marchetti et al. | Framework and models for multistep attack detection | |
Roy et al. | Exploiting Deep Learning Based Classification Model for Detecting Fraudulent Schemes over Ethereum Blockchain | |
CN109040075B (zh) | 无线移动传感器网络中节点的管理方法、服务器和系统 | |
CN115208604B (zh) | 一种ami网络入侵检测的方法、装置及介质 | |
Wong et al. | Data Reduction with Real-Time Critical Data Forwarding for Internet-of-Things | |
CN114205816A (zh) | 一种电力移动物联网信息安全架构及其使用方法 | |
Bouzeraib et al. | A Blockchain Data Balance Using a Generative Adversarial Network Approach: Application to Smart House IDS | |
Amir et al. | Efficient & Sustainable Intrusion Detection System Using Machine Learning & Deep Learning for IoT | |
KR102609592B1 (ko) | IoT 시스템의 비정상행위 탐지 방법 및 그 장치 | |
Khoa et al. | A deep transfer learning approach for flow-based intrusion detection in SDN-enabled network | |
Janicijevic et al. | Performance of Sine Cosine Algorithm for ANN Tuning and Training for IoT Security | |
CN114500102B (zh) | 一种基于抽样的边缘计算架构物联网入侵检测系统及方法 |
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 |