基于ECA-ResNet的入侵检测模型研究
2022-04-01郝宽,李昊,姜伟
郝 宽,李 昊,姜 伟
(哈尔滨师范大学 计算机科学与信息工程学院,黑龙江 哈尔滨150025)
0 引言
随着网络技术的快速发展,互联网已经成为人们生活中必不可少的工具。网络技术应用广泛的同时,也会伴随着很多网络安全问题,尤其是对网络使用者来说,网络是否安全也是其考虑的重要因素。网络不安全会导致一系列不可挽回的损失,所以对网络安全问题的研究在当下和未来有着极为重要的作用。网络流量由一系列的信息组成,如协议类型、端口信息等,机器学习通过对大量的数据进行分析,最后判断出网络流量是否为攻击流量,从而达到拦截恶意流量的目的。
卷积神经网络(CNN)采用局部连接和权值共享的方式,减少了权值的数量,使得网络易于优化,同时降低了系统复杂度。CNN具有很好的容错能力、并行处理能力和自学习能力,同时具有较强的泛化能力,是一种深度的监督学习下的机器学习模型,适应能力极强,善于挖掘数据局部特征,提取全局训练特征和分类。将网络流量数据输入CNN中[1],通过学习输入和输出间的映射关系,得到理想的模型。通过卷积网络学习网络流量的特征信息,得到理想的分类模型,达到识别恶意流量的效果。
1 相关工作
入侵检测概念于1980年由James Anderson提出,并不断发展。入侵检测技术是网络安全中的一项重要技术,旨在保护网络中数据的完整性、可用性和机密性,使数据免受攻击。目前,国内外对入侵检测方面进行广泛的研究。随着机器学习的研究推进,研究人员开始将机器学习与入侵检测技术结合,从而提高检测的准确率。Mohammad Noor Injadat等[2]提出了一种新的多阶段优化的基于机器学习的NIDS框架,该框架在保持检测性能的同时降低了计算复杂度。
通过上述分析可知,机器学习由于其出色的学习能力已经广泛应用于入侵检测领域[3],深度学习能更深一步地学习网络流量特征,更好地分辨出攻击流量[4]。本文提出了基于ECA-ResNet的网络入侵检测模型,该模型结合了残差网络ResNet[5]和通道注意力机制ECANet,ECANet对不同的任务可以根据输入进行特征分配,提高模型检测效率。此外,ResNet可以解决因为网络深度过深而导致的梯度消失和网络退化问题。
2 入侵检测模型构建
入侵检测模型主要分为以下3个部分:第一,将数据进行预处理,原始的数据集不能够直接输入模型中进行训练,需要将训练集和测试集处理成为能够满足模型使用的数据。第二,将处理好的训练集数据输入构建的网络中进行训练。第三,使用测试集对训练好的模型进行检测。模型结构如图1所示。
图1 入侵检测模型结构
2.1 数据预处理
由于深度学习的模型输入为数字形式,而数据集网络流量中的数据不是全为数字,有3项为字符型数据,所以需要将字符型数据转化为数值型。本文使用One-hot编码方式进行类型转化。将Protocol_Type、Service、Flag 3个特征转化为数字类型,如Protocol_Type有Tcp、Udp和Icmp 3种属性,经过One-hot编码处理后为001、010、100。
为了加快模型的训练和收敛,对数据进行归一化处理,归一化能够消除奇异样本数据导致的不良影响。将所有数据映射到[0,1]的区间内方便模型训练。
其中,x为原始特征,xmax、xmin为每一维所有特征值中的最大值和最小值,xn是进行归一化处理后的值。
2.2 数据平衡处理
数据集中的一些攻击类型的数量很少,在训练中模型很难很好地对数据特征进行充分的学习,导致一些类型的检测精度很低,目前的入侵检测研究中不少研究者将数据采样技术用于数据集的处理。GOZDEKARATAS等根据攻击类型数量平衡提高系统的效率及减少分类错误的情况,通过使用过采样技术(SMOTE)的合成数据生成模型降低不平衡率。对次要类执行数据生成,并通过该技术将其数量增加到平均数据大小。该方法使得少数类入侵流量的检测效率有所提升[6]。本文采用SMOTETomek综合采样方法对数据集进行处理,增加小样本数据的比例,提高罕见攻击类型的检测效率。使用SMOTETomek算法对Kdd训练集中的R2L和U2R进行采样,增加其在训练集中的比例,使网络能够对充分学习流量的特征,从而提升罕见攻击的检测率。
SMOTE算法首先找到一个要进行采样的样本,然后找到其周围的K个邻近样本,随机选择其中一个,然后在它们两个之间随机找到一个点生成样本。Tomek Link算法将处于边界的互为最邻近点的正反例样本进行删除,使得能有一个明显的界限在正反样本之间。两个算法进行结合,能够避免SMOTE算法产生的数据拟合问题。
2.3 模型构建
人们认为随着网络深度的增加,网络拟合能力会更高,会达到更好的效果,但是人们发现随着网络层数的不断增加,训练结果却恰恰相反。这是由于随着网络深度的增加会产生网络退化问题。残差网络由直接映射部分和残差部分两个部分构成,它的下一层的输入是上一层的输出和残差相加而得到的。ResNet通过增加残差结构使网络没有学到东西也不会比之前学到的更差。本文将ResNet用于入侵检测模型的构建。
模型网络结构如图2所示,在卷积层后加入BN层可以加快网络的训练收敛速度,防止梯度爆炸问题,使用RELU激活函数,RELU激活函数的稀疏性使模型能够更有效地挖掘数据特征。本网络使用RELU函数作为激活函数。Dropout层通过随机减少一些神经元,保留剩余的神经元进行训练,每个Batch更新不同的权重,最后集成在一起,能够起到防止拟合的作用。
图2 网络结构
2.4 通道注意力机制
通道注意力机制在计算机视觉领域取得了很好的效果,通过给每个通道分配权重使网络关注更重要的特征来提高网络模型的效率,ECANet能够在不降维的情况下进行这项工作,避免降维带来的副作用。通过构建ECA-ResNet入侵检测模型,运用ResNet解决网络退化和梯度消失问题,利用ECANet通道注意力机制选取重要特征,提高模型效率。
3 仿真与分析
3.1 数据集选择
选用的KDD99数据集,是使用较普遍的网络入侵检测数据集之一。数据集中存在拒绝服务(Dos)、探测(Probe)、用户到根(U2R)和远程到本地(R2L)4种攻击和正常(Normal)流量。该数据集包含41个体征,其中Protocol_Type、Service、Flag为字符型特征。在使用时需要将这3类特征转换为数值型。1~9特征为数据包中的包头信息,10~22特征为原始数据包的信息,通过这些信息系统可以访问有效载荷,23~31特征包含了一些链接计数和速率的相关信息,32~41特征是对一些链接进行的相关内容。
训练集选用10%的KDD99数据集,测试集采用corrected数据集,数据集中的类型分类见表1。
表1 数据集分布
3.2 实验环境
Intel(R)Core(TM)i5-8300HcCPU、16GB内存、NVIDIA GeForce GTX 1060显卡、64bit Windows10操作系统、环境:Python3.10、Pytorch1.12.1等。
3.3 评价指标
通过准确率、精确率、召回率、F1值对模型进行评价。将正常流量看为正样本,攻击流量看为负样本。
(1)真阳(True Positive,TP):正类被分类为正类。
(2)真阴(True Negative,TN):负类被分为负类。
(3)假阳(False Positive,FP):负类被分为正类。
(4)假阴(False Negative,FN):正类被分为负类。
准确率为预测正确的样本和所有样本的比值:
精确率(Precision)为分类正确的正样本与预测为正样本的比值:
召回率(Recall)为分类为正确的正样本和真正为正样本的比值:
F1值为使用精确率和召回率进行综合评价的一个指标:
3.4 实验结果
使用测试集对建立模型进行分析,与其他算法进行对比结果见表2。
表2 实验结果对比
从表2可以看出本模型的准确率、精确率和F1值比其他模型略高,但是召回率稍差。
4 结语
对网络安全中的入侵检测问题进行了分析,提出了一种将通道注意力机制加入残差网络入侵检测的模型。通过卷积操作对网络流量进行分析,提取其中的特征,区分正常数据和攻击数据,实验结果与其他模型对比准确率、精确率和F1值较其他模型有一定提高。虽然通过采样技术检测准确率有所提高,但是召回率还有待提高,所以还需加强这方面的研究。