双重路由深层胶囊网络的入侵检测系统

尹晟霖 张兴兰 左利宇

(北京工业大学信息学部 北京 100124)

摘 要 深度学习与入侵检测相结合已成为当今网络空间安全的热点话题,面临不稳定的网络安全局势,如何能够准确检测出异常流量是入侵检测的重要任务.入侵数据中的每一条样本包含着多个特征,但并不是每一个特征都会决定样本的最终性质,并且某些特征反而会影响模型的判断能力.为了解决这个问题,提出了一种基于残差的双重路由深层胶囊网络的入侵检测模型.该模型使用深层胶囊网络,增强对特征的识别提取,可提取出更高维度的数据特征;使用混合注意力机制对原始数据进行处理,使模型着重关注影响因素大的特征;通过双重路由算法多方位捕捉基于向量表示的特征,并将特征进行聚类;采取残差连接和设置噪音胶囊2个策略来稳定动态路由的过程,以减轻噪音特征的干扰.最后在NSL-KDD数据集和CICIDS2017数据集上进行实验,结果表明准确率最高可达90.31%和99.23%.

关键词 入侵检测;混合注意力;动态路由;网络空间安全;胶囊网络

随着信息时代的不断发展,互联网络已经深入到了社会的方方面面,正在改变着人们的生活、学习和工作方式,同时面临的各种安全威胁也在不断增加,提供对数据的保护是安全开发人员面临的重要挑战.入侵检测技术是一个维护网络安全的重要方式,其本质上是一个对网络流量进行分类的任务,即识别网络流量的行为是正常还是异常.传统机器学习技术已被广泛用于入侵检测系统[1]中,虽然机器学习的算法在处理分类任务中有着不错的表现,但是大多数的机器学习算法只是浅层的学习,并不能很好地提取数据流量中的特征,缺乏良好的泛化能力,随着恶意攻击的不断变化,出现了许多挑战.深度学习有着较强的特征提取的能力,它可以将数据映射到更高维度上去提取分析特征,随着深度学习技术不断创新和发展,在语音识别、图像处理等领域获得了令人瞩目的成就,越来越多的人开始将深度学习与入侵检测相结合,以提升入侵检测系统的泛化能力.

近年来,循环神经网络(recurrent neural network, RNN)和卷积神经网络(convolutional neural network, CNN)已被运用到入侵检测当中,但这些方法仍然存在着一些问题.RNN一般被用来处理时间序列数据,下一时刻的信息会依赖于上一时刻的信息,在处理特征过程中,RNN会把每个位置上的特征融合到一起,并且随着序列的增加,会逐渐丢失前一段的信息.长短时记忆网络(long short-term memory, LSTM)解决了信息丢失的问题,但仍会融入每个位置上的信息.对于入侵检测数据,并不是每一个特征都会对分类结果起到有效的作用,融入过多非必要的特征会产生噪音,影响最终的分类结果.CNN被用来提取和处理图片中的特征,在有些工作中可以将入侵检测数据的特征数组重组,转化成图片数据格式,再通过CNN进行处理.但CNN模型在处理数据的过程中,难以表达特征位置关系复杂对象的特征,会降低模型的准确率.

为了解决这个问题,本文提出了基于胶囊网络的入侵检测技术,将胶囊网络运用到入侵检测的任务中,为了能够拟合不同分布的数据,本文使用深层胶囊网络来提取更深层的特征,通过双重路由机制来弥补单路由机制中不能很好拟合复杂分布的缺陷,并使用残差连接和胶囊丢弃机制来稳定动态路由过程,同时增添了一个噪音类来收集对分类结果起到负作用的特征以减少数据中的噪音,从而提高模型的准确率.最后模型在NSL-KDD数据集和CICIDS2017数据集上进行了测试,同时与多个模型进行对比,结果显示,本文的模型在2个数据集上都取得了不错的效果.

1 相关工作

1.1 基于深度学习的入侵检测

随着在机器学习基础上的大量研究,入侵检测技术得到了提升.但传统的机器学习技术在处理大数据流量时稍显吃力,越来越多的人尝试将深度学习技术与入侵检测技术相结合.

文献[2]将遗传算法和模拟退火算法运用到深度神经网络(deep neural network, DNN)中,将传统的机器学习算法与深度学习框架相结合,提出了基于机器学习的入侵检测系统(intrusion detection system based on machine learning, MLIDS).文献[3-5]分别提出了基于RNN、基于门控循环单元(gated recurrent units, GRU)和基于LSTM的入侵检测系统,将数据当作时间序列来处理.在NSL-KDD数据集上进行了实验,文献[6]在训练集上达到了99%的准确率,但因没有在测试集上进行验证,不具有代表性.文献[7]使用了CNN模型,在处理后的数据上进行1维卷积的操作,文献[8]则是将数据数组重组成类似于图片数据的矩阵的形式后进行2维的卷积操作,也是在NSL-KDD数据集上进行实验,都取得了不错的效果,但仍有许多提升的空间.文献[9]使用了孪生神经网络(siamese neural network, SNN)来处理入侵检测数据中类别不平衡的问题.此外,随着深度学习的不断发展,许多基于混合神经网络模型被逐渐运用到入侵检测上来.文献[10]使用了CNN与双向LSTM结合点方式,并使用了交叉验证的方式获得了效果最好的模型,取得了较高的准确率.文献[11]提出了一种基于LightGBM算法的入侵检测系统,极大减小了数据的计算量,并取得了不错的效果.

1.2 胶囊网络

Hinton首次提出了胶囊网络的概念,在文献[12]中运用在了图像分类的任务中,并在文献[13]中得到了改进.文献[14-15]将胶囊网络运用到了文本分类任务中,文献[16]则运用到了目标识别场景下.由此可见,胶囊网络在深度学习中是一个很有前途的概念,但到目前为止,其真正的潜能尚未得到充分的发挥,该模型被认为可能成为下一代重要的神经网络模型.胶囊网络是由胶囊(capsule)组成的,胶囊是一组神经元的集合,与传统的神经网络不同,在胶囊中,神经元的集合是向量或者矩阵.基于矢量的表示能够抓取更多的特征信息并能够在学习过程中对输入特征组之间的潜在相互依存关系进行编码,同时引入动态路由迭代过程,通过聚类的方式对特征进行归类,利用该耦合系数来测量预测上层胶囊和下层胶囊的向量之间的相似度,并将下层胶囊指向特定的上层胶囊.通过这个过程,胶囊学会了代表给定实体的属性,这是一种更加有效的特征编码方式,改善了RNN和CNN的缺陷.

2 基于残差的双重路由胶囊网络

基于残差的双重路由胶囊网络的结构如图1所示,它由3个模块组成:数据处理模块、动态路由模块和分类模块.假设输入的一条样本数据为X=(x1,x2,…,xk),其中Xk×1k为特征的数量,xi表示样本数据中第i个特征.模型的目的是预测样本的性质,即正常(normal)或异常(attack).

Fig. 1 Double routing capsule network with residuals
图1 残差的双重路由胶囊网络

2.1 数据处理模块

数据处理模块将原始数据处理成高纬度的分布式数据,便于模型更好地捕捉数据中的特征.要使一个完整的路由算法更好地让聚类中心保留特征的主要信息以及更好地展现特征之间的重要性,模型使用了注意力机制,通过变化矩阵Bn生成数据U,其中Uk×nU称之为嵌入数据,B是通过注意力机制生成.

利用注意力机制可以更加精确地捕捉更相关的特征,传统的注意力机制过度地关注了Token之间的联系,减少了模型的泛化能力,并增加了运行过程中的参数.为了减少模型参数并提升泛化能力,本文使用的是混合注意力机制,它在文献[17]中被证明是有效的.混合注意力机制是由2种不同的注意力机制叠加形成的,结构如图2所示.

Fig. 2 Mixed attention mechanism
图2 混合注意力机制

第1种形式为Dense形式,通过2个线性函数和1个激活函数生成R1n,公式为

R1=F(XW1+b1)W2+b2,

(1)

其中F为激活函数,Wn为转换矩阵,b为偏置参数.

第2种形式为Random形式,R2n为随机生成的.

为了减少运算过程中的参数量,通过使用低秩分解的方法,将Dense形式产生的R1分解为2个矩阵R11aR12h×b,其中ab=n.分别将R11重复b次,R12重复a次得到ah×b,2个矩阵相乘得到新的矩阵形式的矩阵R2拆分为R21dR22d×n,通过相乘得到新的矩阵

(2)

(3)

最后将得到的2个注意力矩阵混合,即

(4)

其中,Bh,Ri是不同形式的注意力矩阵,是可学习的参数.

2.2 动态路由模块

在动态路由机制模块中,在获得处理后的低级胶囊的输出后,要确定高级胶囊中哪个被激活,低级胶囊如何分配到高级胶囊中.本文使用了2种路由方式来完成特征的聚类过程,分别是K-Means算法的动态路由和EM算法的动态路由.

2.2.1 K-Means算法

K-Means算法是一种无监督的聚类算法,通过初始化聚类中心,经过多次迭代后将样本点进行聚类.在动态路由算法中,将流量数据的特征视为样本点,对特征进行聚类.将低级胶囊中的特征聚类为高级胶囊,K-Means算法是一种行之有效的聚类方法.

它希望将已有的数据特征(u1,u2,…,un)无监督的划分为k个类,使得产生的k个聚类中心(v1,v2,…,vk)之间的间隔最小:

(5)

Ωl层胶囊和Ωl+1层胶囊之间的动态路由看作是一个K-Means聚类的过程,则Ωl+1层胶囊是Ωl层胶囊的聚类中心,式(5)中的d为相似程度的度量.使用数据处理层输出的数据U=(u1,u2,…,un)来初始化vj,迭代公式为

(6)

(7)

(8)

vj是胶囊j的输出,vj经过r+1次迭代的结果,通过动态路由机制,来动态更新M层胶囊iM+1层胶囊j的概率.cij为耦合系数,是低级胶囊到高级胶囊的权重,2层胶囊之间的相关性,值越大表示相关性越强.根据动态路由机制,更新cij.经过多次迭代后,为了通过胶囊长度来表示实体存在的概率,因此引入了激活函数Squash,通过Squash得到最后的输出vj.激活函数Squash在保留向量方向的同时,将向量模的大小压缩到[0,1]之间,向量vj的模长就代表对应类别的概率.本文对文献[9]的激活函数进行了改进,原始函数公式及图像如下:

(9)

(10)

Fig. 3 Vanilla Squash function
图3 原始压缩函数图像

注意到函数S(vj)能够将向量的模长压缩到[0,1]之间,它存在着多种方式.文献[10]中的函数对全局进行了压缩,对于自变量细微的变化不敏感,容易丢失许多信息.本文对函数S(vj)进行了修改,使用了3种不同形式的激活函数,公式为

(11)

(12)

(13)

3种激活函数的图像如图4所示,改进后的激活函数放大了自变量为0附近的值时,函数值对自变量的变化更加敏感,可以使各类之间的间距变大,从而产生更大的类分离.

Fig. 4 Three Squash functions
图4 3种压缩函数图像

本文使用以上3种激活函数进行了实验,实验结果表明,S1(vj)的效果要优于另外2种.

整个迭代过程的路由算法如下:

算法1. K-Means路由算法.

输入:ui;

输出:Squash(vj).

① 初始化:

② for低级胶囊i to高级胶囊j迭代r

⑤ end for

⑥ 返回Squash(vj).

2.2.2 EM算法

在EM(expectation-maximum)算法中,Ωl+1层胶囊被看作高斯混合分布,而Ωl层胶囊的输出从到需要被聚类的数据点.通过在E_StepM_Step之间交替迭代地更新输出胶囊的均值、方差,以及输入胶囊的分配概率R.动态路由机制也可以被看作一个反向的注意力机制过程,通过全局的特征,动态地调整局部特征的贡献程度.经过处理的数据符合混合高斯分布,通过迭代以获得最大的分布函数p(x),低级胶囊中的特征值之间相互独立,因此协方差矩阵是一个对角矩阵.对标准EM迭代算法改动后的分布函数公式为

(14)

(15)

(16)

x为输入的向量,d为向量x的分量个数,Σj为协方差矩阵,μj为期望,πjj类的概率,且

M_Step中,通过得到的分配概率求出迭代改进后的高斯混合模型(Gaussian mixture model, GMM)的参数.该步骤是获得给定迭代的低级胶囊之间的总体表示.E_Step调整每个数据点到高斯分布的分配概率Rij,即低级胶囊到高级胶囊之间的分配概率,该过程基于给定迭代的高级胶囊来调整每个胶囊的贡献.

GMM是基于加权的欧氏距离,其特点是聚类中心向量是类向量的加权平均,因此不能使用向量的模长来表示特征的显著程度.为了解决这个问题,使用一个标量a对最后的结果进行缩放[18],缩放之后便可通过压缩函数来计算向量的模长.

通过EM算法得到的是一个概率分布来描述一个类.这个类的不确定性越大,方差就越大,代表着越接近均匀分布,说明特征不够突出,此时a的值应该越小;若不确定性越小,方差就越小,此时的分布就越集中,a的值则会越大.此过程使用不确定性来描述a.p(xj|j)带入信息熵公式化简可得Sj:

(17)

因为常数,在后期缩放对最后结果不会产生影响,所以式(7)可再次化简为

(18)

其中,r为随机初始化的标量,范围在(0,1]之间.因为显著程度越大,信息熵越小,所以本文用-Sj来衡量特征的显著程度.

同时为了将Sj的大小限制在[0,1],使用Sigmoid函数来对Sj进行变化:

aj=Sigmoid(1-Sj).

(19)

得到缩放尺度后,仍然使用压缩函数将向量压缩到[0,1]之间来表示特征的显著程度,新的压缩函数NSquash

(20)

整个迭代过程的路由算法如下:

算法2. EM路由算法.

输入:ui;

输出:NSquash(aj,μj).

① 初始化参数:aj,Vij,σj;

② for迭代r

③ ∀jΩL+1:M_Step(aj,Rij,Vij,j);

④ ∀iΩL:E_Step(μj,σj,Vij,i);

⑤ end for

⑥ 返回NSquash(aj,μj).

E_Step(μj,σj,aj,Vij,i)

M_Step(ai,Rij,Vij,j)

aj←Sigmoid(1-Sj).

2.2.3 深度胶囊与残差连接

网络层数越深,越能提取到丰富的特征.但简单地通过堆叠胶囊层来构建深层胶囊网络会与传统的MLP模型相似,出现梯度弥散或者梯度爆炸的现象,即便使用正则化来处理,也会在训练集上出现网络退化的现象.此外,胶囊网络的动态路由机制是一个非常昂贵的计算过程,多个胶囊层的叠加会导致训练的时间增加.现有的研究表明,单纯将胶囊层叠加在一起会导致中间层的学习效果有所下降.这是由于当胶囊数量过多时,胶囊之间的耦合系数会过小,从而抑制了胶囊网络的学习,导致学习效果下降.为了解决这一问题,本文改进了原有的动态路由机制.

首先,为了避免在路由过程中胶囊数量过多,本文采用了Dropout层[19]的思想,对胶囊进行失活,丢弃某个胶囊.但在这个过程中不采用随机失活的方式,因为随机失活很有可能会导致含有重要特征的胶囊丢失,影响模型的性能.在失活过程中,会对贡献度低的胶囊进行丢弃,若每个胶囊的贡献度一样,则本迭代不删除任何胶囊.从低层胶囊Ωi到达下一层胶囊Ωi+1之后,在K-Means动态路由中,删除长度较小的胶囊;在EM动态路由中,删除显著程度a较低的胶囊.过程如图5所示,含有阴影的胶囊为丢弃的胶囊:

Fig. 5 Capsule network Dropout mechanism
图5 胶囊网络Dropout机制

其次,在聚类迭代过程中,由于浅层胶囊用来捕获低级特征,深层胶囊用来捕捉高级特征,所以浅层胶囊之间使用较小的迭代次数,设i=1;中间层胶囊设i=2;深层胶囊之间使用正常的迭代次数,设i=3.同时,动态路由的胶囊过程中,随着胶囊层数的增加,会出现模型过拟合以及网络退化的现象.为了使模型能够得到收敛同时有保证不会出现过拟合以及退化的现象,也使用残差连接[20]来解决这个问题.残差连接过程如图6所示.残差公式为

vj+2=vj+2+Wvj

(21)

W是可学习的参数矩阵,vjj层的胶囊的结果,vj+2j+2层胶囊的结果.

Fig. 6 Skip connection
图6 跳跃连接

2.2.4 噪音胶囊

胶囊网络会提取样本中的所有特征,因此本文通过增加一个不属于之前类别的噪音胶囊来收集胶囊网络提取到的噪音特征[12],以提高模型的准确性,最终分类胶囊中含有c+1个胶囊,c为样本数据集中的类别数目.

2.3 训练目标

本文使用的是边缘损失函数和重构损失,训练目标使得2个损失函数之和的值最小.

边缘损失函数是基于分类层输出的向量长度的分类损失,公式为

(22)

m+m-分别取0.9和0.1,Tc表示分类的标签值,λ是选择用于训练的值,初始化为0.005.假设z是类别c(0,1)的分类层的输出向量,如果出现了c类的样本,那么z的大小应该大于或等于0.9,即若不存在,则通过将这些值相加,计算总的损失.

重构损失是计算原始数据与重构数据之间的差距,使用均方误差来计算实现,公式为

Lrec=λMSELoss(Datao,Datar),

(23)

其中,Datao为原始的数据,Datar为重构后的数据,λ为重构损失缩放倍数,缩放倍数越大,越会导致模型的过拟合.

整个模型优化的整体损失为

L=Lc+Lrec.

(24)

3 实验及分析

3.1 数据集与数据处理

本文采用的是NSL-KDD数据集[21]和CICIDS 2017数据集[22].

NSL-KDD是KDD CUP99数据集[23]的改进版,删除了原始KDD数据集中的冗余数据,在测试集中没有重复的记录,并且有着合理的数据量.数据集中含有4种异常类型,被细分为39种攻击类型,其中有17种未知攻击类型出现在测试集中.每一条记录包括41个特征和1个类别标识.其中41个特征中是由TCP连接基本特征(9种)、TCP连接内容特征(13种)、基于时间的网络流量统计特征(9种)和基于主机的网络流量统计特征(10种)组成.

CICIDS2017数据集包含最新的常见攻击,更接近于真实的数据.完整的CICIDS2017数据集包含八个文件,总共含有3 119 345条实例和83个特征,其中包含15个类别标签(1个正常标签,14个攻击标签).此外,数据集中含有288 602个标签缺失的实例和203个特征缺失的实例.删除缺失信息的实例后,总共得到2 830 540个实例.

数据集中标签分布如表1和表2所示:

Table 1 Number of Categories in NSL-KDD Dataset
表1 NSL-KDD数据集中各类别的数量

标签训练集测试集Normal673459711DoS459267458Probe116552421U2R52200R2L9952754

Table 2 Number of Categories in CICIDS2017 Dataset
表2 CICIDS2017数据集中各类别的数量

标签数量BENIGN2359087DoS Hulk231072PortScan158930DDoS41835DoS GoldenEye10293FTP-Patator7938SSH-Patator5897DoS Slowloris5796DoS Slowhttptest5499Bot1966Web Attack-Brute Force1507Web Attack-XSS652Infiltration36Web Attack-SQL Injection21Heartbleed11

数据处理包括字符类型数字化、类别不平衡处理、归一化处理3个步骤.

1) 字符类型数字化

在数据集的特征中,有3个特征和类别标识是字符类型的.在字符类型数字化的过程中,使用了one-hot方式.对于NSL-KDD数据集,协议类型的值有3种,目标主机的网络服务类型有70种,连接正常或者错误的状态有11种.在one-hot方式下,协议类型被处理为[1,0,0],[0,1,0],[0,0,1]的形式,其他特征处理过程类似,最终每条数据的长度为121维.CICIDS2017数据集处理的过程同上.

本文在实验过程中使用了one-hot编码的方式,以NSL-KDD数据集为例,将数据处理成长度为121的向量,为了实现可视化,将特征长度121维的数据转化为11×11的矩阵,图7展示了Normal,DoS,Prob这3种标签的图像,可以看出,每种类别之间,都包含着相似的特征分布.

Fig. 7 Partial sample visualization of the NSL-KDD dataset
图7 NSL-KDD数据集部分样本可视化

2) 类别不平衡处理

在NSL-KDD和CICIDS2017数据集中存在着严重的类别不平衡现象,为了解决这个问题,使用SMOTE(synthetic minority oversampling technique)算法.具体地,对于一个少数类样本xi,使用K近邻法求出离xi距离最近的k个少数类样本,然后从k个近邻点中随机选取一个,使用下列公式生成新样本.其中,为选出的邻近点,δ∈[0,1]是一个随机数:

(25)

但是SMOTE算法的缺点是生成的少数类样本容易与周围的多数类样本产生重叠难以分类,会影响分类器的效率,而数据清洗技术可以处理掉重叠样本,通过使用ENN(edited nearest neighborhood)算法,将与多类样本重叠的数据删除.

对于NSL-KDD数据集,直接使用SMOTE+ENN算法处理数据,生成新的训练集与测试集.对于CICIDS2017数据集,先将同性质的标签进行合并,再均匀地对每个标签下的数据进行筛选,避免处理后造成数据偏大.最后使用SMOTE+ENN算法进行处理.处理后的数据集如表3和表4所示.

3) 归一化处理

为了消除不同量纲带来的数据差异,在对字符变量数字化以后,进行归一化处理.采用最大最小归一化的方法,可以减轻由于量纲不同造成的差异,将数值统一在[0,1]之间,公式为

Table 3 Processed NSL-KDD Dataset
表3 处理后的NSL-KDD数据集

标签训练集测试集Normal666149041DoS672259631Probe672479645U2R672579674R2L672339284

Table 4 Processed CICIDS2017 Dataset
表4 处理后的CICIDS2017数据集

新标签旧标签数量NormalBENIGN26185BotBot26133Brute ForceSSH-PatatorFTP-Patator25914DoS∕DDoSDDoSDoSGoldenEyeDoS HulkDoSSlowhttptest,DoSslowloris,Heartbleed24325PortScanPortScanInfiltration25536Web AttackWeb Attack-Brute ForceWeb Attack-SQL InjectionWeb Attack-XSS25836

(26)

其中,x是原始数据,xmin是同一特征中的最小值,xmax是同一特征中的最大值,xnorm是原始数据归一化后的结果.

数据处理完成后,对于NSL-KDD数据集,使用新生成的训练集和测试集进行模型的训练和测试;对于CICIDS2017数据集,使用全体数据集的70%进行训练,30%用于测试,其中训练集中不包含测试集中的数据.

3.2 实验结果及分析

本文使用准确率AC、精确率P、召回率RF1作为实验结果的评价指标,其中TN(true negative)是负样本且被判为负样本的数量,TP(true positive)是数据为正样本且也被判为正样本的数量,FN(false negative)是数据为正样本但被判为负样本的数量,FP(false positive)是数据为负样本,但被判为正样本的数量.

(27)

(28)

(29)

(30)

1) 在NSL-KDD数据集上实验

在实验过程中,将训练集划分为5等份进行5折交叉验证,使用了机器学习算法随机森林(random forest, RF)、决策树(decision tree, DT)和神经网络算法ResNet-50(residual network)、BiLSTM(bi-directionallong short-term memory)、原胶囊网络(vanilla capsule)作为对照模型,实验结果如表5所示:

Table 5 NSL-KDD Dataset Results
表5 NSL-KDD数据集结果

模型训练集测试集ACPRF1ACPRF1RF0.98690.98730.98730.98730.84240.86110.84320.8521DT0.98010.98070.98080.98070.88310.88720.88360.8854ResNet-500.97820.97910.97920.97910.85110.85160.85240.8549BiLSTM0.97390.97390.97390.97390.81800.82710.82220.8296Vanilla Capsule0.98180.98190.98170.98170.87890.87880.87860.8787本文0.99160.99100.99120.99120.90310.90430.90320.9023

从结果可知,混合路由机制胶囊网络的泛化能力要高于机器学习算法和传统神经网络,本文模型在准确率上比机器学习算法DT高2个百分点,比ResNet50深度网络高5.2个百分点,比原胶囊网络高2.24个百分点.

虽然每个类别有自己独特的特征分布,但是不同种类之间也包含着相似的特征点.传统的神经网络,如CNN擅长对特征的检测与提取,它可以很好地检测出不同类别所含有的特征.但是它在探索特征之间的空间关系方面效果不佳.如图8所示.

Fig. 8 Sample visual comparison
图8 样本可视化对比

两者都包含相似的特征点,对于传统的神经网络,非常容易将异常数据识别为正常数据,或者将正常数据识别为异常数据,导致分类器精度降低.这是因为传统神经网络具有平移不变性,而胶囊网络会捕捉特征之间的空间关系,从而提升分类模型的泛华能力.

NSL-KDD数据集仍存在着一些问题,其测试集中含有训练集从未出现过的种类以及特征分布,训练集和测试集的分布有一定的差异,导致模型准确率有所下降,所以NSL-KDD数据集不太适用于检验模型的性能.

2) 在CICIDS2017数据集上实验

本文使用CICIDS2017数据集对模型进行了进一步探究.实验过程与在NSL-KDD数据集上一致.实验结果如表6所示:

Table 6 CICIDS2017 Dataset Results
表6 CICIDS2017数据集结果

模型训练集测试集ACPRF1ACPRF1RF0.99500.99490.99510.99500.97540.97600.97620.9761DT0.99390.99370.99370.99370.98890.98920.98910.9891ResNet-500.98500.97910.98500.98520.97410.96430.97720.9707BiLSTM0.99400.99470.99190.99320.96930.95860.95700.9577Vanilla Capsule0.98880.98870.98860.98860.97880.97890.97890.9789本文0.99520.99320.99310.99310.99230.99200.99200.9920

由实验结果可知,本文的准确率比RF高了1.69个百分点,比BiLSTM高了2.3个百分点,效果有了明显的提升.

本文对提出的3种不同的激活函数S1(式(11)),S2(式(12)),S3(式(13))与原始激活函数[9]Vanilla进行了对比实验,实验结果以及收敛过程如表7和图9所示.

由实验结果可得,使用S1有着更好的泛化能力以及更快的收敛速度,且趋于稳定.

Table 7 Results of Different Activation Functions
表7 不同激活函数结果

函数ACPRF1S10.99230.99200.99200.9920S20.96670.96400.96450.9642S30.98780.98750.98770.9876Vanilla0.98370.98310.98330.9832

Fig. 9 Relationship between L and training times
图9 L与训练次数关系

为了验证残差连接的有效性,本文将有残差连接模型(本文)与没有残差连接的模型(Capsule A)进行了对比,准确率如表8所示:

Table 8 Comparison Results with the Non-residual Model
表8 与无残差连接模型对比结果

模型训练集测试集ACPRF1ACPRF1Capsule A0.98660.98700.98710.98710.97290.97210.97220.9721本文0.99520.99320.99310.99310.99230.99200.99200.9920

由此可见,经过检验,不含残差连接的模型在训练集上和测试集上,准确率都有所下降,说明网络加深以导致了模型出现了网络退化以及过拟合现象,并且所损耗的时间大大增加.通过残差连接可以很好地解决模型过拟合以及网络退化的问题,并提高运行效率.

3) 模型效率分析

为了研究模型在推断阶段的效率,本文比较了传统机器学习算法与神经网络算法运行一个Batch所需要的时间.其中Capsule B模型只是单纯加深了网络深度,网络层数与本文提出的模型一致,且Capsule B模型在NSL-KDD数据集上的准确率为83.78%.实验结果如表9所示:

Table 9 Results ofthe Models’ runtime
表9 模型运行时间结果 s

模型时间RF0.091±0.01DT0.023±0.01ResNet-500.338±0.02BiLSTM0.096±0.02Capsule B1.13±0.2本文0.59±0.02

由实验结果可知,本文的运行时间要小于单纯的将胶囊层数叠加的模型(Capsule B),且单纯的叠加胶囊层数并没有达到较好的效果.同时,神经网络算法的运行时间普遍大于传统机器学习的算法.在实际应用中,本文算法的时间消耗仍在可接受的范围内,与ResNet网络相当.随着数据的爆发式增长,传统的机器学习算法将不再适用,而神经网络算法随着数据的增加,在一定程度上可以有效地提升模型的准确度,且深度神经网络算法可以很好地在GPU上得到加速,随着设备的发展,时间效率问题可以进一步得到缓解.

4 结束语

本文构建了双重路由机制的胶囊网络模型,通过使用不同的动态路由算法进行相互补充,根据数据集自动分配2种路由机制所占的比重,可以更好地拟合不同种类样本所形成的特征分布.同时,在特征提取过程中使用了混合注意力机制,使得模型更加关注对判别产生影响的特征,减少了噪音的干扰,增强了模型的鲁棒性.但在胶囊网络的动态路由机制过程中损耗时间要大于传统神经网络,今后需要通过进一步优化动态路由机制,提升胶囊网络模型的运行效率.

作者贡献声明:尹晟霖提出了方法、完成实验以及撰写原稿;张兴兰负责整体监督与论文的修改;左利宇负责部分实验的实现以及实验结果的整理.

参考文献

[1]Ahmim A, Derdour M, Ferrag M A. An intrusion detection system based on combining probability predictions of a tree of classifiers[J/OL]. International Journal of Communication Systems, 2018, 31(9): [2020-08-12]. https://doi.org/10.1002/dac.3547

[2]Chiba Z, Abghour N, Moussaid K, et al. Intelligent approach to build a deep neural network based IDS for cloud environment using combination of machine learning algorithms[J]. Computers & Security, 2019, 86(9): 291-317

[3]Wu Peilun, Guo Hui. LuNet: A deep neural network for network intrusion detection[J]. arXiv preprint, arXiv:1909.10031, 2019

[4]Agarap A F M. A neural network architecture combining gated recurrent unit (GRU) and support vector machine (SVM) for intrusion detection in network traffic data[C] //Proc of the 10th Int Conf on Machine Learning and Computing. New York: ACM, 2018: 26-30

[5]Kim J, Thu H L T, Kim H. Long short term memory recurrent neural network classifier for intrusion detection[C/OL] //Proc of Int Conf on Platform Technology and Service (PlatCon). Piscataway, NJ: IEEE, 2016[2020-08-12]. https://ieeexplore.ieee.org/document/7456805

[6]Xu Congyuan, Shen Jizhong, Du Xin, et al. An intrusion detection system using a deep neural network with gated recurrent units[J]. IEEE Access, 2018, 6:48697-48707

[7]Azizjon M, Jumabek A, Kim W. 1D CNN based network intrusion detection with normalization on imbalanced data[J]. arXiv preprint, arXiv: 2003.00476, 2020

[8]Vinayakumar R, Soman K P, Poornachandran P. Applying convolutional neural network for network intrusion detection[C] //Proc of Int Conf on Advances in Computing, Communications and Informatics (ICACCI). Piscataway, NJ: IEEE, 2017: 1222-1228

[9]Bedi P, Gupta N, Jindal V. Siam-IDS: Handling class imbalance problem in intrusion detection systems using siamese neural network[J]. Procedia Computer Science, 2020, 171: 780-789

[10]Shi Leyi, Zhu Hongqiang, Liu Yihao, et al. Intrusion detection of industrial control system based on correlation information entropy and CNN-BiLSTM[J]. Journal of Computer Research and Development, 2019, 56(11): 2330-2338 (in Chinese)(石乐义, 朱红强, 刘祎豪, 等. 基于相关信息熵和CNN-BiLSTM的工业控制系统入侵检测[J]. 计算机研究与发展, 2019, 56(11): 2330-2338)

[11]Mo Kun, Wang Na, Li Hengji, et al. Network instrusion detection system model based on LightGBM[J]. Journal of Information Security Research, 2019, 5(2): 152-156 (in Chinese)(莫坤, 王娜, 李恒吉, 等. 基于LightGBM的网络入侵检测系统[J]. 信息安全研究, 2019, 5(2): 152-156)

[12]Sabour S, Frosst N, Hinton G E. Dynamic routing between capsules[J]. arXiv preprint, arXiv: 1710.09829, 2017

[13]Hinton G, Sabour S, Frosst N. Matrix capsules with EM routing[EB/OL]. [2019-06-13]. https://openreview.net/pdf?id=HJWLfGWRb

[14]Zhao Wei, Ye Jianbo, Yang Min, et al. Investigating capsule networks with dynamic routing for text classification[C] //Proc of the Conf on Empirical Methods in Natural Language Processing. Stroudsburg, PA: ACL, 2018: 3110-3119

[15]Gangwar A K, Ravi V. A novel BGCapsule network for text classification[J]. arXiv preprint, arXiv:2007.04302v1, 2020

[16]Damirchi H, Khorrambakht R, Taghirad H. ARC-Net: Activity recognition through capsules[J]. arXiv preprint, arXiv:2007.03063, 2020

[17]Tay Y, Bahri D, Metzler D, et al. Synthesizer: Rethinking self-attention in transformer models[J]. arXiv preprint, arXiv:2005.00743v1, 2020

[18]Yao Hongge, Dong Zehao, Yu Jun, et al. Fully overlapped handwritten number recognition and separation based on deep EM capsule network[J/OL]. Acta Automatica Sinica, 2021 [2021-02-02]. http://kns.cnki.net/kcms/detail/11.2109.TP.20200608.1049.002.html (in Chinese)(姚红革, 董泽浩, 喻钧, 等. 深度EM胶囊网络全重叠手写数字识别与分离[J/OL].自动化学报 [2020-08-12]. http://kns.cnki.net/kcms/detail/11.2109.TP.20200608.1049.002.html)

[19]Srivastava N, Hinton G, Krizhevsky A, et al. Dropout: A simple way to prevent neural networks from overfitting[J]. Journal of Machine Learning Research, 2014, 15(1): 1929-1958

[20]He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Deep residual learning for image recognition[C] //Proc of IEEE Conf on Computer Vision & Pattern Recognition. Los Alamitos, CA: IEEE Computer Society, 2016: 770-778

[21]University of New Brunswick. NSL-KDD[DB/OL]. [2020-05-25]. https://www.unb.ca/cic/datasets/nsl.html

[22]University of New Brunswick. CICIDS2017 Dataset[DB/OL]. [2020-05-25.]. https://www.unb.ca/cic/datasets/ids-2017.html

[23]Tavallaee M, Bagheri E, Lu Wei, et al. A detailed analysis of the KDD CUP 99 data set[C/OL] //Proc of IEEE Symp on Computational Intelligence for Security and Defense Applications. Piscataway, NJ: IEEE, 2009 [2020-08-12]. https://ieeexplore.ieee.org/document/5356528

Intrusion Detection System for Dual Route Deep Capsule Network

Yin Shenglin, Zhang Xinglan, and Zuo Liyu

(Faculty of Information Technology, Beijing University of Technology, Beijing 100124)

Abstract The combination of deep learning and intrusion detection has become a hot topic in cyberspace security. In unstable network security situation, how to accurately detect abnormal traffic is an important task for intrusion detection. Each sample in the intrusion data contains multiple features, but not every feature can determine the final nature of the sample. Some features will even affect the judgment ability of the model. To solve this problem, an intrusion detection model based on residuals of a double routing deep capsule network is proposed. The model uses a deep capsule network to enhance the identification and extraction of features, which can extract higher dimensional data features. A hybrid attention mechanism is used to process the raw data so that the model focuses on features with high impact factors. The model captures the features based on vector representation and clusters the features in multiple directions by a dual routing algorithm. It adopts two strategies, namely residual connectivity and noise capsules, to stabilize the dynamic routing process to mitigate the interference of noisy features. Finally, experiments are conducted on the NSL-KDD dataset and CICIDS2017 dataset, and the results show that the accuracy is up to 90.31% and 99.23%, respectively.

Key words intrusion detection; mixed attention; dynamic routing; security in cyberspace; capsule network

Zhang Xinglan, born in 1970. PhD, professor. Her main research interests include crypto-graphy, information security. (zhangxinglan@bjut.edu.cn)

Zuo Liyu, born in 1997. Master candidate. Her main research interest is information security. (516517886@qq.com)

(yinsl@emails.bjut.edu.cn)

收稿日期2020-10-13;修回日期:2021-03-18

基金项目国家自然科学基金项目(61801008)

This work was supported by the National Natural Science Foundation of China (61801008).

中图法分类号 TP309

Yin Shenglin, born in 1996. Master candidate. His main research interests include deep learning, information security.

尹晟霖,1996年生.硕士研究生.主要研究方向为深度学习、信息安全.

张兴兰,1970年生.博士,教授.主要研究方为密码学、信息安全.

左利宇,1997年生.硕士研究生.主要研究方向为信息安全.