«上一篇 下一篇»
  计算机工程  2019, Vol. 45 Issue (12): 127-133  DOI: 10.19678/j.issn.1000-3428.0053263
0

引用本文  

刘月峰, 蔡爽, 杨涵晰, 等. 融合CNN与BiLSTM的网络入侵检测方法[J]. 计算机工程, 2019, 45(12), 127-133. DOI: 10.19678/j.issn.1000-3428.0053263.
LIU Yuefeng, CAI Shuang, YANG Hanxi, et al. Network Intrusion Detection Method Integrating CNN and BiLSTM[J]. Computer Engineering, 2019, 45(12), 127-133. DOI: 10.19678/j.issn.1000-3428.0053263.

基金项目

国家自然科学基金(51565046);内蒙古自然科学基金(2018MS06019)

作者简介

刘月峰(1977—), 男, 副教授、博士, 主研方向为网络入侵检测、深度学习;
蔡爽, 硕士研究生;
杨涵晰, 硕士研究生;
张晨荣, 硕士研究生

文章历史

收稿日期:2018-11-27
修回日期:2019-01-13
融合CNN与BiLSTM的网络入侵检测方法
刘月峰 , 蔡爽 , 杨涵晰 , 张晨荣     
内蒙古科技大学 信息工程学院, 内蒙古 包头 014010
摘要:针对网络入侵检测准确率偏低而误报率偏高的问题,提出一种融合卷积神经网络(CNN)与双向长短期记忆(BiLSTM)网络的网络入侵检测方法。对KDDcup99数据集进行预处理,并分别使用CNN模型、BiLSTM模型提取局部特征和长距离依赖特征,通过注意力机制计算特征的重要性,利用softmax分类器获得最终的分类结果。实验结果表明,与基于CNN和基于LSTM的方法相比,该方法的网络入侵检测效果较好,其准确率可提高至95.0%,误检率可降低至5.1%。
关键词深度学习    卷积神经网络    双向长短期记忆    注意力机制    入侵检测    
Network Intrusion Detection Method Integrating CNN and BiLSTM
LIU Yuefeng , CAI Shuang , YANG Hanxi , ZHANG Chenrong     
School of Information Engineering, Inner Mongolia University of Science and Technology, Baotou, Inner Mongolia 014010, China
Abstract: To address the problem of low network intrusion detection accuracy and high false positive rate, a network intrusion detection method integrating Convolutional Neural Network(CNN) and Bidirectional Long Short-Term Memory(BiLSTM) network is proposed. The KDDcup99 data set is preprocessed, and the local features and long-distance dependent features are extracted using the CNN model and the BiLSTM model, respectively. The importance of features is calculated by using the introduced attention mechanism, and the final classification results are obtained by using the softmax classifier. Experimental results show that compared with CNN-based and LSTM-based methods, the proposed method has better network intrusion detection performance, its accuracy can be improved to 95.0%, and the false detection rate can be reduced to 5.1%.
Key words: deep learning    Convolutional Neural Network(CNN)    Bidirectional Long Short-Term Memory(BiLSTM)    attention mechanism    intrusion detection    
0 概述

随着网络技术的快速发展, 互联网已成为人们日常交流的重要工具, 其给人们的生活带来极大帮助的同时, 也可能造成巨大的安全隐患。因此, 网络信息安全检测对于保障人们生活乃至国家安全具有重要意义。入侵检测系统(Intrusion Detection Systems, IDS)[1-2]的改进日益成为网络安全技术的研究热点。

2014年前, 用于网络入侵检测的机器学习算法主要基于决策树[3]、贝叶斯网络模型[4]和支持向量机[5]实现。2015年, 文献[6-7]将机器学习算法运用在网络入侵检测系统中以提高分类性能, 使系统更加智能和高效, 但其误报率偏高, 准确率有待提高。文献[8]将深度神经网络(Deep Neural Network, DNN)运用到网络入侵检测中, 利用DNN进行数据特征提取, 采用无监督方式训练初始化参数, 以提高检测精度, 但其并没有考虑网络对误报率的影响。文献[9]利用深度学习算法解决人工特征提取耗费大量人力物力的问题, 在识别攻击特征方面实现自动化、智能化, 对发现潜在安全隐患提供极大的帮助, 可提高检测效率, 降低误报率。文献[10]利用公认的KDD99数据集进行实验, 在实验过程中, 运用长短期记忆(Long Short-Term Memory, LSTM)网络完成参数的选取, 取得了较理想的实验效果, 但该方法由于训练参数选用不当导致误报率偏高。文献[11]将深度置信网络(Deep Belief Network, DBN)分类模型运用到网络入侵检测中, 并对其有效性进行验证, 结果表明该方法具有可行性。文献[12]以字节为单位, 将数据流量转换成各个像素点, 得到由流量生成的图片, 然后将图片输入到卷积神经网络(Convolutional Neural Network, CNN)中进行卷积、池化等操作, 最后得到分类结果, 该方法在二分类、多分类问题中取得了较高的准确率。

目前, 网络入侵检测常用的深度学习算法有基于DNN的算法[13]、基于BP神经网络的算法[14]、基于CNN的算法、基于循环神经网络(Recurrent Neural Network, RNN)的算法和基于DBN的算法。深度学习方法与传统机器学习方法相比在检测性能上有较大提升, 但其还存在一些不足[15]。在特征提取方面, 虽然CNN能够学习到时间或空间局部特征, 避免人工提取过程, 但是其缺乏学习序列相关性的能力, 因此无法解决较长信息的长期依赖问题。LSTM特征提取的准确率较高, 能够解决长期依赖问题, 但其误报率偏高, 并且由于LSTM只能读取一个方向的序列数据, 不能充分考虑之后的属性信息的影响。在特征学习方面, 深度学习算法未能解释特征和类别标签的相关性。在自适应性方面, 如何在不降低准确率和不提高误报率的情况下让模型具有自适应更新的能力, 还有待进一步研究。此外, 注意力机制[16-17]算法在自然语言处理、文本分类等领域中应用较多, 并且可取得良好的分类效果, 但其很少应用于网络入侵检测。

本文设计一种融合CNN和双向长短期记忆网络的模型CNN-BiLSTM, 并引入注意力机制。通过CNN抽取属性信息的平行局部特征, 利用双向LSTM提取长距离依赖信息的特征, 以充分考虑前后属性信息之间的影响, 最后应用注意力机制计算各属性特征的重要性。

1 相关工作 1.1 基于CNN的网络入侵检测方法

在网络入侵检测领域, CNN是一种分层模型, 在抽取局部特征方面具有良好的性能。典型的CNN模型通常由输入层、卷积层、池化层、全连接层4个部分组成, 其网络架构融合了局部感受野、共享权重以及空间或时间采样3种思想, 这使其在处理具有统计平稳性和局部关联性的数据时, 具有独特的优势。基于CNN的网络入侵检测系统的原理框图如图 1所示。

Download:
图 1 基于CNN的网络入侵检测系统原理框图

基于CNN的网络入侵检测系统的工作流程可分为4个步骤:

步骤1  对入侵检测数据集中的每条记录进行预处理, 使得其数据类型格式能作为CNN模型的输入。

步骤2  将处理好的数据输入到CNN的输入层, 然后卷积层对其进行卷积操作, 以精确提取每条记录的特征信息。

步骤3  池化层将小邻域内的特征点进行整合处理, 从而得到新的特征, 池化操作的目的是加快网络训练速度, 常用的方法有平均池化和最大池化[18]。本文采用最大池化的方法对邻域内的特征点取最大值。

步骤4  通过全连接层将数据输入到softmax分类器中对入侵类型进行分类。

基于CNN的网络入侵检测方法在分类精度方面优于传统方法, 能够准确提取局部特征信息。然而, 该方法在学习序列相关性信息方面依然有所欠缺, 无法解决长期依赖问题, 其精确率有待提升。

1.2 基于LSTM的网络入侵检测方法

RNN擅长处理序列数据, 但其在训练过程中会出现梯度消失、梯度爆炸[19]以及长期依赖的问题, 而LSTM模型中的长短期记忆模块可以解决RNN引发的长期依赖问题[20]。长短期记忆模块是在RNN模型中的隐藏层增加3个门(遗忘门、输入门、输出门)和1个细胞状态更新, 如图 2所示。

Download:
图 2 长短期记忆模块

遗忘门对上一层细胞状态进行筛选, 留下有用信息并遗忘无用信息, 计算公式如下:

$ \boldsymbol{f}_{t}=\sigma\left(\boldsymbol{w}_{f} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]+\boldsymbol{b}_{f}\right) $ (1)

其中, wfbf分别是遗忘门的权重矩阵和偏置项, ht-1为上层LSTM的输出值, σ为sigmoid激活函数, [, ]表示把2个向量连接成一个向量。

输入门对信息进行重要性判断, 将重要信息送入细胞状态更新处, 完成对细胞状态的更新。该过程由2个部分组成, 第1部分利用sigmoid函数确定需加入细胞状态的新信息, 第2部分应用tanh函数生成一个新的候选向量, 计算过程如式(2)所示。

$ \left\{\begin{array}{l}{\boldsymbol{f}_{t}=\sigma\left(\boldsymbol{w}_{i} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]+\boldsymbol{b}_{i}\right)} \\ {\tilde{\boldsymbol{c}}_{t}=\tanh \left(\boldsymbol{w}_{c} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]+\boldsymbol{b}_{c}\right)}\end{array}\right. $ (2)

其中, wibi为输入门的权重和偏置, wcbc是细胞状态的权重和偏置。经过以上处理, 便将原细胞状态ct-1更新为当前细胞状态ct, 公式如式(3)所示。

$ \boldsymbol{c}_{t}=\boldsymbol{f}_{t} * \boldsymbol{c}_{t-1}+\boldsymbol{i}_{t} * \tilde{\boldsymbol{c}}_{t} $ (3)

其中, *表示元素乘运算, ft*ct-1表示删除信息, $ {\mathit{\boldsymbol{i}}_t}*{\mathit{\boldsymbol{\widetilde c}}_t} $表示新添信息。

输出门对该层细胞状态进行输出控制, 决定哪些细胞状态输入到下一层, 计算公式如式(4)所示。

$ \left\{\begin{array}{l}{\boldsymbol{o}_{t}=\sigma\left(\boldsymbol{w}_{o} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{x}_{t}\right]+\boldsymbol{b}_{o}\right)} \\ {\boldsymbol{h}_{t}=\boldsymbol{o}_{t} * \tanh \left(\boldsymbol{c}_{t}\right)}\end{array}\right. $ (4)

基于LSTM的网络入侵检测方法首先将原始的检测数据集进行数值化、标准化和归一化处理, 然后将预处理后的数据集输入到训练好的LSTM模型中, 最后将LSTM模型的结果输入到softmax分类器中得到分类结果。该方法在处理序列数据时, 虽然可以提取更全面的特征并提高网络入侵检测的准确率, 但其误报率较高。

2 CNN-BiLSTM模型结构

为优化网络入侵检测系统, 提高准确率并降低系统误报率, 本文使用one-hot对KDDcup99数据集进行预处理。利用CNN提取局部平行特征, 以获得更全面的局部特征。为解决各属性特征点的前、后特征对该属性特征点的影响, 采用由4个记忆模块构成的BiLSTM模型提取长距离依赖特征, 每个模块由2个细胞的拓扑结构构成。最后, 利用注意力机制对各属性特征的重要性进行计算, 通过softmax分类器获得分类结果, 以提高准确率, 降低误报率。本文算法的原理框图如图 3所示。

Download:
图 3 基于CNN-BiLSTM的网络入侵检测原理框图

引入注意力机制的CNN-BiLSTM模型结构主要由预处理层、记录表示层、卷积层、BiLSTM层、注意力机制层和softmax层组成, 结构如图 4所示。

Download:
图 4 引入注意力机制的CNN-BiLSTM模型结构
2.1 预处理层

预处理层将KDDcup99数据集符号型特征转化为数值型特征, 然后进行标准化、归一化处理, 具体过程分为3步。

1) 用one-hot方法对KDDcup99数据集进行处理, 将符号性特征转化为数值型特征。

2) 对数值型特征进行标准化, 如式(5)~式(7)所示。

$ {r_{ij}^\prime = \frac{{{r_{ij}} - AV{G_j}}}{{STA{D_j}}}} $ (5)
$ {AV{G_j} = \frac{1}{n}\left( {{r_{1j}} + {r_{2j}} + \cdots + {r_{nj}}} \right)} $ (6)
$ {STA{D_j} = \frac{1}{n}\left( {\left| {{r_{1j}} - AV{G_j}} \right| + \left| {{r_{2j}} - AV{G_j}} \right| + \cdots + } \right.}\\{\left. {\left| {{r_{nj}} - AV{G_j}} \right|} \right)} $ (7)

其中, rij为预处理后的数值特征, 标准化后的值为rij, AVGj为平均值, STADj表示平均绝对偏差。若AVGj=0, 则rij=0;若STADj=0, 则rij=0。

3) 归一化处理。将标准化后的数值归一化到[0, 1]区间, rij归一化后的值为r′′ij, 计算公式如式(8)所示。

$ \left\{\begin{array}{l}{r_{i j}^{\prime \prime}=\frac{r_{i j}^{\prime}-r_{\min }}{r_{\max }-r_{\min }}} \\ {r_{\max }=\max \left\{r_{i j}^{\prime}\right\}}\end{array}\right. $ (8)
2.2 记录表示层

预处理后的一个记录序列表示为s=[r1, r2, …, rn], 作为CNN-BiLSTM网络模型的输入, vrnsrn的嵌入表示, 分别对每条记录进行嵌入表示, 得到Vs=vr1, vr2, …, vrn」。

2.3 卷积层

卷积层对Vs进行卷积操作, 根据式(9)得到新的特征hid

$ \boldsymbol{h}_{i}^{d}=f\left(\boldsymbol{w}_{d} \cdot \boldsymbol{V}_{i}+\boldsymbol{b}_{d}\right) $ (9)

其中, f为ReLU函数。对于Vs中记录的具体特征Vi进行卷积操作, 为提取更加全面的局部特征, 设置d个不同大小的卷积核分别对Vi进行特征提取, wd表示卷积核大小为d, bd为偏置。当特定卷积核完成Vs中的所有特征卷积之后, 输出特征Hd, 计算公式如式(10)所示。

$ \boldsymbol{H}_{d}=\left\lfloor\boldsymbol{h}_{1}^{d}, \boldsymbol{h}_{2}^{d}, \cdots, \boldsymbol{h}_{n-d_{r}+1}^{d}\right\rfloor $ (10)

将所有卷积核大小的卷积操作得到的特征Hd进行叠加, 得到特征序列Hs=h1, h2, …, hndr+1」。

2.4 池化层

得到特征序列Hs以后, 对其进行池化操作, 本文采用平均池化的方法, 具体过程如式(11)所示。

$ \boldsymbol{p}^{d M}=\text { chunkAve }\left\{\boldsymbol{H}_{d}\right\}=\left\lfloor\boldsymbol{h}_{m_{1}}^{d}, \boldsymbol{h}_{m_{2}}^{d}, \cdots, \boldsymbol{h}_{M}^{d}\right\rfloor $ (11)

预先给定一个块数M, 将Hd划分成M个小块, 将每个小块中的平均值进行拼接, 由此得到一个特征向量pdM, 其长度为M, 对全部模块的平均值进行拼接得到Ps=pm1, pm2, …, pM」。其中, pmi是第mi个小块平均池化后得到的向量。

2.5 BiLSTM层

为获得长距离依赖特征, 将Ps输入到BiLSTM模型中。该模型由2个方向上的LSTM模块连接而成, 具有多个共享权值。在每个时间步上, BiLSTM模块的输出由遗忘门(ft)、输入门(it)、输出门(ot)和一个细胞状态更新共同控制, 每个门都由前一模块的输出bt-1和当前时刻的输入pt表示, 3个门共同工作来完成对属性信息的选择、遗忘和细胞状态的更新。在时间步t上, 利用BiLSTM模块的正向和反向部分对pt进行特征提取, 具体如式(12)、式(13)所示。

$ \text {正向 LSTM } \Rightarrow\left\{\begin{array}{l}{\boldsymbol{i}_{t}=\sigma\left(\boldsymbol{w}_{i} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{i}\right)} \\ {\boldsymbol{f}_{t}=\sigma\left(\boldsymbol{w}_{f} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{f}\right)} \\ {\boldsymbol{q}_{t}=\tanh \left(\boldsymbol{w}_{q} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{q}\right)} \\ {\boldsymbol{o}_{t}=\sigma\left(\boldsymbol{w}_{o} \cdot\left[\boldsymbol{h}_{t-1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{o}\right)} \\ {\boldsymbol{c}_{t}=\boldsymbol{f}_{t} * \boldsymbol{c}_{t-1}+\boldsymbol{i}_{t} * \boldsymbol{q}_{t}} \\ {\boldsymbol{b}_{t}=\boldsymbol{o}_{t} * \tanh \left(\boldsymbol{c}_{t}\right)}\end{array}\right. $ (12)
$ \text {反向 LSTM } \Rightarrow\left\{\begin{array}{l}{\boldsymbol{i}_{t}=\sigma\left(\boldsymbol{w}_{i} \cdot\left[\boldsymbol{h}_{t+1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{i}\right)} \\ {\boldsymbol{f}_{t}=\sigma\left(\boldsymbol{w}_{f} \cdot\left[\boldsymbol{h}_{t+1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{f}\right)} \\ {\boldsymbol{q}_{t}=\tanh \left(\boldsymbol{w}_{q} \cdot\left[\boldsymbol{h}_{t+1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{q}\right)} \\ {\boldsymbol{o}_{t}=\sigma\left(\boldsymbol{w}_{o} \cdot\left[\boldsymbol{h}_{t+1}, \boldsymbol{p}_{t}\right]+\boldsymbol{b}_{o}\right)} \\ {\boldsymbol{c}_{t}=\boldsymbol{f}_{t} * \boldsymbol{c}_{t+1}+\boldsymbol{i}_{t} * \boldsymbol{q}_{t}} \\ {\boldsymbol{b}_{t}=\boldsymbol{o}_{t} * \tanh \left(\boldsymbol{c}_{t}\right)}\end{array}\right. $ (13)

其中, σ是sigmoid激活函数, tanh为双曲正切函数, *为元素乘运算, it是对输入信息进行选择操作, 控制信息的输入过程, ft是对前一模块需要被遗忘的信息进行遗忘操作, 控制信息遗忘过程, ct用来判断哪些信息应该存储到当前细胞状态, 对信息的存储进行控制, ot则是输出门对输出信息进行选择, 控制输出信息。

在时间步t上, BiLSTM层最终输出的特征向量Pt为:

$ {\mathit{\boldsymbol{P}}_t} = \left[ {{\rm{正向}}\;{\rm{LSTM, 反向}}\;{\rm{LSTM}}} \right] $ (14)
2.6 注意力机制层

为提高分类精度, 将BiLSTM的结果输入到注意力机制层, 处理过程如式(15)~式(17)所示。

$ {\mathit{\boldsymbol{u}}_t} = \tanh \left( {{\mathit{\boldsymbol{W}}_w}{\mathit{\boldsymbol{P}}_t} + {\mathit{\boldsymbol{b}}_w}} \right) $ (15)
$ {\mathit{\boldsymbol{a}}_t} = {\mathop{\rm softmax}\nolimits} \left( {\mathit{\boldsymbol{u}}_t^{\rm{T}}, {\mathit{\boldsymbol{u}}_w}} \right) $ (16)
$ \mathit{\boldsymbol{v}} = \sum {{\mathit{\boldsymbol{a}}_t}} {\mathit{\boldsymbol{P}}_t} $ (17)

其中, utPt的属性表示, Ww为上下文向量, 其在训练过程中随机生成, at为重要性权重, v表示对Pt进行重要性加权求和得到的高级表示。

最后, 将注意力机制层的输出结果v输入到softmax分类器中, 得到分类结果。

CNN-BiLSTM模型具有如下特点:

1) 采用one-hot预处理方法, 将符号特征转化为数值特征, 相比其他预处理方法, 可提高转化效率。

2) 利用CNN模型对于局部平行特征提取的优势, 对属性特征进行提取操作, 解决局部特征丢失的问题。

3) 基于LSTM处理长序列数据的优势, 采用BiLSTM模型对长距离依赖特征进行特征提取, 考虑序列数据中每个属性点的前后属性对特征提取的影响, 从而达到降低网络入侵检测误报率的目的。

4) 引入注意力机制对各属性特征的重要性进行计算, 对重要特征给予更多关注, 从而得到更好的入侵检测效果。

3 实验结果与分析 3.1 实验数据集与环境

在网络入侵检测领域, 可用于训练深度学习算法的数据集较少, 本文选用KDDcup99数据集进行训练。KDDcup99数据集含有5种攻击类型, 分别是DoS、Normal、Probe、R2L和U2R。数据包含41个固定特征属性和1个类别标识, 用类别标识表示记录是否异常。KDDcup99有500万条记录, 用全部数据的10%作为测试和训练子集, 本文实验数据的具体信息如表 1表 2所示, 实验环境配置如表 3所示。

下载CSV 表 1 训练集信息
下载CSV 表 2 测试集信息
下载CSV 表 3 实验环境配置
3.2 实验评价指标与超参数分析

本文采用训练的准确率(AC)及误报率(FA)作为实验效果的评价标准, 具体如下:

$ AC=\frac{正确分类的样本数目}{总样本数}\times 100\% $ (18)
$ FA=\frac{被误报为入侵的正常样本数}{正常样本数}\times 100\% $ (19)

本文从3个方面分析各种因素对检测效果的影响:

1) 输入维度对检测性能的影响

不同的输入维度会对实验性能产生影响, 为了寻找合适的输入维度, 本文设置8组不同的数值来观察其对实验效果的影响。将输入维度设为10~220, 步长为30, 实验结果如图 5所示。

Download:
图 5 输入维度对检测性能的影响

图 5可以看出, 当输入维度为10~130时, 准确率呈上升趋势, 当输入维度为130时, 准确率最高, 与输入维度为100时的准确率相差极小, 当输入维度为130~220时, 准确率呈下降趋势。在误报率方面, 当输入维度为10~100时, 误报率呈下降趋势, 当输入维度为100时, 其误报率最低, 为12.51%, 当输入维度为100~220时, 误报率呈上升趋势。综合考虑实验准确率与误报率, 当维度为100时, 准确率较高, 误报率最低; 当维度为130时, 准确率最高但误报率也高, 因此, 本文数据的输入维度设为100。

2) 卷积核大小对检测性能的影响

卷积核大小会直接影响特征提取的质量, 卷积核大小不合适会导致特征提取不全。为研究卷积核大小对检测性能的影响, 本文设置6个不同大小的卷积核, 分别为1~6, 实验结果如图 6所示。

Download:
图 6 卷积核大小对检测性能的影响

图 6可知, 卷积核大小对准确率的影响较明显, 当卷积核大小为3时, 准确率最高, 卷积核继续增大, 其准确率反而下降, 因此, 卷积核不宜过大。卷积核大小对误报率的影响相对较小, 并且当卷积核大小为3时, 其误报率最低。综上, 当卷积核大小为3时, 取得的实验效果较好。

3) LSTM的记忆模块对检测性能的影响

LSTM的记忆模块是LSTM模型的核心, 在处理长距离依赖信息的过程中起着至关重要的作用, 其可决定记录信息中的特征是否遗忘, 合适的记忆模块会改善误报率偏高的现象。为了找到最适合本文方法的LSTM结构, 设置5种不同的LSTM拓扑结构并进行对比实验, 其具体信息如下:

(1) 1个记忆模块, 每个模块有1个细胞;

(2) 2个记忆模块, 每个模块有2个细胞;

(3) 4个记忆模块, 每个模块有2个细胞;

(4) 4个记忆模块, 每个模块有4个细胞;

(5) 8个记忆模块, 每个模块有4个细胞。

5种LSTM拓扑结构的实验结果如图 7所示。可以看出, 由于LSTM可控制一些特征是否遗忘, 因此其拓扑结构对误报率的影响较大。当记忆模块数为1且各模块细胞数为1时, 准确率最低; 当记忆模块数为2且各模块细胞数为2时, 误报率最高; 当记忆模块数为4且各模块细胞数为2时, 误报率最低, 准确率也较理想。综上, 当记忆模块数为4且各模块细胞数为2时, 取得最佳的实验结果。

Download:
图 7 BiLSTM记忆模块数对检测性能的影响
3.3 与其他检测方法的比较

本文将CNN-BiLSTM方法与单纯基于CNN的方法、基于LSTM的方法进行对比, 3种方法对于5种不同攻击类型的分类准确率的结果对比如图 8所示。

Download:
图 8 3种方法对5种攻击类型的准确率对比

图 8可以看出, 基于LSTM的方法的准确率高于基于CNN的方法, 证明与CNN相比, LSTM方法具有处理长距离依赖信息的优势。本文CNN-BiLSTM方法对于DoS、Normal、Probe、U2R和R2L这5种攻击类型的检测准确率分别为95.0%、94.3%、93.8%、93.1%和91.5%, 均高于其他2种方法, 证明了该方法的有效性。3种方法在误报率方面的实验结果如图 9所示。

Download:
图 9 3种方法对5种攻击类型的误报率对比

图 9可知, 与基于CNN和基于LSTM的方法相比, 本文CNN-BiLSTM方法的误报率较低, 对于DoS、Normal、Probe、U2R和R2L这5种攻击类型的误报率分别为5.1%、6.5%、6.0%、6.9%和7.4%。

4 结束语

本文提出一种融合CNN和BiLSTM的网络入侵检测方法。通过CNN提取局部平行特征, 弥补局部特征提取不全的问题。利用BiLSTM提取长距离依赖特征, 从而更好地考虑序列数据中每个属性点的前后属性的影响, 降低误报率。引入注意力机制, 加大重要特征权重并减小次要特征权重, 以提高检测性能。实验结果表明, 与基于CNN和基于LSTM的方法相比, 该方法的准确率较高、误报率较低。下一步将使用深度学习模型, 如DBN、DNN等, 改善特征学习的性能, 或者从网络的自适应角度入手, 在提高网络入侵检测准确率的同时, 加快训练速度。

参考文献
[1]
LUO Bin, XIA Jingbo. A novel intrusion detection system based on festure generation with visualization strategy[J]. Expert Systems with Applications, 2014, 41(9): 4139-4147. DOI:10.1016/j.eswa.2013.12.048
[2]
SANTORO D, ESCUDERO-ANDREU G, KYRIAKO P G, et al. A hybrid intrusion detection system for virtual jamming attacks on wireless networks[J]. Measurement, 2017, 109: 79-87. DOI:10.1016/j.measurement.2017.05.034
[3]
ABBES T, BOUHOULA A, RUSINOWITCH M. Efficient decision tree for protocol analysis in intrusion detection[J]. International Journal of Security and Networks, 2010, 5(4): 220-235.
[4]
ZHAO Huiqun, LIU Jinluan. Research on complex event big data processing system test data generation method based on Bayesian network[J]. Application Research of Computers, 2018, 35(8): 155-158, 162. (in Chinese)
赵会群, 刘金銮. 基于贝叶斯网络的复杂事件大数据处理系统测试数据生成方法研究[J]. 计算机应用研究, 2018, 35(8): 155-158, 162.
[5]
LI Shuohao, ZHANG Jun. Review of Bayesian networks structure learning[J]. Application Research of Computers, 2015, 32(3): 641-646. (in Chinese)
李硕豪, 张军. 贝叶斯网络结构学习综述[J]. 计算机应用研究, 2015, 32(3): 641-646. DOI:10.3969/j.issn.1001-3695.2015.03.001
[6]
WANG Haiyan, LI Jianhui, YANG Fenglei. Overview of support vector machine analysis and algorithm[J]. Application Research of Computers, 2014, 31(5): 1281-1286. (in Chinese)
汪海燕, 黎建辉, 杨风雷. 支持向量机理论及算法研究综述[J]. 计算机应用研究, 2014, 31(5): 1281-1286. DOI:10.3969/j.issn.1001-3695.2014.05.001
[7]
SINGH R, KUMAR H, SINGLA R K. An instrsion detection system using network traffic profiling and online sequential extreme learning machine[J]. Expert Systems with Applications, 2015, 42(22): 8609-8624. DOI:10.1016/j.eswa.2015.07.015
[8]
GU G X, CHEN C, BUEHLER M J. De novo composite design based on machine learning algorithm[J]. Extreme Mechanics Letters, 2018(18): 19-28.
[9]
WANG Wei, ZHU Ming, ZENG Xuewen, et al. Malware traffic classification using convolutional neural network for representation learning[C]//Proceedings of 2017 International Conference on Information Networking. Washington D. C., USA: IEEE Press, 2017: 712-717.
[10]
JAVAID A, NIYAZ Q, SUN Wenqing, et al. A deep learning approach for network intrusion detection system[C]//Proceedings of the 9th EAI International Conference on Bio-inspired Information and Communications Technologies. New York, USA: ACM Press, 2016: 21-26.
[11]
QU Feng, ZHANG Jitao, SHAO Zetian, et al. An intrusion detection model based on deep belief networks[C]//Proceedings of 2014 International Conference on Network, Communication and Computing. New York, USA: ACM Press, 2014: 97-101.
[12]
ZHANG Yuqing, DONG Ying, LIU Caiyun, et al. Situation, trends and prospects of deep learning applied to cyberspace security[J]. Journal of Computer Research and Development, 2018, 55(6): 1117-1142. (in Chinese)
张玉清, 董颖, 柳彩云, 等. 深度学习应用于网络空间安全的现状、趋势与展望[J]. 计算机研究与发展, 2018, 55(6): 1117-1142.
[13]
KIM J, KIM J, THU H L T, et al. Long short term memory recurrent neural network classifier for intrusion detection[C]//Proceedings of 2016 International Conference on Platform Technology and Service. Washington D. C., USA: IEEE Press, 2016: 1-5.
[14]
SHEN Xiajiong, WANG Long, HAN Daojun. Application of BP neural network optimized by artificial bee colony in intrusion detection[J]. Computer Engineering, 2016, 42(2): 190-194. (in Chinese)
沈夏炯, 王龙, 韩道军. 人工蜂群优化的BP神经网络在入侵检测中的应用[J]. 计算机工程, 2016, 42(2): 190-194. DOI:10.3969/j.issn.1000-3428.2016.02.034
[15]
ZHU Huming, LI Pei, JIAO Licheng, et al. Review of parallel deep neural network[J]. Chinese Journal of Computers, 2018, 41(8): 1861-1881. (in Chinese)
朱虎明, 李佩, 焦李成, 等. 深度神经网络并行化研究综述[J]. 计算机学报, 2018, 41(8): 1861-1881.
[16]
JIA Fan, KONG Lingzhi. Intrusion detection algorithm based on convolutional neural network[J]. Transactions of Beijing Institute of Technology, 2017, 37(12): 1271-1275. (in Chinese)
贾凡, 孔令智. 基于卷积神经网络的网络入侵检测算法[J]. 北京理工大学学报, 2017, 37(12): 1271-1275.
[17]
HASSAN A, MAHMOOD A. Efficient deep learning model for text classification based on recurrent and convolutional layers[C]//Proceedings of IEEE International Conference on Machine Learning and Applications. Washington D. C., USA: IEEE Press, 2018: 1108-1113.
[18]
YIN Rui, SU Songzhi, LI Shaozi. Convolutional neural network's image moment regularizing strategy[J]. CAAI Transactions on Intelligent Systems, 2016, 11(1): 43-48. (in Chinese)
殷瑞, 苏松志, 李绍滋. 一种卷积神经网络的图像矩正则化策略[J]. 智能系统学报, 2016, 11(1): 43-48.
[19]
MEDHAT W, HASSAN A, KORASHY H. Sentiment analysis algorithms and applications:a survey[J]. Ain Shams Engineering Journal, 2014, 5(4): 1093-1113. DOI:10.1016/j.asej.2014.04.011
[20]
STAUDEMEYER R C. Applying long short-term memory recurrent neural networks to intrusion detection[J]. South African Computer Journal, 2015, 56(1): 136-145.