基于联邦学习的网络流量攻击检测方法、系统及存储介质与流程

文档序号:33714016发布日期:2023-04-01 03:14阅读:308来源:国知局
基于联邦学习的网络流量攻击检测方法、系统及存储介质与流程

1.本发明属于网络安全技术领域,特别是涉及基于联邦学习的网络流量攻击检测方法、系统及存储介质。


背景技术:

2.互联网技术的高速发展在方便人们生活的同时,也促进了网络攻击的传播和扩散。在现实生活中,网络攻击常用的手段包括网络监听、恶意代码、口令破解、拒绝服务攻击、漏洞利用、网站数据窃取、社会工程学攻击、apt等,这些攻击行为隐藏在网络流量中,被网络罪犯、地下黑客产业者、黑客行动主义者以及有国家背景的攻击者利用和发展,衍生出极具技术含量的网络威胁方式,给国计民生造成巨大的损失。
3.目前基于机器学习的检测和基于深度学习的网络攻击检测利用了智能算法强大的数据分析和学习能力,被认为是有效的网络攻击检测方式。但是出于数据隐私保护考虑,客户端的数据之间存在数据孤岛问题,在服务器训练的网络攻击检测模型在客户端应用时,会出现攻击检测准确性低的问题。
4.为了在不共享数据的前提下解决数据孤岛问题和提高网络攻击检测的准确性,提出一种基于联邦学习的网络流量攻击检测方法、系统及存储介质。


技术实现要素:

5.本发明实施例提出一种基于联邦学习的网络流量攻击检测方法、系统及存储介质,以至少解决相关技术中不共享数据前提下存在数据孤岛的问题和网络攻击检测准确性低的问题。
6.根据本发明的一个实施例,提出一种基于联邦学习的网络流量攻击检测方法,包括:
7.在中央服务器构建流量攻击检测的全局模型及在客户端构建流量攻击检测的本地模型;
8.客户端根据网络流量特征识别攻击流量并标识生成流量数据集;
9.客户端对标识后的流量数据集进行预处理并发送至中央服务器;
10.中央服务器根据预处理后的流量数据集对全局模型进行训练;
11.客户端同步全局模型的结构参数并对本地模型进行训练;
12.将未知的流量数据输入到本地模型进行攻击流量判定。
13.在一个示例性实施例中,所述在中央服务器构建流量攻击检测的全局模型及在客户端构建流量攻击检测的本地模型,包括步骤:
14.在中央服务器基于cnn算法构建一个全局模型;
15.每个本地客户端基于cnn算法构建一个本地检测模型;所述客户端的本地模型与中央服务器的全局模型具有相同的网络结构。
16.在一个示例性实施例中,所述网络流量特征包括连接时间、协议类型、历史连接记
录、目标主机、服务类型、流量大小的任一项或多项组合。
17.在一个示例性实施例中,所述客户端根据网络流量特征识别攻击流量并标识生成流量数据集,包括步骤:
18.根据网络流量的连接时间匹配程度和/或协议类型匹配程度计算直接特征关联度;
19.根据当前连接与设定的历史时间段内的连接记录的关联情况计算统计特征关联度;
20.根据直接特征关联度和/或统计特征关联度计算攻击流量匹配度,将攻击流量匹配度大于设定阈值的网络流量标识为攻击流量,生成流量数据集。
21.在一个示例性实施例中,所述根据当前连接与设定的历史时间段内的连接记录的关联情况计算统计特征关联度,包括步骤:
22.根据设定的历史时间段内与当前连接有相同目标主机的连接数和/或设定的历史时间段内与当前连接有相同服务的连接数计算连接数量关联度;
23.根据当前连接与设定的历史时间段内连接的目标主机相似度和/或当前连接与设定的历史时间段内连接的服务类型相似度计算连接连接类型关联度;
24.根据当前连接与设定的历史时间段内连接的流量变化度量值和/或当前连接与设定的历史时间段内连接的持续时间变化度量值计算连接变化关联度;
25.根据连接数量关联度和/或连接连接类型关联度和/或连接变化关联度与统计特征关联度的正相关关系计算统计特征关联度。
26.在一个示例性实施例中,所述客户端对标识后的流量数据集进行预处理包括计算数据集的均值、计算数据集的数据量、计算数据集的方差、计算数据集的瞬时变化最大值、计算数据集的瞬时变化最小值、计算数据集的数据汇聚评估值的任一项或组合。
27.在一个示例性实施例中,所述中央服务器根据预处理后的流量数据集对全局模型进行训练,包括步骤:
28.中央服务器基于http接收各个客户端预处理后的的流量数据集信息;
29.中央服务器对各个客户端的数据信息进行均值融合和/或极值融合和/或最大置信度融合得到全局数据集信息;
30.根据全局数据集信息对全局模型进行训练并将得到的全局模型结构参数保存到数组;
31.将全局模型的结构参数数组矩阵基于http同时发送到各个客户端。
32.在一个示例性实施例中,所述客户端同步全局模型的结构参数并对本地模型进行训练,包括步骤:
33.客户端基于http接收中央服务器发送的全局模型的结构参数数组;
34.客户端的本地模型同步全局模型的结构参数;
35.客户端上的流量数据集输入到本地模型,对本地模型进行训练;
36.客户端基于http将训练后的本地模型结构参数发送到中央服务器;
37.中央服务器对各本地模型的结构参数进行均值融合和/或极值融合和/或最大置信度融合并以此训练全局模型得到全局模型的结构参数;
38.中央服务器对各本地模型的结构参数进行均值融合和/或极值融合和/或最大置
信度融合并以此训练全局模型得到全局模型的结构参数;
39.重复以上步骤直到达到指定的模型迭代次数,完成本地模型的训练。
40.一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使计算机执行上述的方法。
41.根据本发明的另一个实施例,提供了一种基于联邦学习的网络流量攻击检测系统,包括:
42.中央服务器;
43.客户端处理器;
44.存储器;
45.以及
46.一个或多个程序,其中所述一个或多个程序被存储在存储器中,并且被配置成由所述中央服务器和/或客户端处理器执行,所述程序使计算机执行上述方法。
47.本发明的基于联邦学习的网络流量攻击检测方法、系统及存储介质具有的优点是:
48.(1)基于联邦学习架构,利用分散计算范式,在中央服务器对各客户端的孤岛数据训练模型进行融合和训练,相比传统的仅在中央服务器训练网络攻击检测模型的技术方案,可以有效实现对各客户端检测模型的扩展,在隐私保护的基础上增强了各客户端对流量攻击检测的正确率。
49.(2)根据当前连接与设定的历史时间段内连接的目标主机情况和/或连接服务类型和/或流量变化度量值和/或连接持续时间变化度量值计算统计特征关联度,相比传统的仅根据当前连接的特征标识攻击流量的技术方案,可以识别网络流量在一段时间内的变化情况,有效提高攻击流量标识的准确性。
50.(3)各客户端根据网络流量的连接时间、协议类型的直接特征关联度和当前连接与设定的历史时间段内的连接记录的统计特征关联度计算攻击流量匹配度并以此识别攻击流量,相比传统的仅根据攻击流量的单一特征进行特征标识的技术方案,可以全面有效地评估网络流量的攻击特征,提高攻击流量标识的准确性。
51.(4)各客户端通过计算数据集的均值和/或数据量和/或方差和/或瞬时变化最大值和/或瞬时变化最小值和/或数据汇聚评估值得到客户端的数据集信息,中央服务器对各个客户端的数据信息进行均值融合和/或极值融合和/或最大置信度融合得到全局数据集信息并以此进行模型训练,相比传统的仅通过数据集进行模型训练的技术方案,可以使得最终得到的模型对各个客户端上的数据集具有更高的拟合度,有效提高各客户端流量攻击检测的性能。
附图说明
52.图1是本发明实施例的一种基于联邦学习的网络流量攻击检测方法的流程图;
53.图2是本发明实施例的子步骤s01的流程图;
54.图3是本发明实施例的子步骤s02的流程图;
55.图4是本发明实施例的子步骤s022的流程图;
56.图5是本发明实施例的子步骤s04的流程图;
57.图6是本发明实施例的子步骤s05的流程图;
58.图7是本发明实施例的一种基于联邦学习的网络流量攻击检测系统结构示意图。
具体实施方式
59.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
60.本发明实施例的一种基于联邦学习的网络流量攻击检测方法,流程图如图1所示,包括步骤:
61.步骤s01、在中央服务器构建流量攻击检测的全局模型及在客户端构建流量攻击检测的本地模型;
62.步骤s02、客户端根据网络流量特征识别攻击流量并标识生成流量数据集;
63.步骤s03、客户端对标识后的流量数据集进行预处理并发送至中央服务器;
64.步骤s04、中央服务器根据预处理后的流量数据集对全局模型进行训练;
65.步骤s05、客户端同步全局模型的结构参数并对本地模型进行训练;
66.步骤s06、将未知的流量数据输入到本地模型进行攻击流量判定。
67.在一个示例性实施例中,所述步骤s01,流程图如图2所示,包括:
68.步骤s011、在中央服务器基于cnn算法构建一个全局模型;
69.步骤s012、每个本地客户端基于cnn算法构建一个本地检测模型;所述客户端的本地模型与中央服务器的全局模型具有相同的网络结构。本实施例中,在中央服务器,基于pytorch框架,使用python语言构建cnn网络模型fg(wk)作为流量攻击检测的全局模型,网络结构包含1个输入层,4个卷积层,4个池化层,1个连接层,1个输出层;池化层的卷积核为1维卷积核,长度为10;假设有k个本地客户端,每个客户端上的数据集为xk,在每个本地客户端上基于pytorch框架,使用python语言构建cnn网络模型fk(wk),作为本地检测模型;客户端的cnn网络模型与中央服务器的cnn网络模型具有相同的网络结构,包含1个输入层,4个卷积层,4个池化层,1个连接层,1个输出层;池化层的卷积核为1维卷积核,长度为10。
70.在一个示例性实施例中,所述网络流量特征包括连接时间、协议类型、历史连接记录、目标主机、服务类型、流量大小的任一项或多项组合。本实施例中,基于netfilter采集经过客户端网卡的所有流量,提取流量特征包括连接时间、协议类型、历史连接记录、目标主机、服务类型、流量大小的任一项或多项组合。
71.在一个示例性实施例中,所述步骤s02,流程图如图3所示,包括:
72.步骤s021、根据网络流量的连接时间匹配程度和/或协议类型匹配程度计算直接特征关联度;
73.步骤s022、根据当前连接与设定的历史时间段内的连接记录的关联情况计算统计特征关联度;
74.步骤s023、根据直接特征关联度和/或统计特征关联度计算攻击流量匹配度,将攻击流量匹配度大于设定阈值的网络流量标识为攻击流量,生成流量数据集。
75.在一个示例性实施例中,所述步骤s021、根据网络流量的连接时间匹配程度和/或
协议类型匹配程度计算直接特征关联度,是:根据网络流量的连接时间和攻击发生时间的匹配程度与直接特征关联度的正相关关系计算直接特征关联度、根据网络流量的协议类型和攻击类型的匹配程度与直接特征关联度的正相关关系计算直接特征关联度、根据网络流量的连接时间与攻击发生时间的匹配程度和网络流量的协议类型与攻击类型的匹配程度的加权和或乘积与直接特征关联度的正相关关系计算直接特征关联度的任一项,直接特征关联度用变量d表示。
76.在一个示例性实施例中,所述步骤s022,流程图如图4所示,包括:
77.步骤s0221、根据设定的历史时间段内与当前连接有相同目标主机的连接数和/或设定的历史时间段内与当前连接有相同服务的连接数计算连接数量关联度;
78.步骤s0222、根据当前连接与设定的历史时间段内连接的目标主机相似度和/或当前连接与设定的历史时间段内连接的服务类型相似度计算连接连接类型关联度;
79.步骤s0223、根据当前连接与设定的历史时间段内连接的流量变化度量值和/或当前连接与设定的历史时间段内连接的持续时间变化度量值计算连接变化关联度;
80.步骤s0224、根据连接数量关联度和/或连接连接类型关联度和/或连接变化关联度与统计特征关联度的正相关关系计算统计特征关联度。
81.本实施例中,所述根据设定的历史时间段内(本实施例中设定为过去两秒内)与当前连接有相同目标主机的连接数和/或设定的历史时间段内与当前连接有相同服务的连接数计算连接数量关联度,是:根据设定的历史时间段内与当前连接有相同目标主机的连接数(或连接相同目标主机的连接数与总连接数的比值)与连接数量关联度的正相关关系计算连接数量关联度、根据设定的历史时间段内与当前连接有相同服务的连接数(或连接相同服务的连接数与总连接数的比值)与连接数量关联度的正相关关系计算连接数量关联度、根据设定的历史时间段内与当前连接有相同目标主机的连接数和设定的历史时间段内与当前连接有相同服务的连接数与连接数量关联度的正相关关系的任一项,所述连接数量关联度用变量e表示。
82.所述根据当前连接与设定的历史时间段内连接的目标主机相似度和/或当前连接与设定的历史时间段内连接的服务类型相似度计算连接连接类型关联度,是:根据当前连接与设定的历史时间段内(本实施例中设定为过去两秒内)连接的目标主机相似度(根据连接相同目标主机的比例和/或连接目标主机的类型关联度与目标主机相似度的正相关关系计算得到)与连接连接类型关联度的正相关关系计算连接连接类型关联度、根据当前连接与设定的历史时间段内(本实施例中设定为过去两秒内)连接的服务类型相似度(根据连接相同服务类型的比例和/或连接服务类型的关联度与服务类型相似度的正相关关系计算得到)与连接连接类型关联度的正相关关系计算连接连接类型关联度、根据当前连接与设定的历史时间段内(本实施例中设定为过去两秒内)连接的目标主机相似度(根据连接相同目标主机的比例和/或连接目标主机的类型关联度与目标主机相似度的正相关关系计算得到)和连接的服务类型相似度(根据连接相同服务类型的比例和/或连接服务类型的关联度与服务类型相似度的正相关关系计算得到)与连接连接类型关联度的正相关关系计算连接连接类型关联度的任一项,连接连接类型关联度用变量w表示。
83.所述根据当前连接与设定的历史时间段内连接的流量变化度量值和/或当前连接与设定的历史时间段内连接的持续时间变化度量值计算连接变化关联度,是:根据当前连
接与设定的历史时间段内连接的流量变化度量值(所述流量变化度量值是当前连接流量值与设定时间段内连接的平均流量值的差值和/或当前连接和设定时间段内连接流量值的平均变化量和/或当前连接和设定时间段内连接流量值的方差和/或当前连接和设定时间段内连接流量值的流量值变化极值)与连接变化关联度的正相关关系计算连接变化关联度、根据当前连接与设定的历史时间段内连接的持续时间变化度量值(所述持续时间变化度量值是当前连接的持续时间与设定时间段内连接的平均持续时间的差值和/或当前连接和设定时间段内连接持续时间的平均变化量和/或当前连接和设定时间段内连接持续时间的方差和/或当前连接和设定时间段内连接持续时间的变化极值)与连接变化关联度的正相关关系计算连接变化关联度、根据当前连接与设定的历史时间段内连接的流量变化度量值和当前连接与设定的历史时间段内连接的持续时间变化度量值与连接变化关联度的正相关关系计算连接变化关联度的任一项,连接变化关联度用变量y表示。
84.所述根据连接数量关联度和/或连接连接类型关联度和/或连接变化关联度与统计特征关联度的正相关关系计算统计特征关联度根据下表a所述任一实施方式进行,统计特征关联度用变量x表示。
85.表a中a1~a7表示计算统计特征关联度的不同实施方式,为便于表达,表a中统计特征关联度x表示第三方库与某一漏洞库的统计特征关联度,连接数量关联度e、连接连接类型关联度w、连接变化关联度y采用上述任一实施方式所述方法计算得到。
86.表a计算统计特征关联度的不同实施方式
87.88.89.90.91.92.93.[0094][0095]
在一个示例性实施例中,所述步骤s023,包括步骤:
[0096]
根据上述任一实施方式所述方法计算得到直接特征关联度d和根据表a中任一实施方式所述方法计算得到统计特征关联度x并根据直接特征关联度d和/或统计特征关联度x与攻击流量匹配度的正相关关系计算攻击流量匹配度z=u1
·du
2+u3
·
x
u4
+u5或z=u6
·du7
·
x
u5
+u9,其中u1、u2(u2》0)、u3、u4(u4》0)、u5、u6、u7(u7》0)、u8(u8》0)、u9是事先训练得到的计算系数;
[0097]
事先设定攻击流量匹配阈值为z,将攻击流量匹配度大于设定阈值的网络流量标识为攻击流量,生成流量数据集,记为xk。
[0098]
在一个示例性实施例中,所述客户端对标识后的流量数据集进行预处理包括计算数据集的均值、计算数据集的数据量、计算数据集的方差、计算数据集的瞬时变化最大值、计算数据集的瞬时变化最小值、计算数据集的数据汇聚评估值的任一项或组合。本实施例中,以计算数据集的数据量、均值和方差为例表示数据集的分布信息,计算数据集的样本数据量nk、均值μk和方差σk,当作数据集的分布信息;并将数据集的分布信息(μn,μk,σk)基于http发送到中央服务器。
[0099]
在一个示例性实施例中,所述步骤s04,流程图如图5所示,包括:
[0100]
步骤s041、中央服务器基于http接收各个客户端预处理后的的流量数据集信息;
[0101]
步骤s042、中央服务器对各个客户端的数据信息进行均值融合和/或极值融合和/或最大置信度融合得到全局数据集信息;
[0102]
步骤s043、根据全局数据集信息对全局模型进行训练并将得到的全局模型结构参数保存到数组;
[0103]
步骤s044、将全局模型的结构参数数组矩阵基于http同时发送到各个客户端。
[0104]
本实施例中,在中央服务器,基于http接收各个客户端的数据集分布信息(nk,μk,σk)。
[0105]
中央服务器对各个客户端的数据信息进行均值融合和/或极值融合和/或最大置信度融合得到全局数据集信息,所述均值融合是计算各个客户端的数据集分布信息(nk,μk,σk)的均值,得到全局数据集的分布信息(μg,σg);所述极值融合是各个客户端的数据集分布信息(nk,μk,σk)的最大值或最小值,得到全局数据集的分布信息(μg,σg);所述最大置信度融合是根据不同客户端的不同置信权重(事先根据客户端所在位置、类型、历史攻击次数等信息进行设置)对各个客户端的数据集分布信息(nk,μk,σk)进行加权平均,得到全局数据集的分布信息(μg,σg)。在中央服务器,根据融合的全局数据集的分布信息(μg,vg)对cnn全局模型fg(wk)进行初始化,并将全局模型的结构参数保存到数组。
[0106]
初始化的全局模型表示为式(1):
[0107][0108]
其中,全局模型的结构参数表示为
[0109]
在步骤s044中,中央服务器将全局模型的结构参数数组构成矩阵,基于http同时发送到各个客户端。
[0110]
在一个示例性实施例中,所述步骤s05,流程图如图6所示,包括步骤:
[0111]
步骤s051、客户端基于http接收中央服务器发送的全局模型的结构参数数组;
[0112]
步骤s052、客户端的本地模型同步全局模型的结构参数;
[0113]
步骤s053、客户端上的流量数据集输入到本地模型,对本地模型进行训练;
[0114]
步骤s054、客户端基于http将训练后的本地模型结构参数发送到中央服务器;
[0115]
步骤s055、中央服务器对各本地模型的结构参数进行均值融合和/或极值融合和/或最大置信度融合并以此训练全局模型得到全局模型的结构参数;
[0116]
步骤s056、重复以上步骤直到达到指定的模型迭代次数,完成本地模型的训练。
[0117]
本实施例中,在第k个客户端,基于http接收中央服务器发送的全局模型的结构参数数组然后,cnn本地模型同步全局模型的结构参数,再将数据集xk,输入到cnn本地检测模型,对本地模型进行训练,得到本地模型为fk(wk);本地模型的参数wk保存到数据。
[0118]
当各个客户端上本地模型训练结束,基于http将本地模型的结构参数发送到中央服务器。
[0119]
中央服务器基于http接收各个客户端的本地模型结构参数wk;然后,对接收的各个客户端的本地模型进行均值融合和/或极值融合和/或最大置信度融合并以此训练全局模型得到全局模型的结构参数,并将全局模型的结构参数保存到数组;
[0120]
在中央服务器,融合后的全局模型表示为式(2):
[0121][0122]
其中,全局模型的结构参数表示为wg。
[0123]
重复步骤(7)-(14),中央服务器与客户端的模型参数迭代次数为200,完成中央服务器的聚合模型训练,将训练好的聚合模型参数数组wg基于http发送到各个客户端,客户端的cnn本地模型同步全局模型的结构参数wg,完成本地模型的训练。
[0124]
在步骤s06中,将未知的流量数据输入到训练完成的本地模型后,实现对未知流量数据中攻击流量的判定,如果检测到攻击流量,则发出告警。
[0125]
以kddcup99数据集为实验验证数据集,对本实施例提出的检测方法进行验证。客户端数量为5,每个客户端上的数据集按照拉普拉斯从总体数据集中采样。经过200次中央服务器与客户端模型参数的迭代次数,最终中央服务器同步到每个客户端,对每个客户端的流量攻击检测正确率均超过95%,总体的检测正确率达到了97%。
[0126]
本发明实施例的一种基于联邦学习的网络流量攻击检测系统,结构示意图如图7所示,包括:
[0127]
中央服务器;
[0128]
客户端处理器;
[0129]
存储器;
[0130]
以及
[0131]
一个或多个程序,其中所述一个或多个程序被存储在存储器中,并且被配置成由所述中央服务器和/或客户端处理器执行,所述程序使计算机执行上述方法。
[0132]
当然,本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明的,而并非作为对本发明的限定,只要在本发明的范围内,对以上实施例的变化、变型都将落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有1条留言
  • 155293... 来自[中国] 2023年04月02日 14:39
    该攻击检测方法可以在不共享数据的前提下解决数据孤岛问题和提高网络攻击检测的准确性
    0
1