«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (5): 43-52  DOI: 10.19678/j.issn.1000-3428.0062305
0

引用本文  

李晋国, 焦旭斌. 雾计算环境下入侵检测模型研究[J]. 计算机工程, 2022, 48(5), 43-52. DOI: 10.19678/j.issn.1000-3428.0062305.
LI Jinguo, JIAO Xubin. Research on Intrusion Detection Model in Fog Computing Environment[J]. Computer Engineering, 2022, 48(5), 43-52. DOI: 10.19678/j.issn.1000-3428.0062305.

基金项目

国家自然科学基金(61702321,U1936213)

作者简介

李晋国(1985—),男,副教授、博士,主研方向为信息安全、隐私保护;
焦旭斌,硕士研究生

文章历史

收稿日期:2021-08-09
修回日期:2021-10-05
雾计算环境下入侵检测模型研究
李晋国 , 焦旭斌     
上海电力大学 计算机科学与技术学院,上海 200000
摘要:当网络在云数据中心发送和处理数据的延迟较大时,大多实时智能应用程序都难以达到预期效果。雾计算允许这些对延迟敏感的应用程序在边缘设备上运行,这些设备被称为雾节点,其在地理位置上更接近应用程序。然而,雾计算中的雾节点通常计算资源有限,容易受到海量高维异常流量攻击,为此,提出一种特征降维的改进准递归神经网络,并基于该网络构建轻量级入侵检测模型FR-IQRNN。将雾节点采集到的高维攻击样本编码为低维向量以减少冗余特征,利用FR-IQRNN的循环连接捕获低维向量的时间依赖关系,同时在时间步长和小批量维度中实现并行计算,在此基础上,引入注意力机制强化模型对关键特征的提取能力,从而实现雾节点的入侵检测。在公开数据集UNSW_NB15上,FR-IQRNN模型能取得99.51%的准确率、99.23%的精确率以及99.79%的召回率,优于RNN-IDS、AESVM等模型,并且仅需127.94 s便达到95%以上的训练精度。在NSL-KDD数据集上,FR-IQRNN模型获得99.39%的准确率和99.27%的召回率,且在鲁棒性方面表现突出。
关键词雾计算    入侵检测    降维    准递归神经网络    并行运算    注意力机制    
Research on Intrusion Detection Model in Fog Computing Environment
LI Jinguo , JIAO Xubin     
College of Computer Science and Technology, Shanghai University of Electric Power, Shanghai 200000, China
Abstract: When the delay of sending and processing data in a cloud data center is large, most real-time intelligent applications struggle to realize their tasks.Fog computing allows these delay-sensitive applications to run on edge devices called fog nodes, which are geographically closer to the application.Fog nodes in fog computing typically have limited computing resources and are vulnerable to massive high-dimensional abnormal traffic attacks.Therefore, an improved quasi-recurrent neural network with feature dimensionality reduction is proposed, and a lightweight intrusion detection model, FR-IQRNN, is constructed based on this network.The high-dimensional attack samples collected by fog nodes are encoded into low-dimensional vectors to reduce redundant features.The circular connection of FR-IQRNN captures the time dependence of low-dimensional vectors.Simultaneously, parallel computing is realized in a time step and small batch dimension.On this basis, an attention mechanism is introduced to strengthen the extraction ability of key model features to realize the intrusion detection of fog nodes.On the public UNSW_NB15 dataset, the FR-IQRNN model achieved 99.51% in accuracy, 99.23% in precision, and 99.79% in recall, which outperforms RNN-IDS, AESVM, and other models and achieved above 95% in training accuracy in only 127.94 s.On the NSL-KDD dataset, the FR-IQRNN model achieved 99.39% in precision and 99.27% in recall, indicating that the model has outstanding robustness.
Key words: fog computing    intrusion detection    dimensionality reduction    quasi-recurrent neural network    parallel computing    attention mechanism    

开放科学(资源服务)标志码(OSID):

0 概述

智能设备的快速发展使得人们迎来物联网时代。物联网应用需要满足移动性支持、地理分布、位置感知和低延迟的需求,云计算很难满足这些需求,因此,雾计算应运而生[1]。雾计算中的雾节点可以执行计算任务,提供低延迟服务。然而,在雾节点中,大多数终端设备都是资源受限的,连接到雾节点的终端可以是智能家电、智能手机、VR等设备[2]。对于具有此类特征的网络,会遭受拒绝服务(DoS)、中间人(MIM)、恶意网关、隐私泄露、服务操纵等威胁[3]。为了有效地应对雾计算基础设施中的安全威胁,并将相关的损害降到最低,需要加强安全防范,其中,最有效的方法是部署入侵检测系统(IDS)。

目前,雾计算入侵检测系统的实现方法多数基于机器学习[4]和深度学习[5]。文献[6]提出一种基于多层感知机模型且由向量空间表示的轻量级入侵检测系统,其通过使用一个隐藏层和少量的节点,能够在ADFA-LD中实现94%的准确率、95%的召回率和92%的F1度量,但是,在ADFA-WD中上述3个指标的检测结果均仅为74%。文献[7]提出一种基于Apriori算法的超图聚类模型,该模型能够有效描述遭受DDoS威胁的雾节点之间的关联,证明通过DDoS关联分析可以有效提高系统的资源利用率。但是,该模型仅针对DDoS这一种攻击方式,不具有泛化能力。文献[8]提出一种基于决策树的入侵检测系统,其分别测试10%数据集和完整数据集,结果表明,该系统不仅能完全检测出4种大类攻击,而且能检测出22种小类攻击,但是,该系统只是在NSL-KDD数据集上进行了实验,鲁棒性较差。

相较机器学习,深度学习算法实现了更高水平的检测性能。文献[9]采用类似于客户机-服务器模式的方法来构建模型,在分布式雾节点进行模型训练,该方法的主要缺点是使用基于反向传播随机梯度的技术来更新权重,这需要较长的时间来训练和更新,不适合高度动态的雾计算环境。文献[10]提出一种基于自编码器和孤立森林的深度学习入侵检测方法,在NSL-KDD基准数据集上进行实验,结果表明,该方法能够达到95.4%的高准确率。虽然该方法利用自编码器完成高维数据的降维,但是训练的自编码器只学习正常流量样本,当遇到攻击样本时,无法对其进行编码,从而造成更高的重构损失,导致模型收敛性变差,无法满足雾计算低时延的要求。

雾计算具有资源受限的特点,这使得在雾节点中无法部署大型的入侵检测模型,而大数据时代的网络攻击大多是高数据量、高维度的,如何在雾节点上有效、准确地检测与发现入侵,是雾计算入侵防御中的首要问题。其次,雾计算具有低时延的特点,这就要求入侵检测模型要具有时效性。最后,雾计算具有高移动性的特点,这就要求部署在雾节点上的入侵检测模型能够适应异构网络环境,具有鲁棒性。本文提出一种基于改进准递归神经网络的入侵检测模型FR-IQRNN,以在分布式雾节点上实现一种新的入侵检测系统,快速准确地检测雾计算环境中的攻击。具体地,将数据预处理后输入稀疏自编码器中进行预训练操作,为了保证降维后的编码向量具有表现力,堆叠多个稀疏自编码器微调模型参数,同时对隐藏层进行批处理化,加快模型的收敛速度。融合QRNN模型的前向特征和后向特征,引入注意力机制对数据向量组成的序列进行关键特征增强,利用Sigmoid函数对入侵样本分类。通过上述过程,实现海量高维数据到低维鲁棒性数据的特征重构,降低深度学习网络的时间开销,提高雾节点中入侵检测模型的检测性能。

1 FR-IQRNN网络异常检测方案

本文提出的FR-IQRNN入侵检测算法整体架构如图 1所示。训练过程分为4个阶段:

Download:
图 1 本文算法总体架构 Fig. 1 The overall architecture of this algorithm

1)对原始数据集进行预处理,得到一个规范化后的训练集和测试集。

2)将得到的数据集输入到单个稀疏自编码器中进行预训练,然后微调每个稀疏自编码器的参数,最终获取降维后的编码向量。

3)使用改进的IQRNN模型对降维后的数据进行分类处理,将检测到的攻击行为和原数据作对比,反向更新网络权重,优化网络参数,选取最优效果的模型参数,应用测试数据集进行测试。

4)采用该领域公认的评估指标[11]对本文算法的性能进行评估。

1.1 非线性数据降维

预处理后的数据维数高达196维,其中多包含一些冗余特征,无论是在计算开销、内存空间还是分类算法的可用性上,都影响着入侵检测效果。传统的自编码器以最小化代价函数为目标,基于反向传播算法迭代优化模型参数,每次训练完成都将隐藏层的输出作为下一层自编码器的输入,直至最后一个隐藏层的输出作为最终的降维特征[12]。由于隐藏层中神经单元的数量小于输入层,因此对高维复杂的网络流量数据起到了降维的作用。

1.1.1 稀疏正则化

为了减少模型参数以降低模型训练难度,同时防止模型过拟合,本文引入稀疏正则化项$ {J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{s}\mathrm{e}} $来选择性地激活神经元,这样激活的神经元依赖于数据,有助于使编码数据具有良好的特征从而更易区分。具体地,用常数$ \rho $表示已经激活神经元的比例,平均激活比例为$ {\widehat{\rho }}_{j}=\frac{1}{N}\sum\limits_{i=1}^{N}{n}_{j}\left({x}_{i}\right) $,其中,N为隐藏神经元的数量。KL(Kullback Leibler)散度可以保证$ {\widehat{\rho }}_{j} $接近常数$ \rho $,KL散度公式如下:

$ \mathrm{K}\mathrm{L}\left(\rho \left\|{\widehat{\rho }}_{j} \right. \right)=\rho \; \mathrm{l}\mathrm{o}{\mathrm{g}}_{\mathrm{a}}\left(\frac{\rho }{{\widehat{\rho }}_{j}}\right)+(1-\rho )\mathrm{l}\mathrm{o}{\mathrm{g}}_{\mathrm{a}}\frac{1-\rho }{1-{\widehat{\rho }}_{j}} $ (1)

选用常数$ \mu $与KL散度值相乘,可以得到稀疏正则化项$ {J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{s}\mathrm{e}} $,如下:

$ {J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{s}\mathrm{e}}=J(\boldsymbol{W}, b)+\mu \sum\limits_{j=1}^{N}KL\left(\rho \left\|{\widehat{\rho }}_{j}\right. \right) $ (2)
1.1.2 堆叠化处理

经过稀疏正则化的自编码器(SAE)降维能力有限,为了使得最终的特征更小并且有代表性,本文堆叠3个SAE,并且设置SAE网络结构的隐藏层数为4,隐藏层神经元数分别为{128,64,32,32}。在前一个SAE训练完成后,将当前SAE的输出作为后一个SAE的输入,逐层训练结束后对堆叠后模型进行微调,改善每层的权重参数。图 2所示为SAE的堆叠化过程。

Download:
图 2 SAE的堆叠化过程 Fig. 2 SAE stacking process

SAE的堆叠化过程包括预训练和微调2个阶段。预训练是一个无监督的训练过程,即使用大量的无标记流量数据对SAE进行逐层贪婪学习。预训练阶段的步骤如下:

步骤1  将编码后的网络异常流量数据输入到SAE的可见层中,初始化连接权重W和偏置项b

步骤2  训练第一个隐藏层的网络参数,通过训练参数计算出第一个隐藏层的输出。

步骤3  使用无监督学习方法对SAE进行训练,计算损失函数值$ {L}_{\boldsymbol{w}, b} $,不断更新权值W和偏置项b,直到损失函数值达到设定的阈值不再变化。

步骤4  将前一网络层的输出作为下一网络层的输入,用同样的方法训练该隐藏层的参数。重复步骤3,直到SAE所有的隐藏层都被训练完成。

上述预训练过程无法获得输入向量到输出标签的非线性映射,因此,需要在SAE网络的最后一层添加一个连接层,并使用反向传播方法进行微调。微调阶段的步骤如下:

步骤1  将每个SAE训练的隐藏层连接起来,构建堆叠的SAE,将连接权重W和偏差项b设置为预训练阶段所得到的值。

步骤2  在最后一层级联一个Sigmoid分类器,结合带标签的原始数据训练Sigmoid分类器的网络参数。

步骤3  使用预训练阶段和微调阶段的网络参数作为整个深度网络的初始化参数,找出损失函数最小时的参数值作为最优参数。

步骤4  利用反向传播算法对SAE模型获得的最优参数进行微调。

1.1.3 批量标准化

随着网络的深入,训练过程变得越来越困难,收敛速度也越来越慢。本文采用批量标准化(Batch Normalize,BN)的思想[13]来解决该问题。在微调阶段的第4步中,存在反向传播过程中底层神经网络梯度消失的现象。BN是指通过归一化方法,将神经网络每一层中任意神经元的输入值分布强制调整成均值为0、方差为1的标准正态分布,从而使得非线性变换函数的输入值落在对输入敏感的区域,避免梯度消失的问题。图 3所示为引入BN的改进SAE堆叠化过程。

Download:
图 3 改进的SAE堆叠化过程 Fig. 3 Improved SAE stacking process

BN层对隐藏层中各神经元激活值的转换公式如下:

$ {\widehat{x}}^{\left(k\right)}=\frac{{x}^{\left(k\right)}-E\left[{x}^{\left(k\right)}\right]}{\sqrt{\mathrm{V}\mathrm{a}\mathrm{r}\left[{x}^{\left(k\right)}\right]}} $ (3)

其中:$ {x}^{\left(k\right)} $为该层对应的神经元的线性激活值;$ E\left[{x}^{\left(k\right)}\right] $是本次训练过程中所有训练实例得到的线性激活值的平均值;$ \mathrm{V}\mathrm{a}\mathrm{r}\left[{x}^{\left(k\right)}\right] $是线性激活值的方差。假设训练过程中有n个实例,则$ E\left[{x}^{\left(k\right)}\right] $$ \mathrm{V}\mathrm{a}\mathrm{r}\left[{x}^{\left(k\right)}\right] $的计算公式分别为:

$ E\left[{x}^{\left(k\right)}\right]=\frac{1}{n}\sum\limits_{i=1}^{n}{x}_{i}^{\left(k\right)} $ (4)
$ \mathrm{V}\mathrm{a}\mathrm{r}\left[{x}^{\left(k\right)}\right]=\frac{1}{n}\sum\limits_{i=1}^{n}{\left({x}_{i}^{\left(k\right)}-E\left[{x}^{\left(k\right)}\right]\right)}^{2} $ (5)

为了防止改变分布后SAE网络的表达能力下降,在每个神经元上增加调整参数scale和shift来激活逆变换操作。逆运算表达式如下:

$ {y}^{\left(k\right)}={\gamma }^{\left(k\right)}{\widehat{x}}^{\left(k\right)}+\beta \left(k\right) $ (6)
1.2 改进的QRNN模型

由于网络入侵流量数据具有高维度以及时间依赖性的特点,因此本文利用QRNN高度并行化兼具时序性的特点进行时空特征提取,同时加入双向特征融合方案改进QRNN网络,引入注意力机制对关键特征进行增强,改进的QRNN(IQRNN)模型结构如图 4所示。

Download:
图 4 IQRNN模型结构 Fig. 4 IQRNN model structure
1.2.1 时空特征提取

QRNN是长短期记忆(LSTM)网络和卷积神经网络(CNN)的混合神经网络,其结合了两者的优点。与原始LSTM相比,QRNN可以在雾节点上高度并行化[14]。与原始CNN相比,QRNN可以捕捉流量数据的时序性特征,具有良好的泛化能力。

QRNN架构如图 5所示,阴影部分表示矩阵乘法或卷积,连续方块表示这些计算可以并行运行,白色部分表示沿通道或特征维度并行运行的无参数函数。QRNN的每一层结合2个类型的层,类似于CNN中的卷积层和池化层,这2种类型的层都允许完全并行计算,卷积层支持跨小批量和空间维度的并行化,池化层支持跨小批量和特征维度的并行化[10]。QRNN计算方程如下:

$ \begin{array}{l}{\widehat{x}}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left(\boldsymbol{W}\mathrm{*}{\boldsymbol{X}}_{t}\right)\\ {f}_{t}=\sigma \left({\boldsymbol{W}}_{f}\mathrm{*}{\boldsymbol{X}}_{t}\right)\\ {o}_{t}=\sigma \left({\boldsymbol{W}}_{o}\boldsymbol{*}{\mathit{X}}_{t}\right)\\ {c}_{t}={f}_{t}\odot {c}_{t-1}+(1-{f}_{t})\odot {\widehat{x}}_{t}\\ {h}_{t}={o}_{t}\odot \mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({c}_{t}\right)\end{array} $ (7)
Download:
图 5 QRNN结构 Fig. 5 QRNN structure

其中:$ {\boldsymbol{X}}_{t}\in {\mathbb{R}}^{k\times n} $是输入序列$ k $n维向量表示;符号*表示沿时间步长维度的掩码卷积;$ \boldsymbol{W}\mathrm{、}{\boldsymbol{W}}_{f}\mathrm{、}{\boldsymbol{W}}_{o} $都是$ {\mathbb{R}}^{d\times n\times k} $中的卷积滤波器组;$ k $是滤波器的宽度。前3个表达式是QRNN的卷积部分,这些卷积运算产生$ m $维序列$ {\widehat{x}}_{t}\mathrm{、}{f}_{t} $$ {o}_{t} $,符号⊙表示元素乘法。最后2个表达式是QRNN的池化部分,类似于LSTM单元中熟悉的元素门,不同的是,QRNN只使用一个遗忘门,即文献[15]中的“动态平均池”。单个QRNN执行3个仅依赖于输入序列X的乘向量运算,而不依赖类似于$ {h}_{t-1} $的先前输出。在已知输入的情况下,这些乘向量运算$ \boldsymbol{W}\mathrm{*}{\boldsymbol{X}}_{t} $可以在多个时间步中预先计算。因此,不需要在每个时间步加载具有大量内存的权重矩阵。

当执行所需的时间步长增加时,内存的成本降低。因此,这些操作可以在一个矩阵乘法中并行化,如下:

$ {\boldsymbol{U}}^{\mathrm{T}}=\left(\begin{array}{l}\boldsymbol{W}\\ {\boldsymbol{W}}_{f}\\ {\boldsymbol{W}}_{o}\end{array}\right)[{\boldsymbol{X}}_{k-1}, {\boldsymbol{X}}_{k}, \cdots , {\boldsymbol{X}}_{L+k-1}] $ (8)

其中:$ \boldsymbol{U}\in {\mathbb{R}}^{L\times 3d} $为组合结果矩阵;$ d $为隐藏层神经元数;$ L=T-k+1 $为输入序列长度。当使用最小化批处理时,$ \boldsymbol{U}\in {\mathbb{R}}^{L\times B\times 3d} $将成为张量。

1.2.2 双向特征融合

特征融合[16]能显著提升网络性能,因此,被广泛应用于深度学习任务。事实证明,双向特征融合在音素分类[17]、语音识别[18]等领域都明显优于单向网络。尽管特征提取阶段的QRNN已经提取了前向特征,但是这对于检测背景复杂的网络攻击样本还是不够,因此,本文提出双向特征融合的QRNN结构,如图 6所示。

Download:
图 6 双向特征融合的QRNN结构 Fig. 6 QRNN structure of bidirectional feature fusion

在本文所提方案中,输入层负责对特征降维后的数据进行序列编码。前向工作的QRNN单元负责提取输入层数据序列的前向特征,后向工作的QRNN单元负责提取输入层数据序列的后向特征。输出层用来集成前向和后向工作单元的输出值。具体步骤如下:

1)前向传递。双向QRNN运行一个时间片$ 1\le t\le T $的所有输入数据,并确定全部输出值,但是,只对前向状态(从t=1到t=T)和后向状态(从t=Tt=1)进行正序输入迭代计算,如下所示:

$ {\overrightarrow{\boldsymbol{h}}}_{t}={\overrightarrow{o}}_{t}\odot \mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\overrightarrow{c}}_{t}\right) $ (9)

2)后向传递。计算用于前向传递的时间片$ 1\le t\le T $的目标函数导数部分,但是,只对前向状态(从t=Tt=1)和后向状态(从t=1到t=T)执行后向传递,公式如下:

$ {\overleftarrow{\boldsymbol{h}}}_{t}={\overleftarrow{o}}_{t}\odot \mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\overleftarrow{c}}_{t}\right) $ (10)

3)特征融合。输出层的输出向量$ {\boldsymbol{h}}_{t} $可由前向和后向的隐藏层输出向量$ {\overrightarrow{\boldsymbol{h}}}_{t} $$ {\overleftarrow{\boldsymbol{h}}}_{t} $计算,如下:

$ {\boldsymbol{h}}_{t}=\left[{\overrightarrow{\boldsymbol{h}}}_{t} \oplus {\overleftarrow{\boldsymbol{h}}}_{t}\right] $ (11)
1.2.3 关键特征增强

在雾计算入侵检测方案中,引入注意力机制对关键特征进行增强,将提高入侵检测的准确性。注意力机制在图像处理[19]、自然语言处理[20]、目标检测[21]等领域应用广泛,其核心思想是模仿人类观察对象的方式,从大量的信息中选择更关键的部分来实现特征增强。改进后的QRNN在2个方面采用注意力机制对流量数据进行分类:一是利用注意力机制来确定哪些维度在分类中起关键作用;二是将QRNN输出层获得的数据序列添加到注意力机制层,以获得更准确的分类结果。具体步骤如下:

1)计算注意力分布。

$ {\boldsymbol{h}}_{t} $是当前目标的隐藏状态值,$ \boldsymbol{h} $是历史隐藏状态值,选用式(12)中的$ \mathrm{c}\mathrm{o}\mathrm{n}\mathrm{c}\mathrm{a}\mathrm{t} $作为$ \mathrm{s}\mathrm{c}\mathrm{o}\mathrm{r}\mathrm{e} $函数,对注意力权重值$ {a}_{t}\left(s\right) $进行计算,如式(13)所示:

$ \mathrm{s}\mathrm{c}\mathrm{o}\mathrm{r}\mathrm{e}({\boldsymbol{h}}_{t}, \boldsymbol{h})=\left\{\begin{array}{l}{\boldsymbol{h}}_{t}^{\mathrm{T}}\boldsymbol{h}\text{,}\mathrm{d}\mathrm{o}\mathrm{t}\\ {\boldsymbol{h}}_{t}^{\mathrm{T}}{\boldsymbol{W}}_{a}\boldsymbol{h}\text{,}\mathrm{g}\mathrm{e}\mathrm{n}\mathrm{e}\mathrm{r}\mathrm{a}\mathrm{l}\\ {\boldsymbol{v}}_{a}^{\mathrm{T}}\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\boldsymbol{W}}_{a}\left[{\boldsymbol{h}}_{t};\boldsymbol{h}\right]\right)\text{,}\mathrm{c}\mathrm{o}\mathrm{n}\mathrm{c}\mathrm{a}\mathrm{t}\end{array}\right. $ (12)
$ {a}_{t}\left(s\right)=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left(\mathrm{s}\mathrm{c}\mathrm{o}\mathrm{r}\mathrm{e}\right({\boldsymbol{h}}_{t}, {{\boldsymbol{\bar h}}}_{s}\left)\right)}{\sum\limits_{{s'}}\mathrm{e}\mathrm{x}\mathrm{p}\left(\mathrm{s}\mathrm{c}\mathrm{o}\mathrm{r}\mathrm{e}\right({\boldsymbol{h}}_{t}, {{\boldsymbol{\bar h}}}_{{s}^{\text{'}}}\left)\right)} $ (13)

计算输入信息中每个元素的匹配度,然后将匹配度得分输入到$ \mathrm{S}\mathrm{i}\mathrm{g}\mathrm{m}\mathrm{o}\mathrm{i}\mathrm{d} $函数中,生成注意力分布。

2)根据注意力分布计算输入信息的加权平均值。

将结果输入到$ \mathrm{S}\mathrm{i}\mathrm{g}\mathrm{m}\mathrm{o}\mathrm{i}\mathrm{d} $层后,得到注意力权值$ [{\alpha }_{1}, {\alpha }_{2}, \cdots , {\alpha }_{N}] $。利用输入信息对注意力权重向量进行加权平均,计算公式如下:

$ {\boldsymbol{e}}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({\boldsymbol{W}}_{a}\right[{x}_{1}, {x}_{2}, \cdots , {x}_{N}]+b) $ (14)

其中:$ {\boldsymbol{W}}_{a} $为注意力机制的权重矩阵,表示需要增强的信息;$ b $为注意力机制的偏差;$ [{x}_{1}, {x}_{2}, \cdots , {x}_{N}] $为注意力机制的输入,即神经网络隐藏层融合后的输出。使用$ \mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h} $激活函数对输入向量进行非线性变换,得到的$ {e}_{t} $即为加权计算结果。

雾计算环境需要入侵检测模型具备降维以及检测入侵的能力,本文模型不仅可以实现高维样本的低维映射,而且可以提取有效特征进行攻击检测。FR-IQRNN算法总体框架如图 7所示。

Download:
图 7 FR-IQRNN算法流程 Fig. 7 Procedure of FR-IQRNN algorithm
2 实验结果与分析 2.1 实验环境

为了评估本文入侵检测方案的性能,首先在64位计算机上采用Python语言和scikit learn、numpy、pandas、tensorflow-gpu、keras等机器学习库进行建模,然后在Intel i7-9750H 2.60 GHz CPU、16 GB RAM、Nvidia Geforce RTX 2080 8 GB GDDR6 GPU和10.2 CUDA的环境下进行实验。

2.2 实验数据

本文使用的数据来自网上公共数据集UNSW_NB15,该数据集由澳大利亚网络安全中心实验室提供,记录了实际网络数据中的正常数据流和网络攻击流混合体。数据集的统计信息如表 1所示。

下载CSV 表 1 数据集攻击类别统计 Table 1 Dataset attack class statistics

UNSW_NB15数据集存在分布不均的特点,部分攻击类别占比不足十分之一,数据分布的直观表示如图 8所示。

Download:
图 8 数据集攻击分布 Fig. 8 Attack distribution of dataset
2.3 数据集预处理

雾节点采集的攻击样本存在多种类型的数据,因此,在网络训练前需对数据进行预处理,将数据类型统一为网络可识别类型,从而便于输入FR-IQRNN模型并提高训练效果。

2.3.1 数值化

输入流数据中包含多种类型特征,其中一些特征不是数字类型,因此,需要将它们编码为数字类型,以作为神经网络的输入。有2种编码方式:一种是标签编码器,其将字符型数据中的每一个字符值直接编码为相应的数值大小,缺点是带有数值大小的分类特征会干扰模型学习最佳参数;另一种是one-hot编码,其将分类变量作为二进制向量表示,每个状态都由独立的寄存器位保存,可以避免数值的干扰。本文选用one-hot编码器将离散特征转换为连续特征,特征“protocol”“service”和“state”这3个字符型数据将会被编码为数值型数据。例如,“protocol”有“tcp”“udp”和“icmp”这3种类型的属性,本文将它们依次编码为(1,0,0)、(0,1,0)、(0,0,1),以这种方式将原本42维特征编码为196维特征。

2.3.2 归一化

数据归一化可以加快模型求解速度,提高模型的精度,并防止极大特征值影响距离计算。对于最小值与最大值相差很大的特征,如dur、sbytes、dbytes,本文采用MIN-MAX缩放方法进行缩放,将特征向量映射到某一范围,并根据式(15)对数据进行归一化:

$ {X}_{i}=\frac{{X}_{i}-{X}_{\mathrm{m}\mathrm{i}\mathrm{n}}}{{X}_{\mathrm{m}\mathrm{a}\mathrm{x}}-{X}_{\mathrm{m}\mathrm{i}\mathrm{n}}} $ (15)

其中:$ {X}_{i} $表示每一个数据点;$ {X}_{\mathrm{m}\mathrm{i}\mathrm{n}} $表示所有数据点中的最小值;$ {X}_{\mathrm{m}\mathrm{a}\mathrm{x}} $表示所有数据点中的最大值。

2.4 评估指标

异常流量检测的性能评估指标依赖于混淆矩阵,混淆矩阵中值的定义为:

1)真正类(TTP),表示正确分类的异常流量实例。

2)假正类(FFP),表示错误分类的正常流量实例。

3)真反类(TTN),表示正确分类的正常流量实例。

4)假反类(FFN),表示错误分类的异常流量实例。

通过上述4项生成以下评估指标:

1)准确率(Aaccuracy),表示模型正确分类的样本数与样本总数的比值,计算公式如下:

$ {A}_{\mathrm{a}\mathrm{c}\mathrm{c}\mathrm{u}\mathrm{r}\mathrm{a}\mathrm{c}\mathrm{y}}=\frac{{T}_{\mathrm{T}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}+{F}_{\mathrm{F}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}}\times 100\mathrm{\%} $ (16)

2)精确率(Pprecision),表示模型正确分类的正常样本数与正常样本总数的比值,计算公式如下:

$ {P}_{\mathrm{p}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{P}}}\times 100\mathrm{\%} $ (17)

3)召回率(Rrecall,也称查全率),表示模型分类正确的入侵样本数与分类正确的样本总数的比值,计算公式如下:

$ {R}_{\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}}\times 100\mathrm{\%} $ (18)

4)误报率(FFPR),表示被误报为入侵的正常样本数在正常样本总数中所占的比例,计算公式如下:

$ {F}_{\mathrm{F}\mathrm{P}\mathrm{R}}=\frac{{F}_{\mathrm{F}\mathrm{P}}}{{F}_{\mathrm{F}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}}\times 100\mathrm{\%} $ (19)
2.5 模型参数设置

FR-IQRNN模型需通过设置参数使其达到可控的拟合效果,本文参照传统深度学习的调优方法,为获取一组较优的数据集而进行多次调参实验。模型参数配置如表 2所示。

下载CSV 表 2 参数设置 Table 2 Parameters setting

UNSW_NB15数据集中拥有的每条42维数据特征经预处理后扩展到196维,在SSAE模型预训练和微调2个步骤中,设置预训练的学习率为0.1,损失函数为MSE。经过ReLU激活函数后,通过微调模型进行优化,设置的微调学习率为0.001,使用0.5的Dropout比率对模型参数进行丢弃。在IQRNN中执行分类操作,迭代次数设置为100次,采用time step为10的步数和Adam优化器,最终得到检测出的样本概率值,用以计算混淆矩阵中的各项指标值。

2.6 结果分析

本文设计4组实验:

1)将本文入侵检测模型与其他模型的检测性能进行对比。

2)验证本文模型的时间有效性。

3)进行模型调参实验,改用NSL-KDD数据集检测模型的鲁棒性。

4)进行模型的消融实验。

2.6.1 检测性能比较

为了验证本文入侵检测模型的优势,将其与基于经典机器学习、基于最新深度学习的检测模型在UNSW_NB15数据集上进行实验,各模型的性能比较结果如表 3所示,其中,包括3种经典机器学习模型和5种最新深度学习模型,最优结果加粗表示。从表 3可以看出,与经典机器学习模型和最新深度学习模型相比,本文模型可以达到99.51%的准确率、99.23%的精确率、99.79%的召回率和58%的误报率,其能够更好地检测异常流量。

下载CSV 表 3 不同模型的检测性能比较 Table 3 Comparison of detection performance of different models 

图 9所示为本文FR-IQRNN模型与2种基于深度学习的模型在训练精度、测试精度和损失函数收敛情况方面的对比,所有模型都经过了100次迭代训练,每次迭代之后都进行准确率和损失函数的评估。从图 9可以看出,本文所提模型在训练和测试过程中具有更快的损失收敛速度,能够更早地获得最佳结果,从而提高检测精度。

Download:
图 9 不同模型的收敛性和准确率比较 Fig. 9 Comparison of convergence and accuracy of different models
2.6.2 时间性能比较

为了比较本文所提模型和其他模型的计算代价,首先对训练集和测试集分别设置准确率阈值,训练集的准确率阈值设定为0.95,测试集的准确率阈值设定为0.90,然后使用GPU来加快所有模型的训练速度,最终得到所有模型的训练和测试时间,结果如表 4所示。从表 4可以看出,本文所提模型虽然在每轮迭代上花费的训练时间较多,但用较少的迭代数达到准确率阈值,从而使得总体的训练时间和验证时间最少。考虑到整个系统的运行时间,本文模型可以在雾计算中更快地完成入侵检测,从而延长了雾节点建立防御机制的时间。

下载CSV 表 4 不同模型的时间性能比较 Table 4 Time performance comparison of different models
2.6.3 方案有效性分析

方案有效性分析具体如下:

1)内部有效性。模型内部有效性是指模型内部参数对模型的影响,具体来说,针对模型的检测精度指标,可以通过调整模型的优化算法和批处理大小(batch size)来改善模型的准确性;针对模型的时间性能指标,可以通过调整time step的值来提升模型的时间性能。

在深度学习领域,常见的优化算法有SGD、Adam、RMSProp等,其中,SGD算法保持单一的学习率更新所有权重,学习率在网络训练过程中不会改变,RMSProp算法对梯度计算微分平方加权平均数,有利于解决训练过程中上下波动较大的问题,而Adam算法通过计算梯度的一阶矩估计和二阶矩估计从而为不同的参数设计独立的自适应性学习率。运用这3种优化算法分别进行模型训练,训练效果如图 10所示,从图 10可以看出,SGD算法的训练准确率较低,Adam算法性能相对最优,因此,选择Adam算法作为本文模型的优化算法。

Download:
图 10 不同优化算法对准确率的影响 Fig. 10 Influence of different optimization algorithms on accuracy

batch size为神经网络经过前向和后向传播操作后的训练样本数,即在每次优化过程中使用多少样本来评估损失。将batch size分别设置为256、512、1 024,通过准确率来评测最优的batch size。从图 11可以看出,随着time step的提高,模型准确率逐渐上升并达到饱和,相较而言,batch size为1 024的模型具有最高的准确率。

Download:
图 11 不同batch size对准确率的影响 Fig. 11 Influence of different batch size on accuracy

2)外部有效性。外部有效性是指在外部数据驱动情况下模型的健壮性(也称为鲁棒性)。当遭受不同的人为恶意攻击后,雾节点将无法为用户提供正常服务,因此,研究模型的鲁棒性对于雾计算有着重要意义。为了验证本文模型的鲁棒性,使用NSL-KDD数据集进行测试,NSL-KDD数据集在KDD Cup99上进行改进,去除了KDD Cup99数据集中的冗余记录,该数据集也符合雾计算通信环境下流量的基本特征:数据不平衡和多维特征结构。在NSL-KDD数据集中,训练数据集中有125 973条记录,测试数据集中有22 544条记录,除了标记为Normal的数据外,还有DoS、U2R、R2L和Probe这4种攻击类型。NSL-KDD数据集共有42个特征(1个类别特征,7个离散特征,34个连续特征)。

在与2.6.1节相同的环境下,将本文所提模型在NSL-KDD数据集上进行实验,结果如表 5所示,从表 5可以看出,该模型适用于NSL-KDD数据集,获得了0.993 9的准确率和0.004 7的误报率。与UNSW_NB15数据集不同,NSL-KDD中的测试数据集包含许多新的攻击变体,因此,本文模型可以检测出新的攻击变体。

下载CSV 表 5 NSL-KDD数据集上的测试结果 Table 5 Test results on NSL-KDD dataset
2.6.4 消融实验

为了验证本文两阶段结合方法的有效性,进行模型消融实验,以验证不同组件对模型的改进效果。依次从FR-IQRNN中删除每个阶段的组件,包括SSAE、QRNN双向结构、注意力模块,并将其与完整的FR-IQRNN进行比较,结果如图 12所示。从图 12可以看出:不对数据进行降维导致的分类器检测性能下降最为严重,准确率仅能达到0.919 8,原因是原始数据中包含很多冗余信息,会干扰分类器的特征提取过程,造成最终的性能下降;删除双向结构和注意力机制的模型,最终的检测性能都会降低,这是由于模型无法提取具有关键作用的特征,导致模型识别异常流量出错。

Download:
图 12 消融实验结果 Fig. 12 Ablation experimental results
3 结束语

本文对入侵检测问题和深度学习方法进行分析,提出一种入侵检测模型FR-IQRNN。该模型利用堆叠式稀疏自编码器的预训练和微调模式对数据集进行降维,然后结合改进的QRNN对入侵样本实现分类。实验结果表明,FR-IQRNN模型能取得0.995 1的准确率和0.005 8的误报率,同时具有较低的时间开销,可以很好地解决雾计算环境下入侵检测实时性差、检测精度低的问题。下一步将结合边云协同场景设计分布式入侵检测方案,以提高FR-IQRNN模型的检测性能。

参考文献
[1]
RASHID ABDULQADIR H, ZEEBAREE S R M, SHUKUR H M, et al. A study of moving from cloud computing to fog computing[J]. Qubahan Academic Journal, 2021, 1(2): 60-70. DOI:10.48161/qaj.v1n2a49
[2]
SANTOS J, VAN DER HOOFT J, VEGA M T, et al. SRFog: a flexible architecture for virtual reality content delivery through fog computing and segment routing[C]// Proceedings of 2021 IFIP/IEEE International Symposium on Integrated Network Management. Washington D.C., USA: IEEE Press, 2021: 1038-1043.
[3]
PAHARIA B, BHUSHAN K. A comprehensive review of Distributed Denial of Service(DDoS) attacks in fog computing environment[M]//GUPTA B, PEREZ G, AGRAWAL D, et al. Handbook of computer networks and cyber security. Berlin, Germany: Springer, 2020.
[4]
李韵, 黄辰林, 王中锋, 等. 基于机器学习的软件漏洞挖掘方法综述[J]. 软件学报, 2020, 31(7): 2040-2061.
LI Y, HUANG C L, WANG Z F, et al. Survey of software vulnerability mining methods based on machine learning[J]. Journal of Software, 2020, 31(7): 2040-2061. (in Chinese)
[5]
张玉清, 董颖, 柳彩云, 等. 深度学习应用于网络空间安全的现状、趋势与展望[J]. 计算机研究与发展, 2018, 55(6): 1117-1142.
ZHANG Y Q, DONG Y, LIU C Y, 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)
[6]
SUDQI KHATER B, ABDUL WAHAB A W B, IDRIS M Y I B, et al. A lightweight perceptron-based intrusion detection system for fog computing[J]. Applied Sciences, 2019, 9(1): 178. DOI:10.3390/app9010178
[7]
AN X S, SU J T, LÜ X, et al. Hypergraph clustering model-based association analysis of DDOS attacks in fog computing intrusion detection system[J]. EURASIP Journal on Wireless Communications and Networking, 2018, 18: 249.
[8]
PENG K, LEUNG V C M, ZHENG L X, et al. Intrusion detection system based on decision tree over big data in fog environment[J]. Wireless Communications and Mobile Computing, 2018, 18: 4680867.
[9]
DIRO A A, CHILAMKURTI N. Distributed attack detection scheme using deep learning approach for Internet of things[J]. Future Generation Computer Systems, 2018, 82: 761-768. DOI:10.1016/j.future.2017.08.043
[10]
SADAF K, SULTANA J. Intrusion detection based on autoencoder and isolation forest in fog computing[J]. IEEE Access, 2020, 8: 167059-167068. DOI:10.1109/ACCESS.2020.3022855
[11]
付子爔, 徐洋, 吴招娣, 等. 基于增量学习的SVM-KNN网络入侵检测方法[J]. 计算机工程, 2020, 46(4): 115-122.
FU Z X, XU Y, WU Z D, et al. SVM-KNN network intrusion detection method based on incremental learning[J]. Computer Engineering, 2020, 46(4): 115-122. (in Chinese)
[12]
叶佩文, 贾向东, 杨小蓉, 等. 基于深度学习的自编码器端到端物理层优化方案[J]. 计算机工程, 2019, 45(12): 86-90, 97.
YE P W, JIA X D, YANG X R, et al. End-to-end physical layer optimization scheme using auto-encoder based on deep learning[J]. Computer Engineering, 2019, 45(12): 86-90, 97. (in Chinese)
[13]
张百川, 赵佰亭. 结合批归一化的轻量化卷积神经网络分类算法[J]. 哈尔滨商业大学学报(自然科学版), 2021, 37(3): 300-306.
ZHANG B C, ZHAO B T. Classification algorithm of lightweight convolutional neural network based on batch normalization[J]. Journal of Harbin University of Commerce (Natural Sciences Edition), 2021, 37(3): 300-306. (in Chinese)
[14]
GODIN F, DEGRAVE J, DAMBRE J, et al. Dual Rectified Linear Units (DReLUs): a replacement for tanh activation functions in quasi-recurrent neural networks[J]. Pattern Recognition Letters, 2018, 116: 8-14. DOI:10.1016/j.patrec.2018.09.006
[15]
BALDUZZI D, GHIFARY M. Strongly-typed recurrent neural networks[EB/OL]. [2021-07-05]. https://arxiv.org/abs/1602.02218.
[16]
郝志峰, 黄浩, 蔡瑞初, 等. 基于多特征融合与双向RNN的细粒度意见分析[J]. 计算机工程, 2018, 44(7): 199-204, 211.
HAO Z F, HUANG H, CAI R C, et al. Fine-grained opinion analysis based on multi-feature fusion and bidirectional RNN[J]. Computer Engineering, 2018, 44(7): 199-204, 211. (in Chinese)
[17]
GRAVES A, SCHMIDHUBER J. Framewise phoneme classification with bidirectional LSTM and other neural network architectures[J]. Neural Networks, 2005, 18(5/6): 602-610.
[18]
LOKESH S, MALARVIZHI KUMAR P, RAMYA DEVI M, et al. An automatic tamil speech recognition system by using bidirectional recurrent neural network with self-organizing map[J]. Neural Computing and Applications, 2019, 31(5): 1521-1531. DOI:10.1007/s00521-018-3466-5
[19]
王文冠, 沈建冰, 贾云得. 视觉注意力检测综述[J]. 软件学报, 2019, 30(2): 416-439.
WANG W G, SHEN J B, JIA Y D. Review of visual attention detection[J]. Journal of Software, 2019, 30(2): 416-439. (in Chinese)
[20]
张兴兰, 尹晟霖. 可变融合的随机注意力胶囊网络入侵检测模型[J]. 通信学报, 2020, 41(11): 160-168.
ZHANG X L, YIN S L. Intrusion detection model of random attention capsule network based on variable fusion[J]. Journal on Communications, 2020, 41(11): 160-168. (in Chinese)
[21]
郭璠, 张泳祥, 唐琎, 等. YOLOv3-A: 基于注意力机制的交通标志检测网络[J]. 通信学报, 2021, 42(1): 87-99.
GUO F, ZHANG Y X, TANG J, et al. YOLOv3-A: a traffic sign detection network based on attention mechanism[J]. Journal on Communications, 2021, 42(1): 87-99. (in Chinese)
[22]
MOON D, IM H, KIM I, et al. DTB-IDS: an intrusion detection system based on decision tree using behavior analysis for preventing APT attacks[J]. The Journal of Supercomputing, 2017, 73(7): 2881-2895. DOI:10.1007/s11227-015-1604-8
[23]
刘辛. 随机森林在云环境异常检测中的应用[D]. 北京: 北京邮电大学, 2020.
LIU X. Application of random forest in cloud computing anomaly detection[D]. Beijing: Beijing University of Posts and Telecommunications, 2020. (in Chinese)
[24]
池亚平, 凌志婷, 王志强, 等. 基于支持向量机与Adaboost的入侵检测系统[J]. 计算机工程, 2019, 45(10): 183-188, 202.
CHI Y P, LING Z T, WANG Z Q, et al. Intrusion detection system based on support vector machine and Adaboost[J]. Computer Engineering, 2019, 45(10): 183-188, 202. (in Chinese)
[25]
YIN C L, ZHU Y F, FEI J L, et al. A deep learning approach for intrusion detection using recurrent neural networks[J]. IEEE Access, 2017, 5: 21954-21961. DOI:10.1109/ACCESS.2017.2762418
[26]
TIAN Q, LI J M, LIU H B. A method for guaranteeing wireless communication based on a combination of deep and shallow learning[J]. IEEE Access, 2019, 7: 38688-38695. DOI:10.1109/ACCESS.2019.2905754
[27]
KASONGO S M, SUN Y X. A deep learning method with wrapper based feature extraction for wireless intrusion detection system[J]. Computers & Security, 2020, 92: 101752. DOI:10.1016/j.cose.2020.101752
[28]
ROY B, CHEUNG H. A deep learning approach for intrusion detection in Internet of things using bi-directional long short-term memory recurrent neural network[C]//Proceedings of the 28th International Telecommunication Networks and Applications Conference. Washington D.C., USA: IEEE Press, 2018: 1-6.
[29]
VINAYAKUMAR R, SOMAN K P, POORNACHANDRAN P. Applying convolutional neural network for network intrusion detection[C]//Proceedings of International Conference on Advances in Computing, Communications and Informatics. Washington D.C., USA: IEEE Press, 2017: 1222-1228.