基于区块链和联邦学习的网络流量入侵检测方法

文档序号:31936236发布日期:2022-10-26 01:50阅读:191来源:国知局
基于区块链和联邦学习的网络流量入侵检测方法

1.本发明涉及工业互联网网络安全领域,尤其涉及一种基于区块链和联邦学习的网络流量入侵检测方法。


背景技术:

2.随着互联网时代的发展,内部威胁、零日漏洞和dos攻击等攻击行为日益增加,工业网络安全变得越来越重要,入侵检测已成为网络攻击检测的一种重要手段。
3.与此同时,随着大数据的进一步发展,数据的隐私性和安全性受到了各国政府的高度重视。在政府隐私保护法规下,从设备端直接获取数据用于流量入侵检测模型的训练变得越来越困难。为了解决数据隐私保护带来的数据孤岛问题,亟须一种完全分布式模型训练架构。
4.目前,基于联邦学习架构的工业互联网网络流量入侵检测算法能够在数据不出本地的情况下,建立一个全局的检测模型。论文《融合区块链与联邦学习的网络入侵检测算法》(任涛、金若辰、罗咏梅,“信息网络安全”,2021年第7期,第27-34页)中提出了一个区块链和联邦学习用于入侵检测的基本架构形式。该论文没有考虑恶意节点参与到模型分布式训练过程中的问题,也没有考虑到攻击类型未知的情况。中国发明专利cn 113794675 a通过联邦学习训练框架联合多个物联网设备协同训练入侵检测模型,并在训练过程中利用区块链及边缘服务器对协同训练结果进行验证共识来获取训练优化后的入侵检测模型。该专利所提出的模型合法性验证机制,可能会将合法节点标记为恶意节点,并且该专利没有考虑数据中存在未知攻击类型时对联邦学习的分布式训练过程造成的影响。
5.在保护数据隐私的情况下,构建全局的网络流量入侵检测模型并实现对零日攻击的检测成为亟待解决的问题。本专利针对这些问题,所提出的算法可以在参训设备间建立起互信机制,有效排除恶意节点的干扰;并实现对新型未标记攻击的检测,即对零日攻击的发现问题。


技术实现要素:

6.为了解决上述问题,本发明提供一种基于区块链和联邦学习的网络流量入侵检测方法,用以在保护数据隐私的情况下,构建全局的网络流量入侵检测模型并实现对零日攻击的检测。本发明采用以下技术方案:一种基于区块链和联邦学习的网络流量入侵检测方法,包括以下步骤:s1,针对工业互联网中各设备在生产过程中产生的本地流量数据集,利用未标记攻击类型检测模型,独立进行新型攻击的检测与标记,得到本地伪标签数据和有标签数据;s2,工业互联网中各设备协作维护一个区块链,并搭建用于网络流量入侵检测的全局检测模型,将全局检测模型发送给各设备;s3,在每一轮通信轮次中,各设备被随机划分为工作节点和挖掘节点;各工作节点利用本地伪标签数据和有标签数据对收到的全局检测模型进行迭代训练,生成本地的局部
检测模型,并将各自的局部检测模型参数加密上传至区块链;各挖掘节点对局部检测模型参数合法性进行验证,排除恶意工作节点和挖掘节点,基于区块链一致性算法生成合法区块;s4,各工作节点从区块链中下载合法区块,利用基于互信息量的联邦聚合算法,实现全局检测模型参数的更新;s5,迭代进行步骤s3-s4,直到训练误差达到误差容限或者到达要求的最大训练轮次,最终得到全局的网络流量入侵检测模型。
7.进一步,所述步骤s1,所述未标记攻击类型检测模型采用深度学习网络架构,包括数据预处理模块、特征提取模块、分类模块和伪标签生成模块;所述数据预处理模块,去除数据集中缺失值超过给定比例的特征,将文本数据类型转换为数值数据,并将数值数据归一化到给定数值范围;所述特征提取模块,基于稀疏自动编码器,获得数据特征的特征表示;所述分类模块,利用特征表示,采用相似度聚类方法对数据集中的未标记攻击类型进行新类发现;所述伪标签生成模块,对网络最后一层输出进行置信度评估,给予其中置信度高于给定范围的数据伪标签。
8.进一步,所述步骤s3,所述各挖掘节点对局部检测模型参数合法性进行验证,排除恶意工作节点,包括:所述各挖掘节点分别对收到的局部检测模型参数进行验证,并将第步通信轮次的模型重建损失与第步通信轮次的模型重建损失相比较,如果两者之差超出阈值,则将产生该局部检测模型参数的工作节点标记为非法,否则将其标记为合法;所述各挖掘节点共同对某一工作节点的局部检测模型参数进行联合投票,如果该工作节点被标记的合法数目多于非法数目,则该工作节点将被视为合法节点。
9.进一步,所述基于区块链一致性算法生成合法区块,包括:所述各挖掘节点将收到的局部检测模型参数及其对应的奖励值加密打包到一个区块中,对区块内容进行哈希计算,并根据区块链一致性算法对候选区块进行区块挖掘,得到合法区块。
10.进一步,所述奖励值包括工作节点的奖励值和挖掘节点的奖励值:所述工作节点的奖励值,如果工作节点被判定为合法节点,则该工作节点获得工作奖励值:其中,为工作节点的奖励值,为局部训练时间,为工作节点样本数目,为奖励因子,表示将该工作节点标记为合法的挖掘节点数目,表示将该工作节点标记为非法的挖掘节点数目;所述挖掘节点的奖励值,包括挖掘节点对收到的区块签名验证奖励、区块挖
掘奖励,挖掘节点对模型参数进行验证投票获得的验证奖励:其中,为挖掘节点的奖励值,、分别为挖掘节点产生的验证区块和候选区块,为挖掘节点的投票结果。
11.进一步,在存在恶意挖掘节点的情况下,具有最高奖励的挖掘节点有权将其挖掘到的合法区块添加到区块链中,包括:所述挖掘节点对区块内容进行哈希计算,并根据区块链一致性算法挖掘出候选区块,并将挖掘出的所有候选区块广播给其它挖掘节点;所述挖掘节点获得所有提交的挖掘出的候选区块后,选择具备最高奖励值的挖掘节点所挖掘出的候选区块为合法区块,并将其添加到区块链中。
12.进一步,所述步骤s4,所述利用基于互信息量的联邦聚合算法,实现全局检测模型参数的更新,具体为:全局检测模型和局部检测模型间的互信息量如下式计算:其中,表示模型的熵,表示和的联合熵,其定义如下所示:假设和服从高斯分布,和为其对应方差,表示和之间的相关系数;由下式计算其中,表示数学期望;根据上式,得到互信息量的表达形式:对的值以升序的方式排列,选取排序中靠后的个模型进行聚合,得到新的全局检测模型:
其中,表示更新后的全局检测模型,表示第个工作节点的数据数目,表示参与聚合的工作节点的数据总数,表示参与聚合的第个工作节点的模型参数。
13.本发明采用基于联邦学习和区块链的工业互联网网络流量入侵检测方法,采用未标记攻击类型检测模型对未知标签数据添加伪标签,实现了新型攻击发现;采用联邦学习架构进行模型的训练,在数据不出本地的情况下,实现了全局入侵检测模型的训练;将区块链引入到联邦学习架构中,排除了训练过程中恶意节点的干扰,进一步保证了训练过程的安全性和隐私保护性能。本发明相对于现有技术的有益效果:(1)本发明实现了入侵检测模型的分布式训练,对各参与设备的数据隐私进行了保护;(2)本发明将区块链技术应用于分布式训练过程中,考虑恶意工作节点和挖掘节点的存在,提出了一种新的模型参数合法性验证机制,实现了对训练过程中恶意参与者的鉴别和排除;与传统的基于数据集大小以及multi-krum算法的模型验证机制相比,本算法从模型入侵检测精度角度对算法验证机制进行了设计,并对验证过程的奖励值进行了设计。
14.(3)本发明设计了一种新的未标记攻击类型检测模型,可以有效的实现对网络流量数据中未知攻击类型的鉴别。与传统的无监督学习聚类方法相比,所提出的模型可以从已知类型数据信息中学习攻击的基本特征,进而实现对未知攻击类型的细粒度分类。
附图说明
15.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1为本发明的基于区块链和联邦学习的网络流量入侵检测算法的流程示意图;图2为本发明的对未知攻击类型进行发现标记的深度学习网络架构;图3为本发明的基于区块链和联邦学习进行恶意节点排除和区块挖掘的示意图。
具体实施方式
17.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.图1示出了本发明提供的基于区块链和联邦学习的网络流量入侵检测方法的流程示意图,包括:s1,针对工业互联网中各设备在生产过程中产生的本地流量数据集,提出一种新
形式的未标记攻击类型检测模型,利用少量的标签数据指导整个深度聚类过程。与传统的无监督学习聚类方法相比,所提出的模型可以从已知类型数据信息中学习攻击的基本特征,进而实现对未知攻击类型的细粒度分类,完成新型攻击的检测与标记。
19.在本发明实施例中,针对各设备节点存在未知攻击类型的流量数据,从已知标签信息中提取有效信息,结合成对的约束来指导整个聚类过程,实现新的攻击类型发现任务。
20.所述模型在完成新型攻击发现任务后,为具备较高置信度的无标签数据添加伪标签。在后续的联邦学习过程中,设备节点将同时利用有标签数据和伪标签数据进行模型的训练。
21.可选地,所述未标记攻击类型检测模型采用深度学习网络架构,如图2所示,包括:数据预处理模块、特征提取模块、分类模块和伪标签生成模块;所述数据预处理模块,包括特征转换、特征约简和特征归一化,目的是对某些特征进行分析、转换和去除,使数据集适合深度学习训练;所述特征提取模块,旨在提取有价值的特征表示,并通过联邦学习改进全局时空间表示;所述分类模块,目的是得到前一个模块的特征表示,并根据相似度聚类方法,对数据集中的未标记攻击类型进行新类发现;所述伪标签生成模块,目的是通过对网络最后一层输出进行置信度评估,给予其中置信度较高的数据伪标签。
22.进一步地,在上述架构的基础上,所述数据预处理模块,具体用于:所述数据预处理过程中,去除数据集中缺失值超过50%的特征,将文本类型数据转换为数值数据,并将数据归一化到[0,1]范围内;进一步地,在上述架构的基础上,所述特征提取模块,具体用于:所述特征提取阶段,各设备节点基于区块链和联邦学习协同构建稀疏自动编码器,获得数据特征的精细表示;此外在正式训练分类器前,需要首先估计当前数据集中最大类别数目。利用特征提取器从一小部分数据集中提取特征,然后利用k-means算法对特征进行聚类,并根据平均聚类精度(acc)和聚类有效性(cvi)两个评价指标判断最优聚类数目,取为值的2到3倍。两个评价指标的定义如下所示:(1a)其中,和分别表示每个数据点的真值和聚类分配标签。是元素的排列组合,作为一种聚类方法,恢复任意顺序的簇。为数据点的个数,为设定的类别数。
[0023]
(1b)其中,是一个数据样本,是与同一簇内所有其他数据样本之间的平均距
离,是与任何其他簇内(不是其中的成员)所有点之间的最小平均距离。
[0024]
进一步地,在上述架构的基础上,所述分类模块,具体用于:所述分类阶段,假设新类在特征空间中与已知类有一定程度的相似度,因此,从特征提取器获得的特征表示应该同样适用于新类和已有类。对于两个数据和,可以通过特征提取器得到对应的特征表示形式和,并且计算相似度矩阵:(2a)表示数据和之间的相似度,据此可以得到半监督数据的标签矩阵,其中和用来决定数据是否属于同一个类,和为设定的阈值。
[0025]
(2b)这一步之后,得到了初始的伪标签,可以用于后续的进一步的训练。将分类模块应用到数据表示中,得到一个数据新的表示形式。的内积被用作判断数据和是否属于同一个类。最后,得到相似损失:(2c)其中,m为数据点的个数。
[0026]
进一步地,在上述架构的基础上,所述伪标签生成模块,具体用于:所述伪标签生成阶段,通过对网络最后一层输出进行置信度评估,给予其中置信度较高的数据伪标签。
[0027]
每个设备节点都通过未标记攻击类型检测模型生成本地伪标签数据和有标签数据,然后所有节点根据聚类中心协同确定新攻击的数量并设定标签;在联邦学习阶段,采用交叉熵损失作为模型训练损失,对模型进行局部训练。
[0028]
(3a)其中,为有标签数据的交叉熵损失,为伪标签数据的交叉熵损失,为损失因子。
[0029]
s2,工业互联网中各设备协作维护一个区块链,并搭建用于网络流量入侵检测的全局检测模型,将全局检测模型发送给各设备。在每一轮通信轮次中,各设备被随机划分为工作节点和挖掘节点;本发明目的在于不直接获取各设备的数据,通过分布式训练的方法协作训练一个全局的检测模型。在训练开始之前,各设备节点初始化模型训练参数,局部训练时间,
以及学习率和批大小,在每一轮通信轮次中,将各设备随机划分为工作节点和挖掘节点。
[0030]
s3,各工作节点利用本地伪标签数据和有标签数据对收到的全局检测模型进行迭代训练,生成本地的局部检测模型,并将各自的局部检测模型参数及奖励值加密上传至区块链;考虑恶意工作节点和挖掘节点的存在,提出了一种新的模型参数合法性验证机制;与传统的基于数据集大小以及multi-krum算法的模型验证机制相比,本算法从模型入侵检测精度角度对算法验证机制进行了设计,并对验证过程的奖励值进行了设计。
[0031]
图3出示了本发明实施例提供的基于区块链和联邦学习进行恶意节点排除和区块挖掘的示意图,所述架构包括:工作节点合法性验证以及区块挖掘两部分。
[0032]
所述区块链中挖掘节点对工作节点上传的局部检测模型参数合法性进行验证,挖掘节点获得对应的模型验证奖励,合法工作节点将获得模型训练奖励。
[0033]
在存在恶意挖掘节点的情况下,具有最高奖励的挖掘节点有权将其挖掘到的合法区块添加到区块链中。
[0034]
进一步地,在上述示意图的基础上,所述区块链中挖掘节点对工作节点上传的局部检测模型参数合法性进行验证,挖掘节点获得对应的模型验证奖励,合法工作节点将获得模型训练奖励。具体用于:所述节点合法性验证阶段,包括挖掘节点对从工作节点收到的区块进行签名验证后,就可以从中提取出来自工作节点的局部检测模型,并获得签名验证奖励。该挖掘节点同时将当前通信轮次的模型重建损失与上一轮的模型重建损失相比较,如果两者之差超出阈值,则将产生该模型参数的工作节点标记为非法,否则将其标记为合法。将该挖掘节点的投票结果记为,验证结束后该挖掘节点将获得验证奖励。此后区块、投票结果、奖励、被封装到一个区块中,由挖掘节点的私钥加密。该区块在所有挖掘节点中以广播的形式发送。
[0035]
所述工作节点的奖励值,如果工作节点被判定为合法,则该工作节点获得工作奖励,奖励值与局部训练时间及工作节点样本数目有关;(4a)其中,为工作节点样本数目,为奖励因子,表示将该工作节点标记为合法的挖掘节点数目,表示将该工作节点标记为非法的挖掘节点数目。所述挖掘节点的奖励值,包括挖掘节点对收到的区块签名验证奖励、区块挖掘奖励,挖掘节点对模型参数进行验证投票获得的验证奖励:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4b)其中,为区块签名验证奖励,为区块挖掘奖励,为验证奖励,、分别为挖掘节点产生的验证区块和候选区块,为挖掘节点的投票结果,r为奖励因子。
[0036]
进一步地,在上述示意图的基础上,在存在恶意挖掘节点的情况下,具有最高奖励的挖掘节点有权将其挖掘到的合法区块添加到区块链中,具体用于:所述区块挖掘阶段,每个挖掘节点对区块进行签名验证,得到验证奖励,并从区块中提取投票结果。根据从多个挖掘节点发送来的投票结果,判断工作节点属于合法节点还是恶意节点。只要参与投票验证过程的恶意挖掘节点不超过总的参与投票节点的1/3,投票机制就能有效排除恶意节点。然后将最终的投票结果、区块以及验证奖励放入一个名为的候选区块中。然后,挖掘节点根据区块链一致性算法对由挖掘节点私钥签名的块内容和候选块进行哈希计算。一旦某区块被挖掘节点挖掘出来,该区块将被广播给其他挖掘节点。在获取所有提交的挖掘出的区块后,挖掘节点选择具备最高奖励值的挖掘节点挖掘出的区块作为合法块,并将其添加到区块链中。
[0037]
所述工作节点从区块链中下载最新的区块后,工作节点根据投票结果排除恶意模型参数后,基于联邦聚合算法更新其模型参数。无论是工作节点还是挖掘节点,通过新区块中的奖励值更新区块链中所有参与者的奖励值。在连续的通信轮中,节点只要被连续标记为恶意节点,就会被训练过程踢出。
[0038]
s4,各工作节点从区块链中下载合法区块,提出了一种基于互信息量的联邦聚合算法,实现全局检测模型参数的更新;与传统算法相比,该算法可以较好的排除欠拟合和过拟合的模型参数,实现全局模型参数的高效更新。
[0039]
工作节点从区块链中下载最新的合法区块,并根据基于互信息量的联邦聚合算法,排除过拟合和欠拟合的局部检测模型参数,筛选出最高效的个局部检测模型参数进行联邦聚合过程,对全局入侵检测模型参数进行更新,生成新的全局检测模型,并发送至各设备。
[0040]
全局检测模型和局部检测模型间的互信息量可以如下式计算:(5a)其中,表示模型的熵,表示模型和的联合熵,其定义如下所示:
(5b)假设模型和服从高斯分布,和为它们的对应方差,表示两模型之间的相关系数。
[0041]
相关系数可由下式计算(5c)其中,表示数学期望,根据式(5a)、(5b)和(5c),可以得到互信息量的表达形式:(5d)工作节点收到来在其它合法节点的互信息量后,将对的值以升序的方式排列。值过高或过低将被视为模型发生了过拟合或欠拟合,从而被排除在有效模型之外。选取其中最有效的个模型进行模型聚合,得到新的全局检测模型。
[0042]
(5e)其中,表示更新后的全局检测模型,表示第个工作节点的数据数目,表示所有参与聚合的工作节点的数据总数,表示参与聚合的第个工作节点的模型参数。
[0043]
s5,迭代进行步骤s3-s4,直到训练误差达到误差容限或者到达要求的最大训练轮次,最终得到全局的网络流量入侵检测模型。
[0044]
以上所描述的架构实施形式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0045]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0046]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1