技术领域
[0001] 本发明涉及网络流量检测技术领域,尤其涉及一种网络流量检测方法。
相关背景技术
[0002] Transformer模型本质上是通过利用自注意力机制,能够捕捉网络流量中的复杂模式,并通过分类器对流量进行检测。Transformer经常被用于处理长序列数据,如DDoS攻击、端口扫描、恶意流量传播等多种入侵类型,其工作流程描述如下:
[0003] 1.数据预处理:包括数据采集、数据清洗、特征提取,其中数据清洗部分大多数将去除噪声数据只保留对检测有用的特征。
[0004] 2.输入嵌入层:将提取的流量特征转换为向量表示并输入到Transformer模型中,通过位置编码捕捉数据包的时间顺序特征。
[0005] 3.自注意力机制:通过自注意力机制可以对输入序列中任意两个位置的信息进行交互,识别流量数据中潜在的依赖关系,并通过多头注意力机制并行计算不同维度的注意力,能够更好地捕捉不同层次的网络流量特征。
[0006] 4.前馈神经网络:通过多层前馈神经网络对注意力层的输出进行进一步非线性变换,以提取更高阶的流量特征。
[0007] 5.分类输出:将经过特征提取的结果输入到分类器中,通常是一个Softmax层,用于将网络流量分类为正常流量或异常流量(例如DDoS攻击、恶意软件传播等)。
[0008] 传统的Transformer方法在数据清理时大多去除噪声数据只保留方便检测的特征,使用6到8组解码器与编码器组合并如同其他深度学习方法一样为黑盒模型,如图1所示。
[0009] 在传统的Transformer方法中,尽管其在处理复杂时序数据方面表现优异,但仍存在一些局限性:
[0010] 1、抗噪声干扰能力弱:由于数据预处理环节对特征提取的依赖较大,模型在面对噪声干扰时表现出较弱的鲁棒性。
[0011] 2、时间开销大:自注意力机制和大规模参数训练导致模型在处理大规模数据时消耗大量时间,难以满足实时检测需求。
[0012] 3、可解释性差:模型的黑箱特性使其决策过程难以理解,降低了应用场景中的透明性和可信度。
[0013] 这些问题影响了Transformer模型在网络流量入侵检测中的应用效果。
具体实施方式
[0060] 以下结合附图对本发明的原理和特征进行描述,所列举实施例只用于解释本发明,并非用于限定本发明的范围。
[0061] 参照图1,本实施例提供一种网络流量检测方法,所述方法包括以下步骤:
[0062] S101、获取关于网络攻击的网络流量数据集,所述网络流量数据集由多条流数据构成,对网络流量数据集进行预处理,获得时序化数据。
[0063] 本实施例中,所述网络流量数据集可以是针对工业物联网网络进行各种攻击的网络流量数据集,所述网络流量数据集为二分类标签,将正常流量与异常流量(包括DoS、Command Injection、Reconnaissance、Backdoor等异常类型)分别使用0、1标记。示例性的,所述网络流量数据集可以选取工业物联网数据集WUSTL‑IIOT‑2021,数据集收集了约53小时的2.7GB数据,数据集中大约有120万条流数据,其中正常流量记录占全部流量记录的比例为92.72%,每条记录包括StartTime、LastTime、SrcAddr、DstAddr等41个特征。
[0064] 作为一种可能的实施方式,对网络流量数据集进行预处理,具体包括以下操作:
[0065] A、去除流数据中与流属性特征无关的特征。具体为将与流属性特征无关的Mean、SrcLoss、DstLoss等特征去除。
[0066] B、将所有表征网络攻击来源的特征合并为一个特征,将所有表征网络攻击目标的特征合并为一个特征。示例性的,将攻击来源地址SrcAddr和来源端口号Sport合并为一个特征SrcAddr(例如192.168.0.20:55841),目标IP地址和目标端口号同样执行相同操作。
[0067] C、对网络流量数据集中的缺失值进行处理。对于数据集中的缺失值我们以赋0或者随机赋值的形式进行处理,使其满足我们需要的数据格式。
[0068] D、对网络流量数据集中的正常流量数据和异常流量数据进行平衡。由于数据集本身为了模拟真实世界,异常数据与正常数据的数据量差距巨大,因此采取部分使用正常流量数据的方式来缓解数据集不平衡问题。
[0069] E、对网络流量数据集进行时序化处理,获得时序化数据。
[0070] S102、通过滑动窗口方法对时序化数据进行处理,获得数据流序列样本。
[0071] 作为一种可选的实施方式,通过滑动窗口方法对时序化数据进行处理,具体为:将时序化数据分组到固定长度lw的窗口中,以作为数据流序列样本输入到模型中进行处理,窗口表示为 目标为使用解码器将窗口从其长度为lw‑ls的移位版本重构成长度为lw的原始窗口,从而有效地捕捉和学习数据中的时序特征,提升入侵检测的准确性和鲁棒性。
[0072] S103、计算数据流序列样本的异常分数。
[0073] 作为一种可能的实施方式,通过测量数据流序列样本的损失函数评估其异常分数,给定流xk被分配对应于窗口 然后通过测量重构误差来计算异常分数,假设流数据被分配到窗口Wx,对应的损失函数Score(x)表示为:
[0074] Score(x)=‖Wx‑D(E(Wx),Wx,shifted)‖
[0075] 其中,E(W)表示欧几里得模,E(Wx)表示编码器针对窗口W计算的输出,D(E(Wx),Wx,shifted)表示编码器针对位移窗口的输出以及随后的编码器输出,其中Wx,shifted表示Wx的移位版本,包括数据流 到 k表示测试窗口大小。
[0076] S104、构建AT‑Transformer模型,使用数据流序列样本对AT‑Transformer模型进行训练。
[0077] 在模型构建阶段,本实施例将传统的Transformer模型进行简化,简化模型图如图3所示。本实施例所构建的AT‑Transformer模型与传统模型一样采用编码器‑解码器结构,但是采用两组编码器与解码器,以此达到降低模型复杂度的效果。此外,为了解决传统的编码器‑解码器模型无法捕获短期趋势,并且如果偏差太小,则往往会错过异常这一问题,我们使用了一种自回归推理模式。通过在每个时间戳充当编码器‑解码器网络来实现对每个输入序列窗口重建的预测,在两个部分预测重建的窗口。
[0078] 在第一部分,生成输入序列窗口的近似重建,与该推断的偏差帮助AT‑Transformer编码器内部的注意力网络在提取时间趋势时,集中于偏差高的子序列,编码器K×m使用基于上下文的注意力将输入窗口W∈R 转换为压缩表示,然后再将其通过下式转换为输出W1:
[0079] W=Sigmoid(FeedForward(P))
[0080] 其中m表示向量维度,K表示本地上下文窗口长度,且K>lw,R表示向量矩阵,Sigmoid()表示激活函数,FeedForward()表示前馈层,P表示注意力的压缩潜在表示。
[0081] 在第二部分,使用解码器的重建损失作为异常分数,得到第二部分的得分矩阵F=L1,然后再次进行回归计算得到第二部分的输出W3。在第一部分中生成的异常分数指示了重建输出与给定输入的偏差。这在第二部分中修改了注意力权重,并对特定输入子序列给予更高的神经网络激活以提取短期时间趋势。这种设计使得模型放大了偏差,因为重建误差在编码器的注意力部分中充当激活,并且对抗训练还可以提高泛化能力,使得模型针对不同的输入序列都具有鲁棒性。
[0082] 在所述第一部分定义解码器的重建损失L1和L2作为第二部分的输入,表示为:
[0083] L1=‖W1‑W2‖2
[0084] L2=‖W3‑W2‖2
[0085] 在定义第二部分的对抗性损失时,第二个解码器通过最大化‖W3‑W2‖2的差异来区分输入窗口和由第一部分第一个解码器生成的候选重建,使用第一个解码器通过重建输入向第二个解码器释放信号,产生一个退化的异常得分,此部分为一个零向量,使得第二个解码器在这个阶段生成与W3相同的输出,而它在第一部分中目标是匹配输入,训练对象表示为:
[0086] min max||W3‑W2||2
[0087] Decoder1 Decoder2
[0088] 其中,Decoder1表示第一个解码器,Decoder2表示第二个解码器。
[0089] 第一个解码器的目标为最小化重建误差,第二个解码器的目标为最大化重建误差,通过使用如下的损失函数实现:
[0090] L1=+‖W3‑W2‖2
[0091] L2=‑‖W3‑W2‖2
[0092] 使用综合损失函数将第一部分和第二部分的重建损失和对抗损失相结合,以确定每个解码器的总损失,表示为:
[0093] L1=l‑n‖W1‑W2‖2+(1‑l‑n)‖W3‑W2‖2
[0094] L2=e‑n‖W3‑W2‖2+(1‑e‑n)‖W3‑W2‖2
[0095] 其中,n表示训练周期,l是一个接近1的训练参数。因为神经网络训练过程中的损‑n失曲线通常呈指数函数变化,所以,在训练过程中,我们使用形式为l 的权重。Transformer模型的多头注意力机制可以保证数据并行处理,从而缩短训练时间。
[0096] S105、将数据流序列样本输入AT‑Transformer模型进行网络流量检测,使用可视化技术对检测结果进行可视化展示。
[0097] 在将AT‑Transformer模型用于网络流量检测前,对模型进行性能评估与分析,采用准确率、精确率、召回率、AUC等指标进行衡量,对比其他模型并且检验效果是否达到预期目标,最终进行抗噪对比和可视化处理。
[0098] 为了证明所述方法在网络流量检测方面的有效性,选取了四种相似的深度学习分类算法进行比较,这些算法都经过调整以保证它们良好的性能。将AT‑Transformer模型的编码器和解码器层数为6层,在多头注意力中我们使用的注意力头数为6,在实际操作中,我们将ls固定为一个单位,窗口长度lw设置为25到50不等。非线性激活函数采用ELU激活函数。为了防止过拟合,注意力部分使用dropout方法,速率为0.1。模型的框架采用Pytorch,并在训练过程中使用Adam优化器更新神经网络的权重,以最小化损失函数。前馈网络层中的神经元数量设置为256。WUSTL_IIOT_2021数据集的学习率设置为0.001。将数据集按80%、
10%和10%的比率划分为训练、验证和测试集,整个训练过程持续了15个训练周期(epoch)。表1展示了不同检测方法在数据集WUSTL_IIOT_2021的DoS数据上的性能表现。
[0099] 表1不同检测方法在DoS数据上的性能比较
[0100]
[0101] 除了DoS数据,我们对WUSTL_IIOT_2021数据集的Recon、Comm、Backdoor数据也进行了性能比较,具体展示于表2中。
[0102] 表2不同检测方法在Recon、Comm、Backdoor数据上的性能比较
[0103]
[0104] 为了更全面的对比以上这些异常检测算法的抗干扰性能,对它们随机施加满足高斯分布的噪声。通过给训练集随机增加噪声来达到干扰训练的目的,在训练集上增加噪声的规模大小由参数p来控制,P的比例越大,训练集上添加噪声的规模也就越大。最终,各种方法的F1‑score值的大小随噪声比例大小p的变化趋势如图4所示,阴影部分为上下浮动。
[0105] 可以看出经过验证,此方法受到噪声干扰后F1‑score变化较小,抗噪能力更优异,以此证明此方法的突出效果。
[0106] 使用可视化技术将检测过程中的异常分数部分展示出来,从而提高模型的可解释性,模型不再是完全的黑盒模型,具有一定的透明度。其中对于部分序列化数据的具体异常得分情况展示于图5中。
[0107] 在时间开销方面,我们与传统的Transformer方法进行了详细对比,结果如图6所示。通过不同训练数据集比例的实验,可以发现无论训练数据集的比例是多少,AT‑Transformer方法的时间开销均显著减少。具体来说,与此领域当前最优模型相比,AT‑Transformer模型在时间开销方面平均减少了85%。这一显著的优化表明,AT‑transformer模型在保持高检测准确度的同时,大幅提高了计算效率,验证了方法的有效性。
[0108] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。