1.基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,包括如下步骤:S1:对原始流量数据进行预处理,生成一维网络流量字节序列和二维数字矩阵,对网络流量序列进行批归一化处理;
S2:将S1处理过的数据输入L2‑BiTCN+CNN模型进行训练或处理,L2‑BiTCN+CNN模型包括L2‑BiTCN模型和CNN模型,L2‑BiTCN模型用于捕获关键字节和数据包的时序特征f1,CNN模型用于得到不同数据包内字节的空间特征f2,所述S2的L2‑BiTCN模型包括字节层次和数据包层次,字节层次包含字节嵌入层、BiTCN层、字节注意力层,数据包层次包含数据包嵌入层、BiTCN层、数据包注意力层;在第一层卷积层的前面加入批归一化层,并在TCN层、注意力层、全连接层采取权值归一化处理;
所述L2‑BiTCN模型训练或处理数据的步骤如下:
步骤1:将字节序列作为输入传到字节层次中的嵌入层,用xit表示一个数据包的字节信T*d息词向量,其中xit=bite,bit表示第i个数据包中的第t个字节数据,e∈R 表示词向量矩阵,T表示数据包中的字节数量,d表示词向量维度,Xi={xi1,xi2,…,xit,…xiT}表示第i个数据包字节信息词向量的集合;
步骤2:将词向量集合Xi={xi1,xi2,…,xit,…xiT}输入到字节层次中的BiTCN层,并进行批归一化处理,之后TCN对输入的字节数据词向量进行编码;
步骤3:引入字节注意力机制,计算字节的权重分布,对重要的特征赋予更高的权重,获得带字节权重的数据包向量pi;
步骤4:获得带字节权重的数据包向量pi之后,将其作为输入数据传进数据包层次的BiTCN层中;
步骤5:数据包层次的BiTCN层对输入的数据包向量pi进行编码;
步骤6:引入数据包注意力机制,计算数据包的权重分布,对重要的特征赋予更高的权重,最终得到时序特征f1;
S3:将时序特征f1和空间特征f2相融合生成流量时空特征向量f,并输入到Softmax分类器,得出最终的流量类别。
2.根据权利要求1所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,所述S1的具体过程如下:S1.1:流量分割阶段:使用Wireshark软件中editcap工具,主要是将获得的原始流量数据进行切分,可以按照Flow或者Session的方式将原始数据切分成多个离散的网络流数据;
S1.2:流量匿名化阶段:分割之后的.pcap文件中包含多个数据包,该阶段主要是对数据包中的有效载荷数据进行提取,通过删除IP地址来减少其对流量分类结果的影响;
S1.3:流量清理阶段:该阶段对匿名化之后的网络流数据进行遍历,删除重复数据以及有效载荷数据长度为0的数据包,并将数据包处理成固定长度,大于该长度的进行截取,不足则用0进行填补;
S1.4:输入格式生成阶段:该阶段对固定长度流数据进行格式转换,首先,将网络流数据处理成一维的字节序列,以十六进制读取数据,并被标记用于L2‑BiTCN模型,然后重新将网络流数据转换为二维数字矩阵,以IDX格式读取数据,并被标记用于CNN模型。
3.根据权利要求1所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,所述步骤2的具体过程如下:步骤2.1:引入膨胀卷积:定义滤波器F=(f1,f2,…,fk,...,fK),分别表示大小为1、2、k、K的滤波器,xit处的膨胀卷积公式为:其中cit表示正向网络流量的特征,η为膨胀因子,K为滤波器的大小,t‑(K‑k)η表示之前的方向信息,当η=1时,即为普通卷积,当η=2时,即每隔两个输入点数据进行一次采样;
步骤2.2:加入残差模块,用于跨层连接的恒等映射;具体如下:
步骤2.2.1:得到步骤2.1处理的cit之后,接着对网络权重进行权值归一化处理;
步骤2.2.2:使用激活函数LeakyReLU进行非线性变换,获得的新正向网络流量特征向量为 公式如下:其中,w1表示权重矩阵,b1表示偏置,α为系数,可以理解为激活函数负轴上赋予的梯度值;
步骤2.2.3:使用Dropout进行正则化,随机选出隐藏层的神经元,然后将其删除,Dropout设置为0.2;
步骤2.3:重复一次步骤2.1和2.2,设计一个1*1Conv对x进行变换,使变换后的H(x)和x可以相加;
步骤2.4:对词向量集合Xi={xi1,xi2,…,xit,…xiT}进行序列的反转,得到反转矩阵Xi′={xiT…,xit,…,xi2,xi1},将反向序列放入反向TCN模型进行训练或处理,学习得到反向流量特征c′it,如公式c′it=TCN(X′i) (公式3)其中,TCN函数处理过程即为公式(1)所述,接着重复步骤2.2和2.3,其中步骤2.2.2改为对c′it使用LeakyReLU激活函数进行非线性变换,获得的新反向网络流量特征向量为公式如下:其中,w2表示权重矩阵,b2表示偏置,α为系数,可以理解为激活函数负轴上赋予的梯度值;
步骤2.5:将计算得出的正向特征向量 和反向特征向量和 进行连接,生成数据包的特征向量
4.根据权利要求3所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,所述步骤3的具体过程如下:步骤3.1:同时将hit输入到Embedding中进行映射,分别映射到三个不同的空间,其中公式如(5)(6)(7)所示,Wq,Wk和Wv代表随机不同的空间矩阵,分别得到Query矩阵Q={qit},Key矩阵K={kit},Value矩阵V={vit}。
步骤3.2:再将映射矩阵Q与K点积得到hit与其他数据包特征向量之间的关联程度Simi,Simi通过Softmax函数计算得到一个归一化的注意力权重矩阵αit,αit表示数据包i中的第t个字节信息的权重,如公式(8)(9);
步骤3.3:最后将归一化权重矩阵αit与vit进行加权求和,更新每个字节的特征表示,得到数据包向量pi,如公式(10);
Q=Wq*hit (公式5)K=Wk*hit (公式6)V=Wv*hit (公式7)pi=∑tαitvit(公式10)其中,引入c′来防止计算结果溢出,c′取值一般为输入信号中的最大值。
5.根据权利要求3所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,步骤5的具体过程如下:步骤5.1:数据包层次的BiTCN处理过程同字节层次的BiTCN,数据包pi处的膨胀卷积公式如下,其中ci表示正向流量数据包特征,η为膨胀因子,K为滤波器的大小,i‑(K‑k)η表示之前的方向信息;
步骤5.2:先对网络权重进行权值归一化处理,接着残差模块使用激活函数LeakyReLU进行非线性变换,获得的新正向流量数据包特征为 公式如下:其中,w3表示权重矩阵,b3表示偏置,α为系数;
使用Dropout进行正则化,随机选出隐藏层的神经元,然后将其删除,Dropout设置为
0.2;
步骤5.3:重复一次步骤5.1和步骤5.2,设计一个1*1Conv对x进行变换,使变换后的x和H(x)可以相加;
步骤5.4:对已经正向处理的数据包特征集合P={p1,p2,…,pi,…ps}进行反转,得到反转矩阵P′={ps,…,pi,…,p2,p1},其中s表示分割之后的Flow或Session中数据包的个数,将反向矩阵放入反向TCN模型进行训练或处理,从而学习得到反向数据报包特征ci′,公式如下:c′i=TCN(P′) (公式13)
其中,TCN函数处理过程即为公式(1)所述,接着对ci′使用LeakyReLU激活函数进行非线性变换,获得的新反向数据包特征为 公式如下:其中,w4表示权重矩阵,b4表示偏置,α为系数;
步骤5.5:将计算得出的正向特征向量 和反向特征向量和 进行连接,生成数据包的特征向量
6.根据权利要求5所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,步骤6的具体过程如下:步骤6.1:同时将hi输入到Embedding中进行映射,分别映射到三个不同的空间,其中公式如(15)(16)(17)所示,Wq,Wk和Wv代表随机不同的空间矩阵,分别得到Query矩阵Q={qi},Key矩阵K={ki},Value矩阵V={vi}。
步骤6.2:再将映射矩阵Q与K相乘得到hi与其他流量特征向量之间的关联程度Simi,Simi通过Softmax函数计算得到一个归一化的注意力权重矩阵αi,αi表示数据包i信息的权重,如公式(18)(19);
步骤6.3:最后将归一化权重矩阵αi与vi进行加权求和,更新每个数据包的特征表示,得到时序特征f1,如公式(20);
Q=Wq*hi (公式15)
K=Wk*hi (公式16)
V=Wv*hi (公式17)
f1=∑iαivi (公式20)
其中,c′取值一般为输入信号中的最大值。
7.根据权利要求1所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,所述CNN模型包括两轮Conv层和Average Pooling层、Flatten层以及Concat层,在第一层卷积层的前面加入批归一化层,CNN模型训练或处理数据的步骤如下:步骤1:将.pcap格式的流量数据集处理成(N,T)二维数字矩阵格式,将它作为CNN模型的数据输入,用矩阵 表示二维流数据;
其中xnt表示第n个数据包第t个字节,Ai表示第i个数据流的二维数字矩阵,大小为(N,T);
步骤2:Conv层:将二维数字矩阵Ai输入到CNN模型中,首先选择3*3卷积核,通道数16,激活函数LeakyReLU进行卷积操作,生成C11卷积层;接着使用2*5卷积核生成C12卷积层;最后使用1*5卷积核生成C13卷积层;
步骤3:Average Pooling层:将生成的C11、C12、C13卷积层进行空间上的缩小,使用2*2区域的Average池化,即从2*2大小的目标区域中计算得出平均值,窗口的移动间隔为1个元素,将平均池化后的结果进行映射,得到S11、S12、S13卷积层;
步骤4:重复步骤2、步骤3,再次进行不同卷积核大小的卷积操作和平均池化处理,生成C21、C22、C23卷积层结果和S21、S22、S23池化层结果;
步骤5:Flatten层:将得到的全局平均池化层结果S21、S22、S23进行Flatten展平,即对这三个局部特征矩阵进行降维操作,得出相应的一维空间特征张量1d‑tensor1、1d‑tensor2、
1d‑tensor3;
步骤6:Concat连接:将步骤5中的三个一维空间特征张量进行特征融合,生成空间特征f2。
8.根据权利要求1所述的基于双层注意力和时空特征并行融合的SDN网络异常流量分类方法,其特征在于,所述S3的具体过程如下:步骤1:将经过L2‑BiTCN模型最终得出的带有字节和数据包权重的时序特征f1和CNN模型得到的空间特征f2进行Concat信息融合,得到时空特征向量f;
步骤2:再将f通过Softmax分类器得出流量类别概率P,公式如下:P=Softmax(wc*f+bc) (公式21)
其中,wc表示权重矩阵,bc表示偏置,c表示当前标签值;
步骤3:计算交叉熵函数Loss关于权重参数的梯度,将权重参数沿梯度方向进行更新,具体使用随机梯度下降法(SGD)寻找参数最优解,相关公式如下:Loss=‑∑c=1fclnpc (公式22)
其中,c为标签值,pc是L2‑BiTCN+CNN模型计算结果的输出概率P,fc是正确解标签。z表示需要更新的权重参数, 表示损失函数关于z的梯度,η表示学习率,←表示用右边的值更新左边的值。