APP下载

基于BiGRU-SVM的网络入侵检测模型

2023-02-05高仲合

计算机技术与发展 2023年1期
关键词:双向神经网络分类

张 凡,高仲合,牛 琨

(曲阜师范大学 网络空间安全学院,山东 曲阜 273165)

0 引 言

随着网络设备以及通信协议传输数据量的增加,面向互联网的攻击手段变得复杂多样,网络安全问题也越来越严峻[1]。当前的计算机网络正面临诸如拒绝服务、病毒和特洛伊木马以及网络嗅探等安全威胁[2],入侵检测系统(Intrusion Detection Systems,IDS)成为网络安全防护技术的研究热点。

近年来,机器学习算法在入侵检测领域表现出了较好的检测效果,例如支持向量机(Support Vector Machine,SVM)、遗传算法(Genetic Algorithm,GA)、神经网络(Neural Network,NN)等。但是,随着入侵方式日益多元化,出现了网络流量性质复杂多样且具有长期相关性,网络数据维度越来越大的问题[3],现有机器学习算法暴露出很多局限性。例如,不满足高维度的大批量数据的检测要求,入侵识别的准确度较低,误报率高等。然而,深度学习算法在处理高维特征的复杂数据时表现出更好的学习性能,它能提取更深层次的特征,还能有效检测未知入侵行为[4]。

网络入侵检测即根据网络流量数据或主机数据来判断系统是否存在异常行为,入侵检测也可以抽象为分类问题。鉴于深度学习的学习性能,深度学习算法中的递归神经网络(Recurrent Neural Network,RNN)[5]及其长短时记忆神经网络(Long Short Term Memory,LSTM)[6]和门控递归循环单元(Gated Recurrent Unit,GRU)[7]被广泛用于分类问题。GRU和LSTM都是RNN的变体,引入了门结构控制信息保留程度,能够捕捉网络流量的长期相关性[8]。因为网络流量数据本质上是顺序的,RNN常被用于分析和预测顺序数据,所以RNN在入侵检测方向有广阔的应用前景[9]。

已有研究将卷积神经网络(Convolutional Neural Networks,CNN)[10]、循环神经网络(RNN)[11]、CNN与LSTM[12]相结合的神经网络应用到入侵检测领域并取得了较好效果。M等人[13]提出在CNN中提取不同层的输出,并使用线性支持向量机(SVM)和1-近邻(1-NN)分类器来进行入侵检测,提高了检测性能。A和S[14]提出了一种结合回声状态网络(Echo State Network,ESN)和SVM的入侵检测模型,获得了更高的时间序列分类任务性能。这种方法的主要目的是结合ESN处理时间序列的能力和支持向量机突出的分类性能。后有研究对其进行改进,文献[15]提出使用具有门控递归单元(GRUs)的递归神经网络(RNNs)来代替ESN,并将其用于入侵检测,使用SVM进行分类,提高了分类效率。

GRU具有时间序列预测能力,能够检测未知的攻击样本。该文提出使用双向门控循环单元(Bidirection Gated Recurrent Unit,BiGRU)学习深层次特征,基于网络数据的时序性,在GRU的基础上进行网络结构改进,增加一层GRU,设计了双向GRU结构,能够从正向学习过去的信息痕迹,也能从逆向学习未来的信息,充分学习数据的特征信息,达到数据复用的效果。延用算法[16]提出的方法是用SVM代替Softmax层分类。为了加快模型的训练,同时避免训练过程陷入局部最优,使用自适应矩估计(Adam)梯度下降优化算法来辅助GRU的训练。

1 相关工作

1.1 门控递归循环单元结构(GRU)

GRU只保留了更新门和复位门,它的输入层在设置神经元个数的时候可以根据特征空间的大小设定,在计算过程中减少了参数,极大地加快了收敛速度,并且GRU的门机制解决了梯度消失和梯度爆炸问题。

重置门决定前一时刻的输入rt=σ(Wr•[ht-1,xt])传递给当前的输入xt的信息。更新门决定是否保留当前输入值xt的信息,更新门会输出值域为[0,1]的值,数值越接近1,代表保留的信息越多,越接近0,代表丢弃的越多。xt是输入序列,ht是存储单元的输出值,rt是重置门,zt和rt共同控制了从ht-1隐藏状态到ht隐藏状态的计算。

GRU中的更新门zt定义了过去的信息将有多少保存到当前时刻,zt可以同时进行选择和丢弃数据信息,在选择信息保留时,从ht-1到ht之间形成一个连接,这会使梯度反向传播,有效解决梯度消失问题。具体的门单元计算公式为:

zt=σ(Wz·[ht-1,xt])

(1)

rt=σ(Wr·[ht-1,xt])

(2)

(3)

(4)

式中,σ是sigmoid函数,Wz、Wr、W分别为更新门、重置门以及候选隐藏状态的权重矩阵。根据重置门、更新门和隐藏状态的计算结果,可以通过公式得到当前时刻的输出ht。

GRU结构如图1所示。

图1 GRU结构

1.2 双向门控循环单元结构(BiGRU)

GRU在特征提取的过程中是单方向进行计算,只对过去的信息进行特征提取。在对训练序列学习时,BiGRU既能正向学习过去信息对当前时刻的影响,还能逆向学习未来信息对当前时刻的影响,而且双向网络都连接着同一个输出层[17]。双向门控循环单元结构为输出层提供了输入序列中每一个时刻过去和未来的上下文信息[18]。

BiGRU模型的基本单元由前向传播的GRU单元和后向传播的GRU单元组成。BiGRU的网络结构如图2所示。

图2 BiGRU网络结构

(5)

(6)

(7)

(8)

(9)

反向推导公式如下:

(10)

(11)

(12)

(13)

(14)

将正向和逆向推导结果进行处理,将两个方向的结果进行线性融合,如下:

(15)

本研究中选择使用加权融合算法对两个输出数据结果进行处理:

(16)

对于双向GRU的输出,采用融合加权线性组合的方法,比例系数k是一个常量。通过调节系数k可以找到合适的融合阈值,这种方法更充分地利用了正反双向的输出信息,提高了检测精度。

1.3 BiGRU-SVM入侵检测模型设计

GRU具有较强的记忆特性,能够有效地处理具有时序特征的问题。在研究中,在GRU的基础上进行网络结构改进,增加一层反向学习GRU层,设计了双向GRU结构,能够正向学习过去的信息痕迹,也能逆向学习未来的信息,达到了数据复用的效果。最后,对数据进行线性融合,双向GRU学习的结果共同决定输出值,提高了模型的环境适应性,虽然GRU比LSTM的结构更简单,但是在网络结构加深的情况下,GRU在处理大量的数据时会产生庞大的计算量,因此,引入支持向量机作为分类器提高效率,降低训练时间,也能在模型性能上进行提升[20],可以更好地学习正反两个方向的信息。

在这项研究中,有21个特征被用于模型输入,然后通过GRU的门机制来学习参数。人工神经网络通常使用Softmax激活函数作为其分类器。然而,在二元分类问题中,SVM只需要达到最优超平面(f(w,x)=w·x+b),相比之下,Softmax分类器需要满足一个概率分布,SVM在这类问题中优于Softmax。入侵检测的主要关注点是确定是否存在攻击,因此,SVM的计算和训练速度比Softmax快。BiGRU-SVM的模型如图3所示。

图3 BiGRU-SVM网络结构模型

因为入侵检测的主要关注点是确定是否存在攻击,引入SVM作为模型的最后一层,参数是通过优化SVM的目标函数来学习的,然后,改进的BiGRU-SVM模型中不再使用交叉熵函数来衡量网络损失值,而使用SVM的损失函数。

SVM通过解决以下约束优化问题来学习参数w和b:其中w为该超平面的法向量,b为偏置。

(17)

上面公式被称为L1-SVM的无约束优化问题,它具有标准化铰链损耗。公式中y'是实际标签,wTx+b是预测函数。存在的问题是它不可微。然而,它的变体被称为L2-SVM是可微的,并且比L1-SVM更稳定,在一定程度上降低了过拟合的风险。

(18)

‖w‖2是欧几里德范数,也称为L2范数,具有平方铰链损失。调整惩罚参数C,使用L2-SVM计算出损失可以提高模型的适应性,使用Adam优化函数优化损失函数和学习率等网络参数,能够进一步提高训练效果。

为了解决分类问题,提高分类效率,将SVM目标函数与神经网络的激活函数进行区分。使用L2-SVM的目标函数训练神经网络通过反向传播来自顶层线性支持向量机的梯度来学习下层权重。l(w)是目标函数,将输入x替换为前一层的激活函数h。

(19)

其中,Ⅱ(·)是指示函数,同样对于L2-SVM,有:

(20)

L2-SVM被应用于提出的BiGRU-SVM模型,在预测时,预测函数为每一个类生成一个得分向量,因此使用argmax函数得到数据x的预测类别标签y。

predicted_class=argmax(sign(wx+b))

(21)

其实,反向传播算法与标准的基于Softmax的深度学习网络完全相同,并且L2-SVM在大多数情况下优于L1-SVM。

2 实验结果及分析

2.1 数据集及数据预处理

该研究使用了2013年京都大学蜜罐系统的网络流量数据,它有24个统计特征;包括来自KDD Cup 99数据集的14个特征,这是入侵检测研究领域中非常流行和广泛使用的性能评估数据,除了这14个特征之外,还提取了另外10个特征,能够更有效地调查网络行为。首先,对数值进行归一化处理,该研究所做的预处理如下:将服务、标志和协议等分类特征映射到[0,n-1],其中n是特征中的符号数量。

标准化连续特性,如duration、src_bytes、dest_bytes、dst_host_count、dst_host_srv_count和start_time等。在上述处理之后,使用独热编码规范化数据。

(22)

其中,X是待标准化的特征值,μ是给定特征的均值,σ是其标准差。在数据集归一化后,离散化连续特征,离散化特征降低了所需的计算成本,并提高了数据集的分类性能,最后,这些特征进行独热编码后可输入模型。

实验用了整个网络流量数据集(16.2 GB)的25%,大约4.1 GB的数据。总共1 898 240个训练数据实例,其中包括794 512个正常样本,1 103 728个入侵样本;有420 608个测试数据实例,其中包括157 914个正常样本,262 694个入侵样本,如表1所示。在本实验中,使用检测准确率和误报率来评估模型的性能,在数据集上进行验证,每训练100次保存1次模型,在检测模型中,针对于二分类对模型进行评估,数据集分为了两类:正常类和攻击类。

表1 数据集分布

2.2 实验环境及参数设置

实验环境为win10操作系统,处理器为4核8线程intel(R)Core(TM)i7-10510U CPU@1.80 GHz,内存为12 GB,编程语言使用python3.6。神经网络参数设置如表2所示。

表2 神经网络超参数

2.3 评价指标

为了验证不同模型的检测性能,需要根据模型的检测样本类别和样本实际类别进行计算。该文主要采用准确率(ACC)和误报率(FPR)对模型进行评估。

准确率Accuracy(ACC):表示正确分类的比例。

(23)

误报率False Positive Rate(FPR):表示被误报的正常样本占总的正常样本的比例。

(24)

真阳性(TP):被正确归类为异常的异常实例;

假阳性(FP):正常情况被错误地归类为异常;

真阴性(TN):正常情况被正确归类为正常;

假阴性(FN):异常情况被错误地归类为正常。

2.4 实验结果

如表3所示,在同样的环境下进行了对比试验,提出的BiGRU-SVM模型无论是在训练集还是测试集,检测准确率都高于其他两个模型,BiGRU-SVM在训练数据集上的平均准确率和验证准确率分别为99.93%和98.76%。

表3 三种神经网络模型训练与验证

将BiGRU-SVM与GRU-Softmax和GRU-SVM模型的实验结果进行对比,如表4所示。BiGRU-SVM的检测准确度高于其他两个模型,与最新的方法GRU-SVM相比分别有14.61百分点的提升,在误报率上下降了5.15百分点。实验数据表明,使用SVM作为模型得分类器,其检测准确度优于Softmax函数,使用双向门控循环神经网络的检测精度高于使用单向GRU网络结构,SVM作神经网络输出层的方法。

表4 改进方法与其他深度学习算法对比 %

3 结束语

提出了一种基于双向门控循环单元结构应用于入侵检测的方法,该方法能正确识别攻击并对其保持长期记忆,以便阻止其他新的攻击,同时将以独特的方式对待所有这种类型的攻击。该检测模型使用过去和未来的行为信息来确定当前行为,提高了准确性,并且可以适应现有的大量的网络流量和高维特征。为了验证该方法的有效性,采用京都大学蜜罐系统流量数据作为训练和测试数据集,以准确率和误报率作为评估指标,并将BiGRU-SVM与其他神经网络入侵检测方法进行对比。结果表明,BiGRU-SVM的检测指标达到了较高的值,证明该方法对入侵检测是有效的。未来,计划使用新提出的深度学习模型BiGRU-SVM真正实现一个新的智能NIDS。

猜你喜欢

双向神经网络分类
双向度的成长与自我实现
降低寄递成本需双向发力
用“双向宫排除法”解四宫数独
分类算一算
神经网络抑制无线通信干扰探究
分类讨论求坐标
基于神经网络的中小学生情感分析
数据分析中的分类讨论
教你一招:数的分类
一种软开关的交错并联Buck/Boost双向DC/DC变换器