CN115412336A - 联盟链账本篡改攻击检测方法、装置及电子设备 - Google Patents
联盟链账本篡改攻击检测方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115412336A CN115412336A CN202211031668.3A CN202211031668A CN115412336A CN 115412336 A CN115412336 A CN 115412336A CN 202211031668 A CN202211031668 A CN 202211031668A CN 115412336 A CN115412336 A CN 115412336A
- Authority
- CN
- China
- Prior art keywords
- endorsement
- chain
- attack
- tampering
- ledger
- 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.)
- Granted
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
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种联盟链账本篡改攻击检测方法、装置及电子设备,预先采用机器学习分类算法训练得到联盟链账本篡改攻击检测模型,在对联盟链账本篡改攻击的实时检测阶段,首先通过监控节点收集联盟链中Peer节点的运行数据,进而对运行数据进行特征提取得到相应的特征向量,进一步将运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,以通过该联盟链账本篡改攻击检测模型获取联盟链的账本篡改攻击检测结果。本发明将机器学习引入联盟链账本篡改攻击检测,根据联盟链账本篡改攻击的特点设计数据特征及特征提取方法,从而实现高效攻击检测。
Description
技术领域
本发明涉及区块链技术领域,更具体地说,涉及一种联盟链账本篡改攻击检测方法、装置及电子设备。
背景技术
当前在联盟链的实际应用场景中,由于联盟链节点受控接入、节点规模较小,相较于公有链来说更加容易遭受账本篡改攻击。以Fabric为例,联盟链账本篡改攻击检测面临着如下问题:
没有针对联盟链账本篡改攻击的高效检测方案。账本篡改攻击已经在公有链造成过严重的危害,例如2019年以来以太坊经典接连遭受51%攻击,并引发账本篡改攻击。联盟链被用于多个行业的关键敏感业务,这些业务对整个系统的安全性提出更高的要求,目前针对联盟链账本篡改攻击的检测大多采用基于规则的检测方案,但这种方案会对系统造成很大的性能负担,影响系统吞吐量。
发明内容
有鉴于此,为解决上述问题,本发明提供一种联盟链账本篡改攻击检测方法、装置及电子设备,技术方案如下:
一种联盟链账本篡改攻击检测方法,所述方法包括:
通过监控节点收集联盟链中Peer节点的运行数据;
对所述运行数据进行特征提取得到相应的特征向量;
将所述运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,并获取所述联盟链账本篡改攻击检测模型输出的所述联盟链的账本篡改攻击检测结果;
其中,所述联盟链账本篡改攻击检测模型是预先采用机器学习分类算法训练得到的。
优选的,所述通过监控节点收集联盟链中Peer节点的运行数据,包括:
通过监控节点收集所述联盟链中Peer节点单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间。
优选的,所述对所述运行数据进行特征提取得到相应的特征向量,包括:
对所收集的Peer节点的背书读写集进行one-hot编码,并基于编码结果确定读写集状态距离参考系;根据所述读写集状态距离参考系和编码结果计算背书读写集相似度;以及,
对所收集的Peer节点的背书时间进行方差计算,得到背书时间方差;以及,
对所收集的Peer节点的验证时间进行均值计算,得到验证时间均值。
优选的,所述方法还包括:
如果所述联盟链的账本篡改攻击检测结果表征所述联盟链出现账本篡改攻击,输出告警信息。
优选的,所述机器学习分类算法包括:决策树、随机森林、支持向量机、 K最近邻、逻辑回归和朴素贝叶斯中的一种。
一种联盟链账本篡改攻击检测装置,所述装置包括:
运行监控模块,用于通过监控节点收集联盟链中Peer节点的运行数据;
特征提取模块,用于对所述运行数据进行特征提取得到相应的特征向量;
攻击检测模块,用于将所述运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,并获取所述联盟链账本篡改攻击检测模型输出的所述联盟链的账本篡改攻击检测结果;其中,所述联盟链账本篡改攻击检测模型是预先采用机器学习分类算法训练得到的。
优选的,所述运行监控模块,具体用于:
通过监控节点收集所述联盟链中Peer节点单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间。
优选的,所述特征提取模块,具体用于:
对所收集的Peer节点的背书读写集进行one-hot编码,并基于编码结果确定读写集状态距离参考系;根据所述读写集状态距离参考系和编码结果计算背书读写集相似度;以及,对所收集的Peer节点的背书时间进行方差计算,得到背书时间方差;以及,对所收集的Peer节点的验证时间进行均值计算,得到验证时间均值。
优选的,所述攻击检测模块,还用于:
如果所述联盟链的账本篡改攻击检测结果表征所述联盟链出现账本篡改攻击,输出告警信息。
一种电子设备,所述电子设备包括:至少一个存储器和至少一个处理器;所述存储器存储有应用程序,所述处理器调用所述存储器存储的应用程序,所述应用程序用于实现所述的联盟链账本篡改攻击检测方法。
相较于现有技术,本发明实现的有益效果为:
本发明提供一种联盟链账本篡改攻击检测方法、装置及电子设备,预先采用机器学习分类算法训练得到联盟链账本篡改攻击检测模型,在对联盟链账本篡改攻击的实时检测阶段,首先通过监控节点收集联盟链中Peer节点的运行数据,进而对运行数据进行特征提取得到相应的特征向量,进一步将运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,以通过该联盟链账本篡改攻击检测模型获取联盟链的账本篡改攻击检测结果。本发明将机器学习引入联盟链账本篡改攻击检测,根据联盟链账本篡改攻击的特点设计数据特征及特征提取方法,从而实现高效攻击检测。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的联盟链账本篡改攻击检测方法的方法流程图;
图2为本发明实施例提供的联盟链账本篡改攻击检测流程示意图;
图3为本发明实施例提供的联盟链账本篡改攻击检测装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为方便理解本发明,以下对本发明的相关概念进行说明:
公有链:以比特币和以太坊为典型代表,任何人或机构都可以加入,链上记录对所有参与者公开。
联盟链:属于准入受控的区块链,在一群已知的、有身份认证的参与者之间组建链。
账本篡改攻击:在比特币等公有链中,采用PoW(Proof of Work,工作量证明)共识机制来解决如何获得记账权的问题,比特币网络中最先解出数学难题的节点优先获得区块记账权,这个过程称为挖矿,争夺记账权的根据是算力的大小,由于算力分散在各个矿工手中,所以可以保证不会有算力过度集中现象,但如果全网超50%的算力合谋或者攻击者控制了超50%的算力,就可以实现51%攻击,达到篡改全网区块链账本的效果,此时攻击者可以生成一条最长的链,这条链中的交易被篡改过,而其他节点会丢弃自己本地的短链,去同步最长的链,此时区块链的不可篡改性就无法保证,从而达成账本篡改攻击,即公有链中可以通过51%攻击实现账本篡改攻击。
与公有链类似,联盟链中也存在账本篡改攻击,由于联盟链中的共识不需要采用算力,因此在联盟链中实现账本篡改攻击不需要掌握超过全网一半的算力,但在联盟链中可以通过篡改状态数据库的方式实现账本篡改攻击。以联盟链的典型代表Fabric为例,只要交易符合背书策略即可被链中所有的成员验证为有效,然后记入账本中。背书策略由用户在实例化智能合约时指定,如可以设定背书策略为链中半数以上的成员节点背书,如果被篡改状态数据的主体超过半数,此时基于篡改数据发起的交易符合背书策略,因此就会被联盟链中所有的成员验证通过后更新到自己本地账本,从而实现账本篡改攻击,即整个区块链网络中的账本都会被篡改,这直接破坏了区块链的不可篡改性。
One-Hot编码:又称为一位有效编码,主要是采用位状态寄存器来对状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。
发明人经研究发现,以Fabric网络为例,联盟链账本篡改攻击检测面临着如下问题:
(1)没有针对联盟链账本篡改攻击的高效检测方案。账本篡改攻击已经在公有链造成过严重的危害,例如2019年以来以太坊经典接连遭受51%攻击,并引发账本篡改攻击。联盟链被用于多个行业的关键敏感业务,这些业务对整个系统的安全性提出更高的要求,目前针对联盟链账本篡改攻击的检测大多采用基于规则的检测方案,但这种方案会对系统造成很大的性能负担,影响系统吞吐量。而本发明拟采用机器学习的检测方法,降低对联盟链系统的影响。
(2)缺少联盟链账本篡改攻击检测所需的数据集,采用机器学习的检测方法最关键的要素是数据集,但目前缺乏用于训练模型的数据集,需要提取出账本篡改攻击关联的关键数据特征,建立数据集并训练相应模型。
(3)如何设计高精度、轻量级的实时检测流程。现有基于机器学习的账本篡改攻击检测方案主要面向公有链,并且为线下模式,无法实现对攻击的实时检测。
进一步,发明人对现有技术做出如下分析:
机器学习通过大量的数据学习过程,将使学习者对现实世界中的事件做出决策和预测,准确程度取决于算法的完善程度,以及训练量的大小。机器学习这种训练过程也是与硬编码解决特定任务的传统软件程序的不同之处。在很多场景下,用机器学习的方法进行异常检测,比传统的基于规则的检测方法具有更多的优势。
Fabric联盟链使用证书系统建立区块链身份准入机制。Fabric主要面向机构企业,需要解决机构协作间的信任等问题,并要求组建链的机构进行身份认证,链上成员的个数可控。其次,不同于传统公有链的“排序-执行”架构, Fabric采用“执行-排序-验证”架构。具体来讲,Fabric网络包括Peer、Orderer 以及客户端三类节点。交易过程分为背书阶段、排序阶段以及验证阶段。为了提高区块链中数据的查询速度,Fabric除了文件账本外,还采用数据库存储区块链网络中数据的最新状态,可选的数据库方案包括LevelDB或者CouchDB,这两种都是key-value(键-值)形式的数据库。Fabric中的交易首先被模拟执行得到读写集并被签名背书,然后模拟执行后的交易被排序打包成区块,最后区块中的交易被验证并提交到账本。Fabric引入了背书策略的概念,在交易验证阶段使用背书策略验证交易的有效性。客户端发送交易给背书策略指定的Peers背书节点。每个交易都被Peers模拟执行得到读写集,读集代表交易模拟执行时涉及到的存储在状态数据库中的key以及key的version,写集代表模拟执行后产生的状态更新,也就是被更改的key以及key 对应的新value。Peers会对交易的读写集进行签名,这一步称为背书。下一步,交易进入排序环节,客户端收集背书结果,把背书后的交易发送给Orderer 排序节点,由Orderer排序节点把交易排序打包成区块。然后区块被广播给所有的Peers。每个Peer在验证阶段依据背书策略验证交易的有效性。如果交易有效,则把交易有效标志位设置为是,同时把交易的写集更新到本地的状态数据库中,如果交易无效,则把交易有效标志位设置为否,同时放弃交易的写集,不更新本地的状态数据库。
现有技术难以实现对账本篡改攻击进行高效精准的检测,尤其不能在联盟链的环境下进行账本篡改攻击异常检测。专利《防止51%攻击的方法,区块链系统及计算机可读存储介质》(公开号CN 108537550A)公开了一种实名区块链PoS机制下有效防止51%攻击的方法,通过预先设置的调制因子函数及账户的持币币重对所述账户的打包难度进行调整,但该专利面向的是对 51%攻击的预防,无法实现对51%攻击的高效精准检测。专利《一种区块链安全机制及装置》(公开号CN 108880795A)提出了一种区块链安全认证机制,防止攻击者通过51%攻击实现对区块链的篡改,这种安全认证方案通过验证上一个区块的哈希值来检测区块链是否被篡改,但是目前联盟链中的账本篡改攻击并不会直接对区块账本文件进行篡改,直接修改状态数据库也可以达到修改全局账本的效果,因此无法针对联盟链的账本篡改攻击进行检测和防护,并且该方案中多次的密码学校验操作会占用大量节点算力,大大降低了区块链系统的性能。
最后,发明人经研究发现,现有技术的缺点主要集中在以下的几个方面:
(1)虽然有针对公有链的账本篡改攻击检测方案,但由于账本篡改攻击在公有链和联盟链上的差异,公有链上的检测方案并不适用于联盟链;(2) 对区块链上的账本篡改攻击检测需要大量的密码学操作占用了大量节点算力,降低区块链整体性能;(3)仅针对发生概率较小的直接账本修改提出攻击检测方法,而对修改状态数据库这种操作性更强的攻击手段没有检测方案; (4)告警较为滞后,通常在篡改被写入账本之后才能检测出异常操作的发生。
为解决上述问题,本发明将机器学习引入联盟链异常检测过程,设计了一种基于机器学习的联盟链账本篡改攻击检测方法,实现以下几个目的:
(1)对联盟链账本篡改攻击进行分析,根据联盟链账本篡改攻击的特点设计数据特征及特征提取方法,从而构建检测所需的数据集。
(2)提出基于机器学习的联盟链账本篡改攻击检测模型。
(3)设计实时完整的针对联盟链账本篡改攻击的数据收集、特征提取、攻击检测、告警工作流。
参见图1,图1为本发明实施例提供的联盟链账本篡改攻击检测方法的方法流程图,该联盟链账本篡改攻击检测方法包括如下步骤:
S10,通过监控节点收集联盟链中Peer节点的运行数据。
本发明实施例中,在对联盟链账本篡改攻击的实时检测阶段,可以通过监控节点收集联盟链中各Peer节点实时的运行数据,该运行数据作为后续进行联盟链账本篡改攻击检测的依据。
继续以Fabric网络为例,Fabric网络主要由Orderer节点、Peer节点和 Client(客户端)组成。本发明实施例中用于检测的数据特征主要来自于Peer 运行时的数据(即运行数据),而为了能够从Peer节点中获取实时的运行数据,本发明为每个Peer节点启动一个伴随的监控节点进行监控数据收集,一个Peer节点使用一个监控节点、且不同Peer节点不共用监控节点。
具体实现过程中,步骤S10“通过监控节点收集联盟链中Peer节点的运行数据”可以采用如下步骤:
通过监控节点收集联盟链中Peer节点单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间。
对于监控节点收集所属Peer节点的运行数据,本发明实施例中,该运行数据包括单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间;其中,单次交易的背书读写集即一次交易的背书读写集、交易完成的背书时间即完成一次交易所需的背书时间、交易完成的验证时间即完成一次交易所需的验证时间。在对联盟链账本篡改攻击的实时检测阶段,可以按照一定的时间规律,比如每隔1分钟的频率收集联盟链中Peer节点的运行数据,还可以按照单次交易触发一次收集的频率进行,即每当有新的交易发生,则在所有相关的Peer节点上进行一次运行数据的收集。
S20,对运行数据进行特征提取得到相应的特征向量。
本发明实施例中,对于收集到的运行数据,可以利用本发明的特征计算方法计算数据特征,即特征向量,包括背书读写集相似度、背书时间方差和验证时间均值,以此生成3维的特征向量。以下首先对特征向量选择背书读写集相似度、背书时间方差和验证时间均值的选择依据进行说明:
(1)背书读写集相似度的选择依据如下:
在Fabric交易流程的背书阶段,每个Peer节点都会生成一个读写集,读写集的值依赖于Peer节点本地状态数据库中存储的值,状态数据篡改可能会更改状态数据库中存储的key的value值以及version,从而导致不同的Peer 节点产生的背书读写集有差异。因此,可以将背书读写集相似度作为一个特征。
(2)背书时间方差的选择依据如下:
对状态数据的篡改本质是对数据库的修改,由于背书时需要进行交易的模拟执行,而模拟执行的输入来自于状态数据库,比如智能合约的函数中对不同类别的输入可能会选择不同的代码分支执行,当数据被篡改后,被篡改数据的节点与正常节点在模拟执行时,可能会选择不同的代码分支执行,从而导致背书时间的不一致。
(3)验证时间均值的选择依据如下:
验证阶段是Fabric交易流程的第三个阶段,Peer节点对收到的区块中的每笔交易读写集进行验证。修改状态数据库后,被修改的节点与其他节点产生的背书读写集不同,由于交易的读写集是所有背书节点读写集的集合,从而导致攻击发生时待验证的交易读写集与未受到攻击时的交易读写集有差别,即交易验证时间也有差异。并且验证阶段,Peer节点需要验证本地状态数据的version与被验证交易的读写集version是否一致。如果Peer本地的version被篡改过,也会导致验证过程与未受到攻击时的验证过程有差别。
具体实现过程中,步骤S20“对运行数据进行特征提取得到相应的特征向量”可以采用如下步骤:
对所收集的Peer节点的背书读写集进行one-hot编码,并基于编码结果确定读写集状态距离参考系;根据读写集状态距离参考系和编码结果计算背书读写集相似度;以及,
对所收集的Peer节点的背书时间进行方差计算,得到背书时间方差;以及,
对所收集的Peer节点的验证时间进行均值计算,得到验证时间均值。
本发明实施例,计算背书读写集相似度时,首先将联盟链中各Peer节点最近一次收集的背书读写集(即最近一次交易的背书读写集)采用one-hot编码进行统一编码,以将离散特征的取值扩展到欧式空间、离散特征的某个取值对应欧式空间的某个点,将背书读写集这一离散特征使用one-hot编码会使特征之间的距离计算更加合理。
而在计算背书读写集相似度之前,还需要得到联盟链中大多数Peer节点的背书读写集状态,即读写集状态距离参考系Oc。举例来说,联盟链中有5 个Peer节点,其中3个Peer节点的背书读写集是一致的、另外2个Peer节点的背书读写集与这3个不一致,则这3个Peer节点即为大多数Peer节点。读写集状态距离参考系Oc可以按照以下公式(1)计算得到:
其中,k从0到Ls-1取值,Ls是在读写集中出现的key(键)的数量。j 从0到n-1取值,n代表链中所有Peer节点的个数。为读写集中编号为k的键在第j个Peer节点对应的二进制向量。函数的含义为当 k取值确定时,在所有peer节点出现的次数。函数作用为当的取值最大时,返回对应的
为方便理解本发明,假设联盟链中存在三个Peer节点,分别为P0、P1、 P2,这三个Peer节点产生各自的背书读写集,如表1所示的背书读写集实例,三个Peer节点具有各自对应的读集和写集。
为了实现对背书读写集的编码,本发明首先对所有读写集中的version值和value值做统计,得到不同version值和不同value值的总数,继续参见表1,出现的key(键)有四个,即Ls=4,具体是keyA-version,keyB-version, keyA-value和keyB-value,不同值的总类别数为7,具体是(1,0),(2,0), (1,1),98,99,100和105。
然后,每个version值或者value值会转换为一个长度为7的二进制向量,向量中只有一位为1,其余位为0。举例来说,P0节点的读集中的keyA-version 经过one-hot编码后变为[0,0,0,0,0,0,1],这是由于总类别数为7、且其属于第一类。由此,如表2所示的one-hot编码实例,将表1所示的三个Peer节点的背书读写集经过one-hot编码后,可以得到如表2所示的编码结果。
进一步,如表3所示的读写集状态距离参考系Oc计算实例,经过上述公式(1)计算出每个key(键)对应的读写集状态距离参考系Oc,如表3最后一列所示。
表1读写集实例
表2 one-hot编码实例
表3读写集状态距离参考系Oc计算实例
最后,确定读写集状态距离参考系Oc之后,即可按照如下公式(2)计算得到背书读写集相似度D:
此外,定义第i个Peer节点的背书时间为Ei,可以按照如下公式(3)计算联盟链中n个Peer节点的背书时间方差TE:
另外,定义第i个Peer节点的验证时间为Vi,可以按照如下公式(4)计算联盟链中n个Peer节点的验证时间均值Tv:
S30,将运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,并获取联盟链账本篡改攻击检测模型输出的联盟链的账本篡改攻击检测结果;
其中,联盟链账本篡改攻击检测模型是预先采用机器学习分类算法训练得到的。
本发明实施例中,在对联盟链账本篡改攻击的实时检测阶段,可以将所收集的运行数据的特征向量,即背书读写集相似度、背书时间方差和验证时间均值输入至联盟链账本篡改攻击检测模型中,通过该联盟链账本篡改攻击检测模型对所输入的运行数据的特征向量进行处理,得到联盟链的账本篡改攻击检测结果,即为联盟链出现账本篡改攻击的概率。
需要说明的是,本发明实施例中联盟链账本篡改攻击检测模型采用机器学习分类算法所构建的,该机器学习分类算法可以为决策树、随机森林、支持向量机、K最近邻、逻辑回归和朴素贝叶斯中的一种。在该联盟链账本篡改攻击检测模型的模型训练阶段,可以如步骤S10通过监控节点收集联盟链中Peer节点的运行数据,将所收集的运行数据作为训练样本,在模型训练节点按照单次交易触发一次收集的频率进行,即每当有新的交易发生,则在所有相关的Peer节点上进行一次运行数据的收集,由此可以收集到大量的正常样本和攻击发生时的异常样本(也可称之为攻击样本),进而如步骤S20对正常样本和异常样本进行特征提取得到相应的特征向量以此形成数据集,从而采用机器学习分类算法将该数据集用于模型训练。而在获得训练用的数据集后,采用机器学习分类算法训练模型的过程可以采用现有方案,在此不再赘述。
还需要说明的是,在实际应用中,可以在不同联盟链上进行账本篡改攻击模拟,采集联盟链正常运行状态下,以及攻击发生时的背书读写集、背书时间、验证时间等数据制作范围更广的数据集,增加用于训练的数据集体量,从而提高模型的训练和泛化效果。
在实际应用中,发明人经研究发现,随机森林与诸如决策树、支持向量机、K最近邻、逻辑回归和朴素贝叶斯等其它机器学习分类算法相比,准确率更好,对此,本发明实施例中机器学习分类算法优选采用随机森林,根据随机森林中所有决策树的输出投票选择结果。进一步的,经发明人实验发现,在本发明中随机森林中的决策树个数优选的设置为10,这可以兼顾联盟链账本篡改攻击检测模型的准确率和时间成本。
在一些实施例中,为及时用户联盟链出现账本篡改攻击,本发明实施例提供的联盟链账本篡改攻击检测方法还包括如下步骤:
如果联盟链的账本篡改攻击检测结果表征联盟链出现账本篡改攻击,输出告警信息。
本发明实施例中,联盟链的账本篡改攻击检测结果即联盟链出现账本篡改攻击的概率,如果该概率大于预设的阈值,则以预定的方式输出告警信息。
参见图2,图2为本发明实施例提供的联盟链账本篡改攻击检测流程示意图。继续参见图2,本发明将机器学习方法引入联盟链账本篡改攻击检测,通过分析联盟链在遭遇账本篡改攻击时的数据变化特点和攻击路径收集相关数据集(包括正常样本以及模拟攻击过程的攻击样本)并经特征提取构建数据集;然后利用随机森林(即图2中的随机森林分类器,包括1~n个决策树,优选的,n=10)进行联盟链账本篡改攻击检测模型训练;最后,对实时收集的运行数据(即图2中的待检测数据)进行特征提取,并利用训练得到的联盟链账本篡改攻击检测模型进行检测,得出检测结果,即联盟链是否发生账本篡改攻击的概率,可以实现对联盟链账本篡改攻击的实时检测。
经过对本发明所提出的联盟链账本篡改攻击检测方法进行了充分的性能测评,确定本发明可以取得较高的准确率、F1值等指标。与基于规则的检测方案相比,本发明的检测方案在识别耗时、区块链性能损耗方面都具有更好的性能。
本发明实施例提供的联盟链账本篡改攻击检测方法,具有如下优势:
(1)构建联盟链账本篡改攻击检测所需的数据集,并利用机器学习的方法实现攻击检测,相比于基于规则的检测方法,减少了对联盟链系统的性能影响。
(2)实现了基于随机森林的联盟链账本篡改攻击的实时检测,可以在联盟链运行过程中实时告警。
(3)在不改变联盟链工作流及区块数据结构的情况下完成了数据采集、攻击检测、结果告警,布置难度低,对联盟链主体结构影响小。
基于上述实施例提供的联盟链账本篡改攻击检测方法,本发明实施例则对应提供执行上述联盟链账本篡改攻击检测方法的装置,该装置的结构示意图如图3所示,包括:
运行监控模块10,用于通过监控节点收集联盟链中Peer节点的运行数据;
特征提取模块20,用于对运行数据进行特征提取得到相应的特征向量;
攻击检测模块30,用于将运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,并获取联盟链账本篡改攻击检测模型输出的联盟链的账本篡改攻击检测结果;其中,联盟链账本篡改攻击检测模型是预先采用机器学习分类算法训练得到的。
可选的,运行监控模块10,具体用于:
通过监控节点收集联盟链中Peer节点单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间。
可选的,特征提取模块20,具体用于:
对所收集的Peer节点的背书读写集进行one-hot编码,并基于编码结果确定读写集状态距离参考系;根据读写集状态距离参考系和编码结果计算背书读写集相似度;以及,对所收集的Peer节点的背书时间进行方差计算,得到背书时间方差;以及,对所收集的Peer节点的验证时间进行均值计算,得到验证时间均值。
可选的,攻击检测模块30,还用于:
如果联盟链的账本篡改攻击检测结果表征联盟链出现账本篡改攻击,输出告警信息。
可选的,机器学习分类算法包括:决策树、随机森林、支持向量机、K 最近邻、逻辑回归和朴素贝叶斯中的一种。
优选的,攻击检测模块30,还用于:
如果所述联盟链的账本篡改攻击检测结果表征所述联盟链出现账本篡改攻击,输出告警信息。
需要说明的是,本发明实施例中各模块的细化功能可以参见上述联盟链账本篡改攻击检测方法实施例对应公开部分,在此不再赘述。
基于上述实施例提供的联盟链账本篡改攻击检测方法,本发明实施例还提供一种电子设备,电子设备包括:至少一个存储器和至少一个处理器;存储器存储有应用程序,处理器调用存储器存储的应用程序,应用程序用于实现联盟链账本篡改攻击检测方法。
基于上述实施例提供的联盟链账本篡改攻击检测方法,本发明实施例还提供一种存储介质,存储介质存储有计算机程序代码,计算机程序代码执行时实现联盟链账本篡改攻击检测方法。
以上对本发明所提供的一种联盟链账本篡改攻击检测方法、装置及电子设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种联盟链账本篡改攻击检测方法,其特征在于,所述方法包括:
通过监控节点收集联盟链中Peer节点的运行数据;
对所述运行数据进行特征提取得到相应的特征向量;
将所述运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,并获取所述联盟链账本篡改攻击检测模型输出的所述联盟链的账本篡改攻击检测结果;
其中,所述联盟链账本篡改攻击检测模型是预先采用机器学习分类算法训练得到的。
2.根据权利要求1所述的方法,其特征在于,所述通过监控节点收集联盟链中Peer节点的运行数据,包括:
通过监控节点收集所述联盟链中Peer节点单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间。
3.根据权利要求2所述的方法,其特征在于,所述对所述运行数据进行特征提取得到相应的特征向量,包括:
对所收集的Peer节点的背书读写集进行one-hot编码,并基于编码结果确定读写集状态距离参考系;根据所述读写集状态距离参考系和编码结果计算背书读写集相似度;以及,
对所收集的Peer节点的背书时间进行方差计算,得到背书时间方差;以及,
对所收集的Peer节点的验证时间进行均值计算,得到验证时间均值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述联盟链的账本篡改攻击检测结果表征所述联盟链出现账本篡改攻击,输出告警信息。
5.根据权利要求1所述的方法,其特征在于,所述机器学习分类算法包括:决策树、随机森林、支持向量机、K最近邻、逻辑回归和朴素贝叶斯中的一种。
6.一种联盟链账本篡改攻击检测装置,其特征在于,所述装置包括:
运行监控模块,用于通过监控节点收集联盟链中Peer节点的运行数据;
特征提取模块,用于对所述运行数据进行特征提取得到相应的特征向量;
攻击检测模块,用于将所述运行数据的特征向量输入至联盟链账本篡改攻击检测模型中,并获取所述联盟链账本篡改攻击检测模型输出的所述联盟链的账本篡改攻击检测结果;其中,所述联盟链账本篡改攻击检测模型是预先采用机器学习分类算法训练得到的。
7.根据权利要求6所述的装置,其特征在于,所述运行监控模块,具体用于:
通过监控节点收集所述联盟链中Peer节点单次交易的背书读写集、交易完成的背书时间、交易完成的验证时间。
8.根据权利要求7所述的装置,其特征在于,所述特征提取模块,具体用于:
对所收集的Peer节点的背书读写集进行one-hot编码,并基于编码结果确定读写集状态距离参考系;根据所述读写集状态距离参考系和编码结果计算背书读写集相似度;以及,对所收集的Peer节点的背书时间进行方差计算,得到背书时间方差;以及,对所收集的Peer节点的验证时间进行均值计算,得到验证时间均值。
9.根据权利要求6所述的装置,其特征在于,所述攻击检测模块,还用于:
如果所述联盟链的账本篡改攻击检测结果表征所述联盟链出现账本篡改攻击,输出告警信息。
10.一种电子设备,其特征在于,所述电子设备包括:至少一个存储器和至少一个处理器;所述存储器存储有应用程序,所述处理器调用所述存储器存储的应用程序,所述应用程序用于实现权利要求1-5任意一项所述的联盟链账本篡改攻击检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211031668.3A CN115412336B (zh) | 2022-08-26 | 2022-08-26 | 联盟链账本篡改攻击检测方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211031668.3A CN115412336B (zh) | 2022-08-26 | 2022-08-26 | 联盟链账本篡改攻击检测方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115412336A true CN115412336A (zh) | 2022-11-29 |
CN115412336B CN115412336B (zh) | 2023-03-31 |
Family
ID=84161123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211031668.3A Active CN115412336B (zh) | 2022-08-26 | 2022-08-26 | 联盟链账本篡改攻击检测方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115412336B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235782A (zh) * | 2023-08-31 | 2023-12-15 | 北京可利邦信息技术股份有限公司 | 基于联盟链实现隐私计算数据安全的方法、系统及终端 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388747A (zh) * | 2018-09-19 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 一种获得网络中用户的置信度的方法和装置 |
US20200372154A1 (en) * | 2019-05-21 | 2020-11-26 | Jaroona Chain Ou | Blockchain security |
CN112685792A (zh) * | 2020-12-04 | 2021-04-20 | 联想(北京)有限公司 | 一种模型验证方法、装置及电子设备 |
CN112910873A (zh) * | 2021-01-27 | 2021-06-04 | 广东工业大学 | 用于区块链事务异常检测的有用工作量证明方法及系统 |
CN114048362A (zh) * | 2022-01-11 | 2022-02-15 | 国网电子商务有限公司 | 基于区块链的电力数据异常检测方法、装置和系统 |
CN114297174A (zh) * | 2020-10-08 | 2022-04-08 | 国际商业机器公司 | 区块链实现的数据迁移审计轨迹 |
CN114331731A (zh) * | 2022-02-28 | 2022-04-12 | 国网电子商务有限公司 | 基于pca与rf的区块链异常检测方法及相关装置 |
CN114463011A (zh) * | 2021-10-15 | 2022-05-10 | 海南火链科技有限公司 | 基于区块链的异常交易检测方法、装置、设备及存储介质 |
-
2022
- 2022-08-26 CN CN202211031668.3A patent/CN115412336B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388747A (zh) * | 2018-09-19 | 2019-02-26 | 阿里巴巴集团控股有限公司 | 一种获得网络中用户的置信度的方法和装置 |
US20200372154A1 (en) * | 2019-05-21 | 2020-11-26 | Jaroona Chain Ou | Blockchain security |
CN114297174A (zh) * | 2020-10-08 | 2022-04-08 | 国际商业机器公司 | 区块链实现的数据迁移审计轨迹 |
CN112685792A (zh) * | 2020-12-04 | 2021-04-20 | 联想(北京)有限公司 | 一种模型验证方法、装置及电子设备 |
CN112910873A (zh) * | 2021-01-27 | 2021-06-04 | 广东工业大学 | 用于区块链事务异常检测的有用工作量证明方法及系统 |
CN114463011A (zh) * | 2021-10-15 | 2022-05-10 | 海南火链科技有限公司 | 基于区块链的异常交易检测方法、装置、设备及存储介质 |
CN114048362A (zh) * | 2022-01-11 | 2022-02-15 | 国网电子商务有限公司 | 基于区块链的电力数据异常检测方法、装置和系统 |
CN114331731A (zh) * | 2022-02-28 | 2022-04-12 | 国网电子商务有限公司 | 基于pca与rf的区块链异常检测方法及相关装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117235782A (zh) * | 2023-08-31 | 2023-12-15 | 北京可利邦信息技术股份有限公司 | 基于联盟链实现隐私计算数据安全的方法、系统及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115412336B (zh) | 2023-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Heterogeneous network representation learning approach for ethereum identity identification | |
Yuan et al. | Phishing detection on ethereum via learning representation of transaction subgraphs | |
Halvaiee et al. | A novel model for credit card fraud detection using Artificial Immune Systems | |
US7854002B2 (en) | Pattern matching for spyware detection | |
CN107003976A (zh) | 基于可准许活动规则确定可准许活动 | |
CN115412336B (zh) | 联盟链账本篡改攻击检测方法、装置及电子设备 | |
Bai et al. | Evolution of transaction pattern in Ethereum: A temporal graph perspective | |
CN114511330B (zh) | 一种基于改进的cnn-rf的以太坊庞氏骗局检测方法及系统 | |
Gupta et al. | Detection of vulnerabilities in blockchain smart contracts: a review | |
He et al. | TokenCat: detect flaw of authentication on ERC20 tokens | |
Morishima et al. | Acceleration of anomaly detection in blockchain using in-GPU cache | |
Sheta et al. | A professional comparison of c4. 5, mlp, svm for network intrusion detection based feature analysis | |
Carminati et al. | A supervised auto-tuning approach for a banking fraud detection system | |
CN115099798A (zh) | 一种基于实体识别的比特币异常地址追踪系统 | |
Sabharwal et al. | Effectiveness analysis of blockchain mechanisms using consensus algorithms | |
Sadreddin et al. | Chunk-based incremental feature learning for credit-card fraud data stream | |
Kim et al. | Temporal Patterns Discovery of Evolving Graphs for Graph Neural Network (GNN)-based Anomaly Detection in Heterogeneous Networks. | |
Qi et al. | Blockchain Data Mining With Graph Learning: A Survey | |
Mahatungade et al. | Performance analysis of Reinforcement Learning for Miner Selection in Blockchain | |
CN112561538A (zh) | 风险模型创制方法、装置、计算机设备及可读存储介质 | |
Xiong et al. | Ethereum phishing detection based on graph neural networks | |
Manikandan et al. | Design of Transactional Prediction using Plan Mine and Genetic Algorithms | |
Wang et al. | Collaborative Prediction in Anti-Fraud System Over Multiple Credit Loan Platforms | |
Huang et al. | PEAE-GNN: Phishing Detection on Ethereum via Augmentation Ego-Graph Based on Graph Neural Network | |
Khatun et al. | An Approach to Detect Phishing Websites with Features Selection Method and Ensemble Learning |
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 |