1. 引言
在大数据时代背景下,网络安全问题变得尤为突出,网络攻击手段的不断升级对基于传统规则或特征的入侵检测方法提出了巨大挑战。近年来,深度学习方法在多个领域取得突破性进展,其在网络安全领域的应用也逐渐受到重视。深度学习,特别是自动编码器和残差网络(ResNet),在特征提取和分类任务上展现出显著优势。自动编码器通过无监督学习进行特征降维和学习,而残差网络通过引入跳跃连接解决了深层网络训练中的梯度消失问题,提高了模型的分类性能。尽管已有研究利用深度学习进行网络入侵检测,但如何有效结合不同深度学习模型的优势,提高检测的准确率和降低误报率,仍是当前研究的热点。
现有研究大多利用深度学习技术进行网络入侵检测,取得了一定的进展,但现有模型仍存在一些亟待解决的问题。例如部分模型在处理复杂多类别攻击时泛化能力不足,精确度有待提高;一些方法在面对大规模数据集时训练时间长、计算成本高,难以快速适应动态变化的网络环境。
为解决现有模型特征表示能力有限、泛化能力不足以及训练效率低下的问题,本研究旨在结合自动编码器和残差网络的优势,提出一种新的网络入侵检测模型。本模型结合自动编码器(AutoEncoder)进行特征提取,利用残差网络的深层结构进行特征学习,并引入多头注意力机制以增强特征表示能力。通过引入多头注意力机制,模型能够动态聚焦于与入侵行为高度相关的特征,捕捉输入数据中不同位置之间的依赖关系,形成更丰富的特征表示,从而提高对复杂网络流量数据的分析精度,残差网络的深层结构能够学习到更丰富的特征层次,提高模型的泛化能力,使其在面对多类别攻击时表现出更好的性能。该方法的提出,旨在为网络安全领域提供一种有效的入侵检测解决方案,以应对日益复杂的网络攻击手段。
文章剩余部分的组织结构如下:第2部分介绍研究现状;第3部分详细描述模型设计;第4部分展示实验及结果分析;第5部分总结全文并展望未来工作。
2. 研究现状
现有深度学习模型在特征提取过程中往往未能充分利用数据中的全局依赖关系,导致特征表示能力有限。传统的卷积神经网络(CNN)虽然能够提取局部特征,但在处理复杂的网络流量数据时,难以捕捉到全局上下文信息[1]。一些基于循环神经网络(RNN)及其变体的模型虽然能够处理时间序列数据,但在特征表示的丰富性上仍存在不足。例如,Cao等人[2]提出的基于CNN和双向门控循环单元(BiGRU)的网络入侵检测技术,虽然在一定程度上提高了检测性能,但在处理复杂的多类别攻击时,模型的泛化能力和精确度仍有待提高。
在面对新型攻击和复杂网络环境时,现有模型的泛化能力有限。大多数现有模型在训练阶段虽然能够取得较高的准确率,但在测试阶段,尤其是在面对未见过的攻击类型时,模型的性能会显著下降。例如,Fatani等人[3]利用生长优化算法和传统神经网络增强了物联网和云环境中的入侵检测系统,但在面对大规模动态变化的网络流量时,模型的适应性较差,难以快速调整以应对新的攻击模式。Debicha等人[4]提出的基于迁移学习的多对抗检测方法,虽然在一定程度上提高了模型对新型攻击的适应能力,但在处理大规模数据集时,模型的训练效率和计算成本问题仍然存在,且在面对复杂攻击模式时的泛化能力有限。
现有模型在处理大规模数据集时,往往面临训练效率低下的问题。例如,基于生成对抗网络(GAN)的模型虽然能够生成更具代表性的特征,但在训练过程中需要大量的计算资源和时间。Vu等人[5]提出的基于深度生成学习模型的云环境入侵检测系统,虽然在检测性能上有所提升,但在面对多类别攻击时的泛化能力仍有待提升,且在处理大规模数据集时的训练效率问题也限制了其实际应用。Alazab等人[6]提出的基于蛾群优化算法的入侵检测系统,通过优化特征选择过程提高了模型的检测效率,但在处理大规模数据集时的训练效率和计算成本问题仍然存在,且在面对新型攻击时的泛化能力有限。
综上所述,已有研究在入侵检测领域取得了显著进展,但现有模型在特征表示能力、泛化能力和训练效率方面仍存在不足。特别是在处理大规模数据集和多类别攻击时,现有模型的误报率和漏报率仍然较高,难以满足实际应用的需求。因此进一步优化特征提取和分类过程,提高模型的泛化能力和训练效率,是当前入侵检测领域亟待解决的问题。
3. 模型设计
本研究提出的网络入侵检测模型创新性地融合了自动编码器(AutoEncoder)、改进的残差网络(ResNet)和多头注意力机制。模型整体架构分为特征提取、特征学习和分类三大模块。
3.1. 自动编码器
自动编码器是一种无监督的深度学习网络模型,通过网络重构输入数据进行有效编码。自编码网络的中间层节点数量小于两边节点数量,通常用做特征学习和特征降维[7]。自动编码器的工作原理是通过中间隐藏层让网络结构的输入数据和输出数据尽可能相同,在不损失信息量的基础上,寻找对输入数据的有效表达。自编码网络的输入通常是无标签的样本特征,输入样本经过线性组合和激活函数操作后到达中间隐藏层,这个过程称为编码过程;同样将隐藏层数据经过线性组合和非线性激活操作重构出原始输入样本,这个过程称为解码过程[8]。简而言之,自编码器通过编码层压缩原始数据等到新的特征,再通过解码层重构出原始数据。
3.2. 残差网络
残差网络是经典的卷积神经网络,它的主要思想是在堆叠的CNN中引入跳跃结构进行跨层连接,即保留之前网络结构的输入x,将其与卷积后的输出相加得到期望输出H(x)。图1为一个残差块,可以看出,残差网络把卷积网络从学习完整的输出H(x)转换为学习网络的残差函数F(x),其中F(x) = H(x) − x,这就是所说的残差网络[9]。
Figure 1. Residual module
图1. 残差模块
3.3. 注意力机制
注意力机制的引入为深度学习模型提供了一种动态地聚焦于输入数据重要部分的能力[10]。其原理基于人类视觉注意力的直观理解,即在处理信息时关注最重要的部分而忽略其他不相关的信息。在神经网络中,这种机制通过学习输入数据中不同部分的重要性权重来实现,从而增强模型对关键特征的识别能力[11]。
多头注意力机制是注意力机制的一种扩展,它允许模型同时在不同的表示子空间中关注信息。这种机制通过多个并行的注意力层来实现,每个层关注输入的不同方面,然后将这些信息合并以形成更丰富的特征表示。在Transformer模型中,多头注意力机制被用来捕捉序列数据中的长距离依赖关系,显著提高了模型的性能。
在网络入侵检测领域,注意力机制的应用主要体现在增强模型对网络流量中关键特征的识别能力[12]。通过学习流量数据中各个特征的重要性权重,模型能够更加关注于那些与入侵行为高度相关的特征,从而提高检测的准确性和效率,注意力机制还可以帮助模型适应不同的网络环境和攻击模式,因为它能够动态地调整对不同特征的关注程度。
3.4. 数据预处理
本文实验使用数据集是KDDCup99数据集,该数据集从模拟的美国空军局域网的网络环境中采集而来的,它将数据分为五大类,每一个行为由41个固定特征和1个类标志进行表示,类标志分别为normal、Dos、R2L、U2R、probing,其中后四类均为攻击数据[13]。训练集和测试集分别为KDDCup99数据集中的10%训练样本kdd-Cup.data10percent.gz和corrected的测试样本,具体实验数据及各类数据所占比例如表1所示。
Table 1. Experimental data
表1. 实验数据
攻击类型 |
训练集数量 |
训练集比例/% |
测试集数量 |
测试集比例/% |
normal |
97,278 |
19.69 |
60,593 |
19.48 |
DoS |
391,458 |
79.23 |
229,853 |
73.90 |
R2L |
1126 |
0.22 |
16,189 |
5.20 |
U2R |
52 |
0.01 |
228 |
0.07 |
probing |
4107 |
0.83 |
4166 |
1.33 |
针对KDDCup99数据集,本研究执行了一套详尽的数据预处理流程,以确保模型训练的高效性和准确性。数据预处理步骤包括数据清洗、特征选择、数据编码和归一化,旨在提升数据质量并适配模型的输入需求。
数据清洗过程识别并修正数据集中的错误或不完整记录,确保了数据的准确性。特征选择阶段通过评估特征的相关性和重要性,筛选出对分类任务影响最大的特征,以减少计算负担并避免无关特征的干扰[14]。
为了将分类特征转换为模型可处理的数值形式,采用了独热编码方法。这一过程将分类特征转换为二进制向量,简化了数据表示并有助于模型更好地理解分类特征。此外,考虑到特征值可能存在的量纲和范围差异,实施了归一化处理,将特征值缩放到[0, 1]的统一范围,以消除量纲影响并加快模型收敛速度。
在数据编码阶段,对protocol_type、service和flag等特征进行了数值化处理,例如将protocol_type的TCP、UDP、ICMP分别编码为二进制向量(0, 0, 1)、(0, 1, 0)、(1, 0, 0)。经过这些预处理步骤,数据被转换成适合深度学习模型输入的格式,为模型训练和评估提供了高质量的数据基础。
归一化处理通过线性映射将每个特征的取值范围缩放到[0, 1],转换函数为
,其中max为样本最大值,min为样本最小值。
3.5. 模型架构与训练
本文提出的网络入侵检测模型是一个深度学习架构,它整合了自动编码器、残差块和多头注意力机制,以实现对网络流量数据的深度分析和精确分类。自动编码器部分由编码器和解码器组成,编码器通过一系列卷积层和池化层逐步降低数据的空间维度,同时提取关键特征,而解码器则通过上采样和卷积层重建数据,尝试恢复到原始输入的维度。在这个过程中,自动编码器学习到数据的有效表示,为后续的分类任务提供支持。
残差块是自动编码器的核心构建模块,每个残差块包含两个卷积层,中间加入批量归一化层和ReLU激活函数,并通过跳跃连接将输入直接添加到输出上。这种设计允许模型学习残差映射,而不是直接学习未映射的特征,从而简化了网络的优化过程并提高了模型的学习能力。
多头注意力机制位于自动编码器的编码器和解码器之间,用于增强模型对关键特征的关注。通过并行的多个注意力头,模型能够捕捉到输入数据中不同位置之间的依赖关系,从而形成更丰富的特征表示。这有助于模型在处理复杂的网络流量数据时,更加关注于与入侵行为高度相关的特征。具体模型架构如图2所示。
模型的最终输出层是一个全连接层,用于将自动编码器和注意力机制处理后的特征映射到分类结果上。该层基于前面步骤提炼出的特征,进行最终的入侵检测分类,输出网络流量是否属于入侵行为的预测。
Figure 2. Model architecture diagram
图2. 模型架构图
模型的训练过程涉及输入数据的准备、前向传播、损失函数的计算、反向传播和参数更新。输入数据经过预处理后,转换为适合模型输入的格式。在前向传播阶段,数据依次通过自动编码器、残差块和多头注意力机制,最终由全连接层输出分类结果。
损失函数采用交叉熵损失,衡量模型预测值与真实标签之间的差异。反向传播基于损失函数的梯度,更新模型参数以最小化预测误差。优化器选择Adam优化器,因其在处理深度学习模型时表现出良好的收敛性能和稳定性。权重衰减技术应用于优化过程,通过在损失函数中添加正则化项,限制模型参数的大小,有效防止过拟合,提高模型的泛化能力。
4. 实验及结果分析
4.1. 实验环境与超参数设置
在本次实验中,实验环境配置为:操作系统为Windows,Python版本为3.12,PyTorch版本为2.5.1,CUDA版本为12.4。对于超参数的选择,经过多次实验,模型的超参数设置如下:模型选用交叉熵损失函数,并设置了类别权重以处理类别不平衡问题;学习率(learning rate)设置为0.0001,权重衰减(weight decay)设置为0.001,用于正则化;批量大小(batch size)设置为32;实验迭代次数(epochs)设置为50。实验环境见表2。
Table 2. Experimental environment configuration table
表2. 实验环境配置表
参数名称 |
参数值 |
说明 |
Python版本 |
3.12 |
Python解释器版本 |
操作系统 |
Windows |
实验运行的操作系统 |
PyTorch版本 |
2.5.1 |
使用的PyTorch框架版本 |
CUDA版本 |
12.4 |
使用的CUDA版本,用于GPU加速 |
模型训练过程中,输入数据被转换为[batch_size, 1, height, width]的形式,其中height和width根据自动编码器输出的特征维度确定。训练集和测试集的划分依据KDDCup99数据集的10%训练样本和修正后的测试样本进行[15]。
4.2. 评价指标
在本研究中,准确率、F1-score和损失值被用作评估模型性能的主要评价指标。这些指标能够全面反映模型在网络入侵检测任务中的表现。
准确率(Accuracy)是指模型正确预测的样本数占总样本数的比例。其计算公式为:
其中,TP (TruePositives)是模型正确识别的正类样本数,TN (TrueNegatives)是模型正确识别的负类样本数,FP (FalsePositives)是模型错误识别为正类的负类样本数,FN (FalseNegatives)是模型错误识别为负类的正类样本数[16]。
F1-score是精确率(Precision)和召回率的调和平均数,用于综合考虑精确率和召回率,其计算公式为:
损失值,特别是交叉熵损失(Cross-Entropy Loss),用于衡量模型预测值与实际值之间的差异。在PyTorch中,交叉熵损失函数可以通过torch.nn.CrossEntropyLoss实现。交叉熵损失函数内部会应用softmax函数将logits转换为概率分布,然后计算预测概率分布与真实分布之间的交叉熵。计算公式为:
4.3. 实验结果
本研究旨在通过构建有效的网络入侵检测模型,解决数据集中类别不平衡导致的少数类攻击样本检测不准确的问题。通过引入注意力机制,模型能够动态聚焦于与入侵行为高度相关的特征,从而减少误报率并提高检测效率。实验结果显示,模型精确率达到了97.27%,表明模型在预测攻击流量时具有较高的可靠性,能够有效减少误报。F1-score达到了97.78%,这一指标综合考虑了精确率和召回率,说明模型不仅在识别攻击样本时具有高准确性,同时也能较好地召回实际的攻击样本,解决了以往模型在少数类样本检测上的不足。模型精确率趋势见图3。
Figure 3. Model accuracy
图3. 模型精确率
与传统方法和其他深度学习模型相比,该模型展现了显著的性能优势。传统基于规则的入侵检测方法在面对复杂的网络攻击时,准确率通常低于80%,F1-score也难以达到90%。而基于深度学习的模型,如卷积神经网络(CNN)和递归神经网络(RNN),在相同数据集上的准确率大多在85%到90%之间,F1-score在85%到93%之间。相比之下,本文提出的模型通过结合自动编码器、残差网络和多头注意力机制,显著提升了特征提取和分类能力,从而在准确率和F1-score上分别有所提高。模型性能对比结果见图4。
Figure 4. The performance comparison results of the models
图4. 模型性能对比结果图
模型的损失值在训练过程中持续下降并趋于稳定,最终保持在0.01左右,这表明模型在训练过程中能够有效学习数据特征,对训练数据拟合良好且未出现过拟合现象。这些结果表明,所提出的模型能够有效应对类别不平衡问题,提高网络入侵检测的准确性和可靠性。模型损失趋势见图5。
Figure 5. Model loss diagram
图5. 模型损失图
综上所述,本文提出的基于注意力机制的网络入侵检测模型通过自动编码器、残差网络和多头注意力机制的协同工作,有效解决了数据集中类别不平衡问题,显著提高了网络入侵检测的准确性和可靠性。实验结果表明,该模型在精确率和F1-score等关键指标上均优于传统方法和其他深度学习模型,展现了其在复杂网络环境下的高效检测能力。
5. 结论
在如今的大数据环境下,网络安全问题复杂而严峻,对网络入侵数据的检测技术受到了越来越多的关注。一方面,尽管传统的入侵检测方法已颇为成熟,但依然存在着一些局限性;另一方面,由于深度学习在诸多分类回归问题上优势显著,基于深度学习的网络入侵检测模型不断涌现并持续改进。本文创新性地将深度学习模型AutoEncoder和ResNet相结合,充分利用自编码器对数据特征的有效学习能力,以及残差网络ResNet构建深层模型以实现精准分类的特性,设计出了全新的模型,为网络入侵检测领域提供了崭新的思路。实验结果显示,该模型不仅达到了较高的准确率,还成功降低了误报率,有力地表明了AutoEncoder和ResNet模型的有效性与可行性。尽管如此,该算法在特征提取和神经网络模型优化方面还有很大的提升空间,未来工作将致力于深度学习模型的调整,提高模型的预测性能。
NOTES
*第一作者。
#通讯作者。