基于深度时间序列嵌入分析的实时恶意流量检测系统

文档序号:37942086发布日期:2024-05-11 00:21阅读:14来源:国知局
基于深度时间序列嵌入分析的实时恶意流量检测系统

本发明属于计算机网络安全领域,具体涉及基于深度时间序列嵌入分析的实时恶意流量检测系统,其中,深度时间序列嵌入分析指利用深度学习方法对时间序列状的网络流数据进行嵌入并对该嵌入表示进行离群性分析。


背景技术:

1、传统的恶意流量检测方法,如签名识别等,利用配置的先验规则对网络流量进行特征分析,保护网络免受恶意攻击;

2、然而,基于先验规则的方法不具有可扩展性和鲁棒性,依赖于人工的特征工程来更新先验规则,例如签名库等;另外,基于先验规则的方法无法检测未知形式的网络攻击。

3、机器学习方法,特别是深度学习方法,具有强大的数据建模和分析能力,可以对网络流中存在的复杂模式进行鲁棒地、自适应地建模,并且高精度地捕获其中的恶意模式;

4、然而,广泛的基于机器学习的恶意流量检测系统通过在带有标签的流量特征数据集上提取基于统计的特征进行监督学习,这只能检测已知的网络攻击;

5、在自监督学习方式下,开发的基于机器学习的恶意流量检测系统不依赖关于任意网络攻击的先验知识,例如带有标签的流量特征数据集,其使用离群性分析识别网络流量中相对异常的个体,例如数据包、网络流等;

6、因此,以自监督学习方式开发的基于机器学习的恶意流量检测系统能够有效检测潜在未知的网络攻击。

7、另外,基于端到端的传统恶意流量检测系统难以实现实时检测,特别是在高带宽的骨干网络中;

8、可编程数据平面作为网络新范式,其提出,在网络转发设备中,通过编程来自定义数据包的处理逻辑,以在网络转发设备中开发能够实时处理高吞吐流量的网络功能;

9、因此,可编程数据平面为实时恶意流量检测系统的实现提供了基础。

10、在可编程数据平面网络范式下,主要利用的开发平台包括了基于programmingprotocol-independent packet processors(p4)的开发平台与基于intel data planedevelopment kit(dpdk)的开发平台。

11、基于p4的开发平台主要包括了一系列支持p4编程的交换机硬件;

12、由于硬件的资源限制,基于p4在交换机硬件上开发的网络功能受限,难以采取机器学习方法来实现复杂的网络功能。

13、基于intel dpdk的开发平台即是一系列基于通用处理器的网络转发设备,比如通过软件定义的中间盒;

14、使用intel dpdk能够在通用处理器上屏蔽内核中断,从而直接在用户态下处理数据包,以极大地提升处理数据包的性能;

15、基于intel dpdk的开发平台利用c++或c编程语言高效地编程具体的数据包处理过程,以虚拟化地开发相对复杂的网络功能,比如实时恶意流量检测系统。


技术实现思路

1、本发明面向实时检测未知形式的网络攻击的需求,开发了基于深度时间序列嵌入分析的实时恶意流量检测系统,其中,深度时间序列嵌入分析指利用深度学习方法对时间序列状的网络流数据进行嵌入并对该嵌入表示进行离群性分析。该实时恶意流量检测系统不需预先学习关于任意网络攻击的先验知识,即该实时恶意流量检测系统能够检测潜在未知的网络攻击,同时该实时恶意流量检测系统是一种即插即用的虚拟化网络功能组件,其能够直接部署并运行于基于通用处理器的网络转发设备。

2、本发明面向实时检测未知形式的网络攻击的需求,开发了基于深度时间序列嵌入分析的实时恶意流量检测系统,其中,该实时恶意流量检测系统在基于通用处理器的网络转发设备上通过软件定义的方式进行开发,主要利用到了加速数据包的处理性能的inteldpdk与执行效率高的编译性编程语言c++。

3、本发明面向实时检测未知形式的网络攻击的需求,开发了基于深度时间序列嵌入分析的实时恶意流量检测系统,其中,对于部署了该实时恶意流量检测系统的、基于通用处理器的网络转发设备,其网卡被绑定至intel dpdk内核模块,即igb_uio模块;同时,从该网络转发设备的总内存中划分了2gb大小的大页内存用于缓存到达的大量数据包,包含了1024张2mb的大页。

4、本发明面向实时检测未知形式的网络攻击的需求,开发了基于深度时间序列嵌入分析的实时恶意流量检测系统,具体包括了三个模块:数据包解析模块、网络流收集模块、网络流检测模块。

5、模块一、数据包解析模块:通过intel dpdk提供的用户态i/o,该模块绕过内核权限直接从网卡的接收队列中镜像到达的若干数据包,每一个数据包被解析为八维每包特征向量;

6、单个八维每包特征向量包含:数据包的源ip地址、目的ip地址、源端口号、目的端口号、协议号、协议首部的标志位、数据包长度以及到达时间戳;

7、每次解析得到的八维每包特征向量被有序地存储进该模块的环形队列缓存中;

8、数据包解析模块的环形队列缓存基于静态数组实现,静态数组的大小为s,其中的每一个槽被唯一的索引标记并储存单个八维每包特征向量;

9、ptrbegin与ptrend分别代表环形队列中下一次进行入队与出队操作的槽的索引;

10、由于环形队列缓存在物理视图下是线性的静态数组,每一次更新ptrbegin与ptrend后,都需要对更新的结果进行模s的操作;

11、在数据包解析模块中,环形队列的入队操作在最新的八维每包特征向量被提取后立即执行,该最新的八维每包特征向量被存储在ptrend标记的槽中,同时ptrend被更新为:

12、ptrend=(ptrend+1)%s;

13、环形队列的出队操作在接下来的网络流收集模块中执行;按照先进先出的顺序,一次性输出p个槽中的八维每包特征向量;

14、当ptrend小于ptrbegin并且ptrbegin+p大于s时,记录被集合i0中p个元素索引的槽,接着按照先进先出的顺序输出这些槽中的八维每包特征向量,其中i0为:

15、i0={i|[ptrbegin,s)∪[0,p-ptrbegin)};

16、当同时不满足ptrend小于ptrbegin与ptrbegin+p大于s时,记录被集合i1中p个元素索引的槽,接着按照先进先出的顺序输出这些槽中的八维每包特征向量,其中i1为:

17、i1={i|[ptrbegin,ptrbegin+p)};

18、在出队操作结束时,ptrbegin被更新为:

19、ptrbegin=(ptrbegin+p)%s;

20、模块二、网络流收集模块:通过五元组<源ip地址,目的ip地址,源端口号,目的端口号,协议号>作为网络流标识,该模块创建键值对容器a,其以该五元组为键,动态数组为值,用于收集网络流数据;

21、通过源ip地址作为聚合网络流标识,该模块创建键值对容器b,以源ip地址为键,动态数组为值,用于收集聚合网络流数据;

22、网络流数据与聚合网络流数据均是包含若干三维每包特征向量的时间序列并基于动态数组存储;

23、存储进动态数组的三维每包特征向量包含数据包长度、协议首部的标志位以及数据包到达时间间隔;

24、网络流收集模块运行包含以下步骤:

25、s1、从数据包解析模块的环形队列缓存中出队p个八维每包特征向量作为当前处理的批次,当前处理的批次使用集合{vi0:7|i∈(0,p)}表示;

26、s2、依次处理当前批次中所有的八维每包特征向量;

27、s3、记录容器a与容器b中已完成网络流数据收集或聚合网络流数据收集的动态数组;

28、s4、取出所有收集完毕的网络流数据并按照长度被划分为长流数据与短流数据;

29、s5、将长流数据直接输出至网络流检测模块;

30、s6、将具有相同源ip地址的短流数据聚合为聚合网络流数据并将该聚合网络流数据输出至网络流检测模块,输入至网络流检测模块的网络流数据与聚合网络流数据统称为网络流数据;

31、其中,所述步骤s2,即依次处理当前批次中所有的八维每包特征向量,包含以下步骤:

32、s21、初始化i的值为0;

33、s22、从当前批次中按序取出第i个八维每包特征向量vi0:7;

34、s23、以vi0:7的网络流标识为键映射到容器a中的动态数组a(arra)并以vi0:7的源ip地址为键映射到容器b中的动态数组b(arrb);

35、s24、计算vi0:7对应于arra的数据包到达时间间隔ji,a并将ji,a与vi0:7中的数据包长度以及协议首部标志位组成三维每包特征向量

36、s25、计算vi0:7对应于arrb的数据包到达时间间隔ji,b并将ji,b与vi0:7中的数据包长度以及协议首部标志位组成三维每包特征向量

37、s26、将与分别存储进arra与arrb;

38、s27、使用vi0:7的到达时间戳更新arra与arrb所记录的历史到达时间戳;

39、s28、令i的值加1,如果i小于p则重新执行步骤s22,否则步骤s2结束;

40、所述步骤s3中,判断一个动态数组是否完成对网络流数据或聚合网络流数据的收集,包含以下两个步骤:

41、s31、判断与该动态数组对应的网络流或聚合网络流是否发生数据包到达超时,其中数据包到达超时指在预设的超时间隔ttimeout内没有新数据包到达;

42、s32、判断该动态数组对应的网络流或聚合网络流是否达到预设的最大长度;

43、超时间隔ttimeout、网络流最大长度l0以及聚合网络流最大长度l1的设置参考了真实世界骨干网络流量中关于网络流与聚合网络流的统计分布,包括了网络流中数据包到达时间间隔的分布、网络流长度的分布以及聚合网络流长度的分布;

44、真实世界骨干网络流量收录自mawi working group traffic archive;

45、mawi working group traffic archive记录了自2006年起每天骨干网络的流量;具体地,mawi working group每天对骨干网络下午两点至四点的流量进行了镜像;

46、所述步骤s31中,判断相应的网络流或聚合网络流是否发生数据包到达超时,包含以下步骤:

47、s311、计算当前系统时钟的时间戳与动态数组记录的历史到达时间戳的差值;

48、s312、如果该差值超过ttimeout,则相应的网络流或聚合网络流发生数据包到达超时,否则相应的网络流或聚合网络流未发生数据包到达超时。

49、模块三、网络流检测模块:以网络流数据作为检测单位,网络流检测模块使用基于门控单元的循环神经网络(gru rnn)建模时间序列状的网络流数据的i/o并构建变分自编码器(vae)对网络流数据进行离群性分析,以检测网络流数据对应的网络流或聚合网络流是否为恶意的;vae的运行包括了训练阶段与推断阶段,其中,vae的训练阶段为非监督过程;网络流检测模块首先接收模块二输出的所有网络流数据作为当前处理的批次,接着将当前批次中所有的网络流数据依次输入至vae中;

50、vae包含了以下两个变分网络与生成网络,以下为它们各自的运行方式:

51、1)变分网络的运行:变分网络中包含了一个gru rnn与两个全连接神经网络(fcn),其中两个fcn所建立的映射关系分别使用g0与g1进行表示;

52、对于输入的长度为l的网络流数据x,变分网络将其嵌入为概率分布进行表示,即vae隐空间下的表示;

53、网络流数据x包含了一系列三维每包特征向量,其中,x中第i个时间步的三维每包特征向量为mi;

54、变分网络首先将网络流数据x中的三维每包特征向量按照时序依次输入gru rnn,在第i个时间步,gru rnn的门控变量包含更新门变量ui以及重置门变量ri,gru rnn的状态变量包含了候选隐藏状态变量hi'以及隐藏状态变量hi;

55、更新门变量ui、重置门变量ri、候选隐藏状态变量hi'以及隐藏状态变量hi的更新依赖于三维每包特征向量为mi与第i-1个时间步的隐藏状态变量hi-1;

56、更新门变量ui、重置门变量ri、候选隐藏状态变量hi'以及隐藏状态变量hi在第i个时间步被依次更新为:

57、

58、

59、hi'=tanh(wh·[ri⊙hi-1,mi]);

60、hi=(1-ui)⊙hi-1+ui⊙hi';

61、其中,wu、wr与wh为gru rnn中的权重矩阵,在vae训练完成后确定;

62、在第l-1个时间步,网络流数据x被gru rnn嵌入为隐藏状态hl-1进行表示,向量hl-1能够紧凑地表示x所具有的信息;

63、变分网络接着将hl-1输入至两个并列的fcn中,hl-1被继续嵌入为概率分布进行表示,即vae隐空间下的表示;

64、其中,嵌入的概率分布为对角对数高斯分布e~ln(logμ,logσ2);e为m维随机变量,其每一个维度都服从独立的单变量分布;logμ为对数均值,logσ2为对数方差,logμ与logσ2均属于r3;

65、两个并列的fcn分别建立了hl-1与对数均值logμ与对数方差logσ2的映射关系g0与g1:

66、g0:r3→rm,logμ=g0(hl-1);

67、g1:r3→rm,logσ2=g1(hl-1);

68、变分网络最终将网络流数据x嵌入为对角对数高斯分布e~ln(logμ,logσ2),该对角对数高斯分布使用q(z|x)进行表示,从q(z|x)上采样得到的样本使用z进行表示;

69、2)生成网络的运行:生成网络包含了一个采样层与一个gru rnn;对于输入的概率分布q(z|x),生成网络在其上采样得到z并使用z生成一个与x形状一致的自编码数据x';

70、生成网络首先利用采样层对q(z|x)进行采样,直接对q(z|x)进行采样所得到的z无法进行求导,因此,采样层使用重参数技巧在q(z|x)上采样得到z:

71、

72、其中,ε是随机噪声,其从标准对角高斯分布上采样得到,该标准对角高斯分布的维度与q(z|x)一致;

73、生成网络接着在每个时间步下将z输入gru rnn中,生成网络总共执行l个时间步;

74、生成网络最终使用gru rnn生成了一个与x形状一致的自编码数据x',该自编码数据x'的第i个元素mi'即是gru rnn在第i个时间步的隐藏状态变量;

75、另外,使用p(x|z)代表基于z生成的自编码时间数据x'与输入的网络流数据x一致的概率,其代表了自编码时间数据x'与输入的网络流数据x的相似程度;

76、vae初始处于训练阶段,当训练阶段结束后,其进入推断阶段;具体地,所述训练阶段与推断阶段为:

77、1)训练阶段:vae的训练过程即是优化证据下界(elbo):

78、elbo=eq(z|x)[log p(x|z)+log p(z)-log q(z|x)];

79、其中,p(z)为先验分布,其被设置为标准的对角对数高斯分布,其对数均值与对数方差均为0;

80、对于输入的网络流数据x,vae在训练阶段下具体执行以下过程:

81、首先,执行变分网络与生成网络的前向传播过程,得到变分网络输出的q(z|x)以及生成网络输出的x';

82、其次,计算优化目标elbo中第一项eq(z|x)[log p(x|z)]的值,即计算x'相对于x的均方误差损失:

83、

84、接着,计算优化目标elbo中第二项eq(z|x)[log p(z)]与第三项eq(z|x)[-log q(z|x)]的和,即计算p(z)与q(z|x)之间的kl相似度:

85、eq(z|x)[log p(z)-q(z|x)]=1+logσ2-(logμ)2-exp(logσ2);

86、最后,计算得到优化目标elbo的值,如果优化目标elbo已收敛,即训练阶段结束,则vae进入推断阶段,否则通过adam优化器在vae中执行反向传播,以更新vae中的参数;

87、2)推断阶段:对于训练完毕的vae,在推断阶段,其只执行变分网络的前向传播过程;

88、对于输入的网络流数据x,vae在推断阶段下具体执行以下过程:

89、首先,变分网络将x嵌入为具有对数均值logμ与对数方差logσ2的对角对数高斯分布q(z|x);

90、接着,计算q(z|x)与p(z)之间的相似度,该相似度反映了网络流数据在所有网络流数据中的相对离群程度,该相似度通过kl相似度eq(z|x)[logp(z)-q(z|x)]进行度量,kl相似度的计算公式为:

91、eq(z|x)[log p(z)-q(z|x)]=1+logσ2-(logμ)2-exp(logσ2);

92、最后,将x对应的标识,即网络流标识或聚合网络流标识,与kl相似度计算结果组合成一个键值对,该键值对被网络流检测模块记录;

93、在当前批次中所有的网络流数据均被输入至vae后,网络流检测模块以键值对的值来升序排序所有已记录的键值对;如果一个键值对位于排序结果的λ百分位数之后,则该键值对被判定为离群,即其对应的网络流或聚合网络流是恶意的;如果一个键值对位于排序结果的λ百分位数之前,则该键值对没有离群,即其对应的网络流或聚合网络流不是恶意的。

94、有益效果

95、基于深度时间序列嵌入分析的实时恶意流量检测系统基于非监督的深度学习方法,能够在高速流量转发场景下实时地检测潜在未知的网络攻击;同时,其部署方式便捷,能够即插即用地部署于基于通用处理器的网络转发设备。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1