APP下载

基于CNN-BiLSTM与三支决策的入侵检测方法

2022-08-25黄树成王云沼

软件导刊 2022年8期
关键词:特征提取决策样本

沈 雪,王 逊,黄树成,王云沼

(1.江苏科技大学计算机学院,江苏镇江 212003;2.中国人民解放军陆军通信训练基地,北京 100029)

0 引言

随着互联网和信息技术的飞速发展,网络安全变得越来越重要,而入侵检测技术已经成为保障网络安全的一种重要手段[1],近年来备受国内外研究者的关注。

随着机器学习算法的发展,很多研究人员将其应用到入侵检测领域。机器学习能够对特征进行学习并发现重要特征,将入侵检测转化为对网络中正常行为和异常行为的分类问题。常见的传统机器学习算法包括支持向量机(SVM)[2]、K 近邻(KNN)[3]、决策树(DT)[4]、随机森林(RF)[5]等。上述方法在一定程度上提高了入侵检测的性能,但基于传统机器学习的算法不能自主地学习特征,需要人为提取特征。

随着深度学习在语音识别、图像识别和自然语言处理等领域的成功应用,许多国内外学者尝试将深度学习技术应用于入侵检测。常用的深度学习技术包括自动编码器(AE)[6]、深度玻尔兹曼机(DBM)[7]、深度信念网络(DBN)[8]、卷积神经网络(CNN)[9]、循环神经网络(RNN)[10]等。深度学习算法相比于传统机器学习算法在检测性能上有较大提升,但也存在一些不足。在特征提取上,卷积神经网络(Convolution Neural Network,CNN)能够提取到数据的局部特征,但缺乏学习序列相关性的能力,而长短期记忆(Long Short-term Memory,LSTM)只能读取一个方向的序列数据,不能充分考虑之后属性信息的影响。此外,对于入侵检测研究,目前主要使用二分类方法,即将网络行为归属到正常行为或者是入侵行为,这在实际检测中,往往会因为信息不足盲目决策而造成误分类。

针对上述问题,本文提出CNN-BiLSTM 与三支决策(Three-way Decision,TWD)理论相结合,建立CNN-BiLSTM 和三支决策入侵检测模型。利用CNN-BiLSTM 进行特征提取,将提取后的特征进行三支决策,对信息不足的网络行为进行延迟决策,直到获取到足够的信息再进行判断,从而得到最终决策结果。最后,在NSL-KDD、CICIDS2017数据集上进行实验,评价算法的综合性能。

1 相关算法

1.1 卷积神经网络

卷积神经网络是深度学习的代表算法之一[11],它由3部分组成:输入层、隐藏层和输出层,其中隐藏层又包含卷积层、池化层、全连接层。其网络结构如图1所示。

Fig.1 CNN model structure图1 卷积神经网络模型结构

卷积层用来提取数据特征,公式如下:

池化层用于降低维数、减少计算量、加速网络收敛,同时去除数据冗余特征,有效减轻网络过拟合程度。为防止数据的时序特征被破坏,本文采用平均值池化对数据进行降维操作。

全连接层将前面提取到的所有局部特征进行组合。每个神经元都与上一层所有神经元连接,采用激活函数进行操作,将结果传递给输出层。

激活函数用于计算各神经元的权重。常用的激活函数有Sigmoid 函数、Tanh 函数和ReLU 系列函数。

损失函数用来评估模型预测值和真实值的差别程度,损失函数的值越小,代表预测值越接近真实值。损失函数公式如下:

其中,yi代表样本实际值,x[il]代表样本预测值,n为样本数据量。

CNN 的训练过程包括前向传播和反向传播。通过前向传播获得预测值,利用损失函数计算出预测值与实际值的误差,再通过反向传播,根据计算出来的误差损失和权重更新公式,并进行误差的反向传递,进而更新网络权重,经过大量迭代得到最终训练模型。

权重和偏置的更新公式如下:

1.2 双向长短期记忆

长短期记忆LSTM 是循环神经网络RNN 的变形,它由3 个门控单元和一个记忆细胞组合而成[12]。LSTM 使用累加而不是累乘的方式计算细胞状态,其导数也是累加方式,从而有效地解决了RNN 在训练过程中出现的梯度消失和梯度爆炸问题。其网络模型结构如图2所示。

Fig.2 LSTM model structure图2 LSTM模型结构

其中,ct-1、ht-1表示时间步t-1的记忆细胞和隐层状态,xt是时间步t的输入,ft、it、ot分别代表遗忘门、输入门和输出门;σ表示Sigmoid 激活函数是时间步t的候选记忆细胞,使用Tanh 激活函数;ct、ht、yt分别表示时间步t的记忆细胞、隐层状态和输出。特征提取步骤如下:

Step1:计算输入门ft。通过读取xt和ht-1,遗忘门ft对时间步t的细胞状态进行筛选,决定丢弃什么信息。公式如下:

其中,Wxf和Whf是权重参数,bf是偏差参数。

Step2:计算输入门it和候选记忆细胞,确定将哪些新信息存放进记忆细胞中。公式如下:

其中,Wxi、Whi、Wxc、Whc是权重参数,bi、bc是偏差参数。

Step3:计算更新的细胞状态ct,得到最终更新的细胞状态ct。公式如下:

Step4:计算输出门ot和隐层状态ht。公式如下:

其中,Wxo和Who是权重参数,bo是偏差参数。

双向长短期记忆BiLSTM 由一个正向LSTM 和一个反向LSTM 网络组成,在LSTM 网络单向数据流动的基础上,增加了反向的数据流向,并且前向隐藏层和后向隐藏层之间没有联系,从而有效地解决了LSTM 只能提取单一方向的序列特征问题。其网络结构如图3所示。

Fig.3 BiLSTM model structure图3 BiLSTM 模型结构

每一级隐藏层状态ht的计算公式如下:

其中,LSTM代表式(8)—式(13)的运算过程,是前向隐藏层状态是后向隐藏层状态,Wfwd是前向隐藏层的权重参数,Wbwd是后向隐藏层的权重参数,bt是隐藏层的偏置参数。

1.3 三支决策理论

三支决策理论是Yao 等[13]基于概率粗糙集和决策粗糙集提出的新决策理论,是对二支决策理论的一种扩展。其核心思想是将整体区域(分类对象)划分为3 个两两互不相交的区域,分别是正域(POS)、负域(NEG)和边界域(BND),然后对不同的区域采取不同的策略。

将一个样本x划分到3 个不同的区域可能存在两种不同的状态,即x属于该域(P)和x不属于该域(N),并且对样本x可以采取3 种不同的决策,即接受决策(Dp)、延迟决策(DB)和拒绝决策(DN)。由于将一个样本划分到正域、负域和边界域的代价不同,因此可以得到6 种不同的分类代价,分别用λPP、λBP、λNP、λPN、λBN、λNN表示,其决策的代价损失函数如表1所示。

Table 1 Cost loss function表1 代价损失函数

根据贝叶斯最小风险原则,损失函数之间的大小关系满足:0 ≤λPP≤λBP<λNP,0 ≤λNN≤λBN<λPN。

假设α、β为两个决策阈值。根据文献[14]的推导证明,可以得到其计算公式如下:

在入侵检测中,正域表示该网络行为属于入侵行为,负域表示该网络行为属于正常行为,边界域表示暂未进行决策的行为。假设X表示入侵概念的区域,x表示网络行为样本数据,P(X|[x])表示将一个网络行为划分到入侵区域的概率。

可以得到如下3条决策规则:①如果P(X|[x]) >α,则x∈POS(X)。将该网络行为划分到入侵行为区域中;②如果α≤P(X|[x]) ≤β,则x∈BND(X)。将该网络行为划分到边界域中延迟决策,等待进一步处理;③如果P(X|[x]) <β,则x∈NEG(X)。将该网络行为划分到正常行为区域中。

2 基于CNN-BiLSTM 与三支决策的入侵检测模型

2.1 入侵检测算法整体流程

本文构建的基于CNN-BiLSTM 和三支决策的入侵检测方法,其整体流程主要包括3 个部分:对数据进行预处理、通过CNN-BiLSTM 特征提取以及利用三支决策进行判断。算法整体流程如图4所示。

2.2 基于CNN-BiLSTM 的特征提取

在使用CNN-BiLSTM 进行特征提取时,具体提取步骤如下:

Step1:卷积层对预处理后的数据进行卷积操作,特征提取。

Step2:池化层对卷积层输出的数据进行降维操作。

Fig.4 Algorithm overall flow图4 算法整体流程

Step3:将CNN 提取到的特征送入BiLSTM 作为其输入。

Step4:BiLSTM 对数据进行长距离依赖特征提取。

Step5:全连接层将前面提取到的局部特征进行整合。

Step6:根据损失函数计算出预计值与实际值的误差。

Step7:采用梯度下降法进行反向传播误差,求出损失函数对每一个参数的梯度并更新网络参数,多次迭代后得到最终训练模型。

Step8:在训练模型中输出提取的数据特征,即数据的低维表示。

2.3 基于三支决策理论的网络行为分类

在利用三支决策理论对网络行为进行分类时,假设样本集为X=(x1,x2,……,xn)。首先,求出样本xi属于正域的概率p(POS|xi),其中i=1,2,……,n。然后比较p(POS|xi)的值与决策阈值α、β的大小:如果p(POS|xi) >α,则将其划分到正域中;如果p(POS|xi) <β,则将其划分到负域中;如果α≤p(POS|xi) ≤β,则将其划分到边界域中。对于被划分到边界域中的网络数据,将其重新输入到CNN-BiLSTM 模型中进行特征提取,然后再次划分。在边界域内不再有样本存在之前,该决策过程将一直持续下去[15]。具体算法步骤如下:

输入:训练集Tr,测试集Te

输出:正域POS,负域NEG

1.初始化参数:CNN-BiLSTM 特征提取方式G;

决策阈值α,β;

三支分类器f;

正域(POS)=∅;负域(NEG)=∅;边界域(BND)=∅

2.while 测试集Te不为空:

Tr=G(Tr);Te=G(Te);

根据Tr训练模型f;

由模型f得到Tr中的每个数据属于正域的概率For eachp∈P,te∈Te:Ifp>α

3.输出:正域POS,负域NEG

2.3 算法时间复杂度分析

本文提出的入侵检测模型主要分为两部分,分别是特征提取模块和三支决策模块。在特征提取模块中,基于CNN-BiLSTM 的特征提取模型属于深度学习模型,由于描述深度学习时间复杂度的变量太多,无法准确描述,通常并不计算深度学习模型的时间复杂度,假设这个模块的时间复杂度为O(M)。在三支决策模块中,假设算法的迭代次数是T,测试集中的数据个数为N,则第一次迭代时,数据集为测试集的全部数据,随着迭代次数增加,测试集中的数据越来越少,当测试集中的数据为空时停止迭代,则此模块的时间复杂度为O(T*N)。因此,可以得到本文入侵检测模型时间复杂度为O(M)+O(T*N)。

3 实验及结果分析

3.1 实验数据集

3.1.1 NSL-KDD 数据集

NSL-KDD 数据集中的每条数据包含41 个特征和1 个类标签。除正常行为外,各种类型的攻击行为可以分为4类:DOS、R2L、U2R、PROBING[16]。NSL-KDD 数据集的行为类型分布如表2所示。

Table 2 NSL-KDD data set distribution表2 NSL-KDD数据集分布

3.1.2 CIC-IDS2017数据集

CIC-IDS2017 数据集包含良性和最新的常见攻击[17],每条数据由79 个特征和1 个类标签组成。其数据采集时间范围为2017 年7 月3 日(星期一)9 时至2017 年7 月7 日(星期五)下午5 时,总共5 天。其中,星期一只采集到正常流量,周二到周五采集到攻击,包括暴力FTP、暴力SSH、DoS、Heartbleed、Web 攻击、渗透、僵尸网络和DDoS。CICIDS2017数据集的行为类型分布如表3所示。

Table 3 CIC-IDS2017 data set distribution表3 CIC-IDS2017数据集分布

3.2 实验数据处理

3.2.1 NSL-KDD 数据处理

(1)符号特征数值化。首先对非数值型的特征进行标签编码,再使用One-hot 编码对标签编码后的数据进行处理。经过处理,可以使得原来拥有41 个特征属性和1 个类标签的数据集扩展成为具有119 个特征属性和1 个类属性的数据集。

(2)数字特征归一化。由于CNN-BiLSTM 模型要求输入的数据在0~1 之间,因而要对特征作归一化处理,按照如下公式进行:

其中,x*是归一化后的特征,x是待归一化特征值,xmin是该特征的最小值,xmax是该特征的最大值。

3.2.2 CIC-IDS2017数据处理

(1)处理重复列。该数据集包含两个重复的特征,即“Fwd Header Length”,删除其中一列。

(2)处理缺失值。该数据集的缺失值均出现在“Flow Bytes/s”和“Flow Packets/s”特征中,由于缺省值的样本非常少,因而直接删除含有缺失值的样本。

(3)处理数据不平衡问题。由于“Web Attack Brute Force”“Web Attack Sql Injection”和“Web Attack XSS”3 种入侵类型样本数量较少,将其合并成一个类型并命名为“Web Attack”,并且将“Thursday-WorkingHours-Morning-WebAttacks.pcap_ISCX.csv”、“Tuesday-WorkingHours.pcap_ISCX.csv”和“Friday-WorkingHours-Morning.pcap_ISCX.csv”这3 个文件合并成一个文件,可在一定程度上解决数据不平衡问题。

(4)数据归一化。处理方法同NSL-KDD 数据集。

3.3 评价指标

本文使用准确率(ACC)、误报率(FPR)、检出率(DR)、精确率(PR)、和F1 得分(F1)作为评估入侵检测模型性能的指标。计算公式如下:

其中,TP表示入侵行为被正确归类到入侵行为,TN表示正常行为被正确归类到正常行为;FP表示正常行为被错误归类到入侵行为,即误报;FN表示攻击行为被错误归类到正常行为,即漏报。

3.4 样本选取和参数设置

3.4.1 NSL-KDD 样本选取

本文选取5 个不同的子样本集进行实验,并且将5 次实验结果的平均值作为最终结果进行性能分析。选取的样本数据子集的类型分布如表4所示。

Table 4 Five data sample subset data distribution表4 5个数据样本子集数据分布

3.4.2 CIC-IDS2017样本选取

由于CIC-IDS2017 数据集较大,本文选取1/3 的数据集作为实验数据,样本类型分布如表5所示。

Table 5 Sample data set distribution表5 样本数据集分布

3.4.3 参数设置

本文选用主成分分析(PCA)、奇异值分解(SVD)、因子分析(FA)和深度神经网络(DNN)作为CNN-BiLSTM 的比较方法。

主成分分析PCA 的超参数设置为:最大数迭代次数1 000,最大允许误差le-4,线性函数logcosh,成分数量为35。奇异值分解SVD 的超参数设置为:随机SVD 求解器的迭代次数5,成分数量为35。因子分析的超参数设置为:最大数迭代次数1 000,最大允许误差le-2,迭代次数3,成分数量为35。DNN 的超参数设置为:最大迭代次数2 000,学习率为le-3。CNN-BiLSTM 的超参数设置为:卷积核个数为2,大小为3,记忆模块数为4,各模块细胞数为2,最大数迭代次数1 000,最大允许误差le-4。

3.5 实验过程及结果分析

3.5.1 实验1

为了比较CNN-BiLSTM 特征提取算法与其它特征提取方法的性能,在同样使用三支决策分类器的条件下,分别使用主成分分析(PCA)、奇异值分解(SVD)因子分析(FA)和深度神经网络(DNN)提取特征并作比较。在NSLKDD 数据集上进行实验,结果如表6 所示,其中CNN-BiLSTM-TWD 简写为CBL-TWD。

Table 6 Experimental results of different feature extraction methods表6 不同特征提取方法的实验结果比较

从实验结果可以看出,CNN-BiLSTM-TWD 在准确率(ACC)、检出率(DR)、精确率(PR)和F1 分数上优于其他几种特征提取方法,整体性能较好。可以说明,本文所提的CNN-BiLSTM 方法具有更优的特征提取能力。

3.5.2 实验2

为了比较三支决策算法和传统二支分类算法检测效果,在同样使用CNN-BiLSTM 进行特征提取下,分别使用支持向量机(SVM)、K 近邻(KNN)、随机森林(RF)和贝叶斯模型(BYS)对网络行为分类。在NSL-KDD 数据集上进行实验,结果如表7所示。

从实验结果可以看出,基于三支决策(TWD)的分类算法在准确率(ACC)、检出率(DR)、精确率(PR)和F1 分数上优于其他几种分类算法。这表明,使用基于三支决策理论的分类器,其入侵检测性能优于传统基于二支决策的分类算法。

Table 7 Comparison of experimental results of different classification models表7 不同分类模型的实验结果比较

3.5.3 实验3

为了将本文算法与其他入侵检测算法进行比较,选取基于LDA 和极限学习机的入侵检测模型(LDA-ELM)[18]、基于半监督学习的入侵检测模型(SSL)[19]、基于层叠非对称深度自编码器的入侵检测方法(SNADE)[20]和基于时空特征的分层入侵检测系统(HAST-IDS)[21]。在NSL-KDD数据集上进行实验,结果如表8所示。

Table 8 Comparison 1 of experimental results of different algorithms表8 不同算法的实验结果比较1

从实验结果可以看出,本文所提的CNN-BiLSTMTWD 入侵检测模型虽然在误报率和精确率上表现稍显不足,但在准确率(ACC)、检出率(DR)和F1 分数上要优于其他检测方法。综上表明,本文提出的基于三支决策的分类算法在综合性能上优于其他对比模型。

3.5.4 实验4

实验4 是在实验3 的基础上,保持其他实验条件不变,将NSL-KDD 数据集替换成CIC-IDS2017 数据集。实验结果如表9所示。

Table 9 Comparison 2 of experimental results of different algorithms表9 不同算法的实验结果比较2

从实验结果可以看出,基于CNN-BiLSTM-TWD 的入侵检测模型在准确率(ACC)、检出率(DR)、F1 分数上优于其他检测方法。综上表明,本文提出的入侵检测模型优于其他对比模型。

实验3 和实验4 表明,本文所提方法在两种数据集中都表现出了优越的入侵检测性能,具有鲁棒性。

4 结语

本文提出一种基于CNN-BiLSTM 和三支决策的入侵检测方法,通过CNN-BiLSTM 模型从样本中提取特征,再利用三支决策理论,根据决策阈值对网络行为进行分类。对于划分到边界域中的数据,利用CNN-BiLSTM 重新提取特征后再进行分类,直到边界域中不再有样本为止。本文算法在特征提取和检测分类上提高了入侵检测性能,但是算法还有待改进。例如,未考虑到边界域中数据的时间成本问题,当边界域中存在的样本数量很少时,仍会耗费大量时间进行决策,下一步将继续深入研究边界域的时间成本问题。

猜你喜欢

特征提取决策样本
为可持续决策提供依据
决策为什么失误了
基于Daubechies(dbN)的飞行器音频特征提取
推动医改的“直销样本”
Bagging RCSP脑电特征提取算法
村企共赢的样本
基于MED和循环域解调的多故障特征提取
Walsh变换在滚动轴承早期故障特征提取中的应用
关于抗美援朝出兵决策的几点认识
湘赣边秋收起义的决策经过