Contents

A Deep Learning Approach to Network Intrusion Detection

Shone N , Ngoc T N , Phai V D , et al. A Deep Learning Approach to Network Intrusion Detection[J]. IEEE Transactions on Emerging Topics in Computational Intelligence, 2018, 2(1):41-50.

本文提出用stacked Non-Symmetric deep Auto-encoders 方法进行特征抽取,并将提取的特征传给随机森林进行分类的一种入侵检测方法。

基本知识介绍

当前网络安全的主要挑战

  • 网络流量的激增
  • 更深入和更细粒度监控的需求
  • 协议的多种多样和数据的多元化

本文提出一种深度和浅度学习结合的方法:NDAE+RF,使用的测试数据集为KDD Cup'99和NSL-KDD。

Auto-Encoder算法

原算法

https://s2.ax1x.com/2019/03/14/AANxQf.png

该算法有两个过程:Encoder和Decoder,Encoder过程为了让高维数据在低维中表示出来,Decoder过程将低维数据重新在高维中表示出来。 即它尝试去学习: $$h_{W,b} \approx x \tag{1}$$ h是非线性假设,W和b是权重和偏置。它的学习过程就是最小化损失函数: $$L(x,d(f(x))) \tag{2}$$ 其中,L是损失函数,d是解码函数,f是编码函数

本文的Non-Symmetric Deep Auto-Envoder

多个隐藏层,且只有编码,没有解码

https://s2.ax1x.com/2019/03/14/AAdCPs.png

假设输入向量$x\in R^d$,它将一步一步匹配隐藏层$h_i \in R^{d_i}$,使用确定性函数表示如下: $$h_i=\sigma(W_ih_{i-1}+b_i);i=1,\dots,n \tag{3}$$ 这里$h_0=x,\sigma$是挤压函数,n是隐藏层数目。 NDAE没有decoder,它的输出向量类似于如下函数, $$y=\sigma(W_{n+1}h_n+b_n+1) \tag{4}$$ 模型可通过最小重构误差获得: $$E(\theta)=\sum_{i=1}^{m}(x^{(i)}-y^{(i)})^2 \tag{5}$$

这里有个东西它没讲请楚隐藏层的结点数与输入层不一样就没法算误差,如果一样就失去降维意义了

本文件所使用的stack-NDAE,结构如下,它是将两个NDAE接起来,并将结果传给RF进行分类。

https://s2.ax1x.com/2019/03/14/AA0IVU.md.png

评估和结果

  • 实现:GPU Tensorflow,64-bit Ubuntu 16.04,Intel Xeon 3.60GH,16GB RAM,NVIDIA GTX 750 GPU ##数据集 KDD Cup'99和NSL-KDD,数据集组成情况如下表

https://s2.ax1x.com/2019/03/14/AADT39.png

高亮表示训练样例小于20个,在实验中被省略。

KDD CUP'99测试

评估5类分类性能,结果在表2中展示,可见我们的算法比DBN要好的多。

https://s2.ax1x.com/2019/03/14/AAHRDf.png

在我们的方法中,整体准确率为85.42%,优于DBN。对于R2L和U2R,由于测试集太少,因此准确率低。 性能比较在表3中:

https://s2.ax1x.com/2019/03/14/AAHT8s.md.png

我们的方法比DBN节省了78.19%的时间。

NSL-KDD测试

  • 5类分类,结果比较在表4中,ROC曲线比较在图5中

https://s2.ax1x.com/2019/03/14/AAbNGj.png

https://s2.ax1x.com/2019/03/14/AAbazn.png

  • 13类分类结果比较见表5,训练时间比较见表6

https://s2.ax1x.com/2019/03/14/AAqQfJ.png

https://s2.ax1x.com/2019/03/14/AAq861.png

未来工作:处理zero-day attack