网络入侵是指计算机网络上的任何未经授权的活动,例如,后面会讲到的KDDCup 1999数据集包含四类网络入侵行为:拒绝服务攻击(DoS)、用户到根用户攻击(U2R)、远程到本地攻击(R2L)和探测(Probing)。
网络入侵检测采用的技术可分为特征检测与异常检测两种。
特征检测方法基于对已有入侵方法的了解,用一系列特征或模式来表示入侵者活动,并通过检测主体活动是否满足这些特征来判断其是否在实施网络入侵行为。这种检测方法只能检测已知的攻击,而不能检测新型攻击,比如0-day攻击,但是这种方法在商用入侵检测系统中应用比较广泛。
异常检测方法将未知活动与正常活动进行对比,如果其超出正常活动的范围,即当其违反网络管理者设定的统计规律时,将其归类于网络入侵行为。
机器学习在面部识别、语音识别等计算机科学领域有较为成功的应用,但是在入侵检测方面表现效果欠佳。深度学习的出现改变了这一局面,深度学习可以自动提取数据的高维特征并且发现数据间的关联。目前已经有了部分深度学习在入侵检测方面的成功应用。
受限玻尔兹曼机(restricted Boltzmann machine, RBM)是一种可通过输入数据集学习概率分布的随机生成神经网络。RBM主要用来对BP神经网络进行预训练或对数据进行编码(重构,reconstruction)。受限玻尔兹曼机是玻尔兹曼机(Boltzman machine,BM)的一种特殊拓扑结构。玻尔兹曼机中可见单元和隐藏单元之间是连接的,因此学习速度缓慢,受限玻尔兹曼机中,只有可见单元和隐藏单元之间存在连接。权重矩阵 中的每个元素指定了隐层单元 和可见层单元 之间边的权重。此外对于每个可见层单元 有偏置 ,对每个隐层单元 有偏置 。可见单元和隐藏单元之间的能量公式定义为(其中 和 表示可见单元和隐藏单元的二元状态, 和 表示可见单元和隐藏单元的个数):
可见层和隐藏层的联合分布为:
其中Z为:
条件概率的计算公式(其中 是sigmoid函数):
调整RBM参数的目标是最大化观测数据的似然函数 :
DBN是RBM堆叠的深度神经网络。 DBN 在训练模型的过程分为两步,先分别单独无监督地训练每一层 RBM,然后BP 网络接收 RBM 的输出特征向量作为它的输入特征向量,有监督地训练BP网络,最后BP网络还将错误信息传播至每一层 RBM,微调整个 DBN 网络。
DNN基于MLP(深层感知机),DNN的权重是全连接的,并且通过无监督学习或预训练提前训练网络参数。DNN最大的缺点是其计算复杂度很高。
自编码器是神经网络的一种,包含编码器、隐藏层和解码器,用来将输入数据编码成一种新的形式再将其解码。自编码器是一种无监督学习,使用反向传播算法来训练网络使得输出等于输入。自编码器传统上通常被用来进行数据降维和特征学习。
这种网络的本质特征是在处理单元之间既有前馈连接又有后馈连接,可以用来处理序列数据,比如时间序列数据、空间序列数据、文字序列数据等,这些序列数据是传统的前馈神经网络(DNN、CNN等)所难以处理的。
在网络入侵检测等网络流量分析工作中,用的最多的数据集是KDDCup 1999和NSL-KDD,NSL-KDD是KDDCup 1999的改进版,解决了其大量数据冗余等问题。KDD数据集存在一定的问题,例如攻击类型的分布存在可疑性,是在基于Solaris的操作系统收集数据的。但是这两个数据集在研究中还是被广泛使用,因为已经有许多前人的工作都是基于这两个数据集,使用这两个数据集可以方便的与他人的工作进行对比。除了这两个数据集外,还有PREDICT(未标注)、CAIDA(未标注)、DEFCON(大部分是入侵流)等数据集。下面是NSL-KDD数据集包含的文件:
ALRAWASHDEH等[1]使用单隐藏层RBM来进行无监督的特征减少, RBM权重被传递给另一个RBM,产生深度信念网络。预训练的权重被传递到一个多类soft-max的Logistic回归(LR)分类器。作者称其检测率为97.90%,假阴性率为2.47%。
SALAMA等[2]介绍了一种结合了深度信念网络和支持向量机的优点的混合方案,该方案首先用DBN对数据特征进行降维,再使用SVM对数据进行分类。KANG和KANG[3]利用DBN与训练和DNN模型实现了车载网络的入侵检测系统,其数据集是自行模拟生成的,作者称平均检测率达到98%。
TANG等[4]利用DNN进行基于流的异常检测,使用的是NSL-KDD六个最基本的在SDN网络中最容易获取的特征,因此其检测准确度较低,但实验结果表明它比传统的朴素贝叶斯、支持向量机、决策树方法的准确度更高。KIM等[5]使用10%的KDDCup 99数据集进行预处理并创建DNN模型。然后使用整个KDD数据集来验证该DNN模型,作者称平均准确率达到了99%,并指出更好地应对DDoS攻击需要使用RNN和LSTM模型。
JAVAID 等[6]提出了一种基于稀疏自编码器和soft-max回归模型的自学习NIDS,使用的是NSL-KDD数据集。其被证明在整体检测效果上比SML(soft-max regression)好。NIYAZ等[7]使用堆叠的自编码器(SAE)实现了一个面向SDN网络的DDoS检测系统,其二分类准确率为99.82%,检测具体攻击类型时8分类准确度为95.65%。作者提出在未来将使用数据包头的原始字节来提取特征。SHONE 等[8]提出了非对称深度自动编码器(NDAE),用于无监督特征学习。作者使用堆叠的NDAE和随机森林算法,称所提出的模型可将精度提高5%,训练时间缩短98.81%。
TANG等[9]提出了一种用于SDN的门控循环单元递归神经网络(GRU-RNN)入侵检测系统,使用六个基本的特征实现了89%的准确度,被证明由于DNN 和VanilaRNN。KIM等[10]将长短期记忆(LSTM)架构应用于递归神经网络(RNN),并从KDD Cup 99数据集提取生成训练集训练IDS模型,准确度为96.93%,误报率为10.04%。KHAN 等[11]介绍了一种基于Spark ML和Conv-LSTM网络的IDS,使用的是ISCX-UNB数据集,预测准确度为97.29%,误报率为0.71。
[1]ALRAWASHDEH K, PURDY C. Toward an Online Anomaly Intrusion Detection System Based on Deep Learning[C]//2016 15th IEEE International Conference on Machine Learning and Applications (ICMLA). Anaheim, CA, USA: IEEE, 2016: 195–200.
[2]SALAMA M A, EID H F, RAMADAN R A, 等. Hybrid Intelligent Intrusion Detection Scheme[G]//GASPAR-CUNHA A, TAKAHASHI R, SCHAEFER G, 等. Soft Computing in Industrial Applications. Berlin, Heidelberg: Springer Berlin Heidelberg, 2011, 96: 293–303.
[3]KANG M-J, KANG J-W. Intrusion Detection System Using Deep Neural Network for In-Vehicle Network Security[J]. TANG T. PLOS ONE, 2016, 11(6): e0155781.
[4]TANG T A, MHAMDI L, MCLERNON D, 等. Deep learning approach for Network Intrusion Detection in Software Defined Networking[C]//2016 International Conference on Wireless Networks and Mobile Communications (WINCOM). 2016: 258–263.
[5] JIN KIM, NARA SHIN, JO S Y, 等. Method of intrusion detection using deep neural network[C]//2017 IEEE International Conference on Big Data and Smart Computing (BigComp). 2017: 313–316.
[6] JAVAID A, NIYAZ Q, SUN W, 等. A Deep Learning Approach for Network Intrusion Detection System[C]//Proceedings of the 9th EAI International Conference on Bio-inspired Information and Communications Technologies (formerly BIONETICS). New York City, United States: ACM, 2016.
[7]NIYAZ Q, SUN W, JAVAID A Y. A Deep Learning Based DDoS Detection System in Software-Defined Networking (SDN)[J]. ICST Transactions on Security and Safety, 2017, 4(12): 153515.
[8]SHONE N, NGOC T N, PHAI V D, 等. A Deep Learning Approach to Network Intrusion Detection[J]. IEEE Transactions on Emerging Topics in Computational Intelligence, 2018, 2(1): 41–50.
[9]TANG T A, MHAMDI L, MCLERNON D, 等. Deep Recurrent Neural Network for Intrusion Detection in SDN-based Networks[C]//2018 4th IEEE Conference on Network Softwarization and Workshops (NetSoft). Montreal, QC: IEEE, 2018: 202–206.
[10]KIM J, KIM J, THU H L T, 等. Long Short Term Memory Recurrent Neural Network Classifier for Intrusion Detection[C]//2016 International Conference on Platform Technology and Service (PlatCon). 2016: 1–5.
[11]KHAN M A, KARIM Md R, KIM Y. A Scalable and Hybrid Intrusion Detection System Based on the Convolutional-LSTM Network[J]. Symmetry, 2019, 11(4): 583.