EB-GAN:基于BiGAN的网络流量异常检测方法

2023-07-07 03:10胡梦娜贾俊铖金映言那幸仪
计算机应用与软件 2023年6期
关键词:鉴别器网络流量编码器

胡梦娜 何 强 贾俊铖 金映言 马 标 那幸仪

1(苏州大学计算机科学与技术学院 江苏 苏州 215000) 2(新华社媒体融合生产技术与系统国家重点实验室 北京 100803)

0 引 言

信息网络的出现和更新迭代是现代社会进步和科技发展的标志。在当今网络技术飞速发展的时代,互联网已经覆盖了我们生活的各个方面。但是,人们在享受着网络带来便利的同时,网络攻击可能造成的潜在破坏也急剧增加,各类网络入侵攻击事件不断发生。其中,最常见的入侵攻击[1]包括DDoS攻击、DoS攻击等。根据国家互联网应急中心提供的数据统计,在2019年上半年,共有约3 200万个新的恶意软件样本数量被捕获,计算机恶意软件每日传播次数约998万次,抽样监测发现,在中国境内峰值超过10 Gbit/s的DDoS攻击平均每月约4 300起,较上一年同期增长了18%。

从以上数据中可以看出,当前的网络安全形势十分紧张,这些网络攻击每年都会带来巨大损失,保证计算机网络系统以及信息基础设施的安全迫在眉睫。近年来,入侵检测系统作为保护关键网络免受入侵攻击的强制性防线,开始被重视,相关领域的现状深受广大研究者关注。入侵检测系统[2]是一种监控网络流量恶意活动的应用软件,旨在应对复杂和日益增长的网络攻击,它可以对入侵攻击和恶意软件等恶意行为提供预警以便及时采取进一步措施。

入侵检测可分为基于特征和基于异常两大类。基于特征的检测需要对网络流量的各个特征进行研究和分析,并根据已知的攻击行为获取各维度特征的正常状态范围,该方法工作量大、不能识别新的网络攻击、需要实时更新并且缺乏灵活性;而基于异常的检测的思想是对正常流量建模,找出真实流量与这些正常行为模式的偏差,从而区分正常流量和异常流量,该方法的模型灵活性高,通过对超参数进行调整可以适用于不同的数据集,泛化性较强。

目前所提出的许多异常检测方法[3],大致分为基于规则、基于统计和基于表示学习这三类。基于规则的异常检测通过设定好的规则来识别异常流量,如果测试数据不包含在任何一个规则中,则被视作异常流量,该方法需要大量专业研究人员花费大量的人力和财力来设计规则表,虚警率高;基于统计分布的异常检测采用统计学方法建立模型,考虑到目标拟合模型的最大可能性,该方法需要充足的数据和检验类型的先验知识,该方法检验高维数据的性能可能较差;基于表示学习的异常检测方法通过学习现实世界中的真实样本进行学习其数据分布,从而将偏差值作为异常检测的判别指标,可以高效地处理高维数据。

目前对异常检测的研究主要集中在提高检出率和检测效率上:一方面,通过降维等方法进行特征选择以提高检测速度,但往往会丢失原始数据集的一些重要特征,从而导致检测率低下;另一方面,使用传统机器学习(Machine Learning,ML)、深度学习(Deep Learning,DL)算法可以适当提高分类精度,但相对应的检测效率无法得到保证,并且难以调参。此外,传统的异常检测系统很容易受到恶意干扰,攻击者可以利用这个漏洞对网络流量进行小的干扰从而规避IDS的检测,这也是传统的机器学习方法过时的原因所在。

为了克服这些限制,本文的主要工作如下:(1) 提出一种基于BiGAN的增强异常检测方法EB-GAN;(2) EB-GAN架构采用双向长短期记忆网络(Bi-LSTM)作为BiGAN的基础模型来分析网络流量的时序性,从而获取时间依赖性;(3) 提出一种改进的损失函数使得模型稳定并且高效。实验结果表明,对于KDDCUP99 10%数据集,在不降低维度、保证数据完整性的基础上,本文所提出的EB-GAN方法在检测网络流量异常方面不仅可以显著提高检出率,而且保证了较高的检测效率和较低的误报率。

1 相关工作

近年来,关于网络安全领域的研究变得越来越火热,由于互联网上的敏感信息不断吸引攻击者,各种网络安全问题层出不穷。Eltanbouly等[4]介绍了机器学习算法的最新研究进展,并应用于不同数据集中进行比较分析。就目前而言,网络流量异常检测系统[5]使用到的机器学习方法可分为浅层学习、深层学习和混合模型学习:浅层学习包括支持向量机(SVM)、随机森林(RF)等;深层学习包括循环神经网络(RNN)、卷积神经网络(CNN)等;而最经典的混合模型学习是对抗生成网络(GAN)[6]。

连鸿飞等[7]为解决数据不平衡导致模型效果差的问题,采用合成少数类过采样技术(SMOTE)和编辑最近邻(ENN)方法对少数类的样本进行过采样并对生成数据进行洗涤,调节不平衡数据中不同类的比例,再利用CNN、LSTM和Attention的混合神经网络进行检测。这类检测采用较为简单的方法生成的数据效果不佳,实验表明模型的检测率不高,并没有达到很好的效果提升。Lee等[8]利用自编码器(AE)对数据进行特征提取,再基于CGAN的模型对稀有类进行过采样,最后使用随机森林进行分类,该模型实现了检测率的一定提升,但在不良约束问题上的可行性有待考究。

深度学习[9]虽被广泛应用于各个领域,但它相当于一个黑匣子,具有很差的解释性,然而模型的可解释性对于管理员与分析人员来说至关重要。Brown等[10]介绍了五种Attention的改进机制应用到LSTM模型中,在不牺牲最先进性能的基础上,提高深度学习模型的可解释性。Tan等[11]提出基于Attention机制的新技术应用于实时攻击检测,对经典Transformer网络结构模型进行改进和应用,并与Bi-LSTM和条件随机场进行对比。LSTM和Bi-LSTM[12]起初应用于机器翻译、文本生成领域,但近些年来LSTM也在其他领域得到了广泛的应用,比如2016年谷歌应用LSTM做语音识别和文字翻译,2017年苹果应用LSTM进行Siri优化等。程杰仁等[13]定义一种IP数据包统计特征来表示数据流特征,采用LSTM对时间序列进行建模识别DDoS攻击,获得较好的实验结果,但模型中定义的异常偏差阈值很难设定,需要大量的实验分析。Oak等[14]提出了Bidirectional Encoder Representations from Transformer(BERT)方法,并验证在处理不平衡数据集方法上的有效性,F1值为0.919。Toupas等[15]使用MLP网络结构在CICID2017数据集上进行验证,着重于数据特征的处理:使用了皮尔逊相关系数、Yeo-Johnson等方法解决了数据特征倾斜等问题。

由于GAN具有学习高维复杂真实数据分布的潜力,是数据生成和编辑的主要方法之一,因而在图像翻译、机器学习等领域引起了广泛关注。它已经被证明在创建高度真实的数据方面非常成功,例如图像、文本和音频。Hong等[16]介绍了GAN的产生背景以及优缺点,研究者们针对各自的需求对GAN做出了改进,现阶段较为流行的GAN变种包括WGAN、DCGAN、EBGAN等。WGAN[17]在原始GAN的基础上引入Wasserstein距离,由于其平滑性优于应用到原始GAN中的KL散度和JS散度,可以解决传统GAN训练不稳定的问题。相比于原始GAN,Bi-GAN添加了一个编码器E,它将真实样本映射到一个潜在向量表示z,从而避免测试过程中恢复潜在向量表示的计算开销。GAN最初主要应用于图像领域,但各个领域的研究者们通过引用GAN的思想和原理实现了模型性能的提升,使得GAN的应用受到越来越多研究者们的关注。Dowoo等[18]提出一种改进的GAN:PcapGAN用来扩充pcap数据并展示了生成数据和原始数据之间的相似性,被证明将生成的数据加到原始数据中可以提高检测率。

综上所述,我们发现:实现数据生成的过程很复杂,往往会花费大量的人力和时间;使用浅层的机器学习方法虽说训练时间短,但这些方法一般很难去学习高维特征数据,使用降维等数据处理也许会丢失原始数据集中一些重要的信息;使用深度学习需要复杂的调参过程,相对于浅层机器学习方法在检测率上有一定的提升,但仍然存在一些模型复杂、解释性差、耗时长等局限性。

2 异常检测网络模型

2.1 异常检测框架

本文所提出的异常检测模型EB-GAN框架如图1所示,它以BiGAN为基本模型框架,与LSTM和Attention机制相结合,使用一种改进的混合损失函数作为该模型的损失函数。

图1 EB-GAN框架

图1展示了整个EB-GAN网络以及每个单独的组件。EB-GAN包括三个组件:编码器E、生成器G和鉴别器D。编码器的主要功能是显式地对数据分布进行建模,并且可以大大减少测试集恢复给定输入样本潜在表示的成本。我们可以将模型看作生成器、编码器和鉴别器之间的对抗训练。生成器和编码器的效果提升意味着鉴别器的鉴别效果减弱;鉴别器的鉴别效果提升意味着编码器-生成器的生成数据效果不佳。鉴别器D用来区分真实数据x、E(x)和来自潜在变量z的生成样本G(z)、z,编码器E和生成器G从G中生成近似真实样本的假样本,从而能够“以假乱真”骗过D。

和传统的GAN不同,这里我们借鉴BiGAN添加了一个编码器E,并设定E=G-1,优化目标V(E,G,D)定义如式(1)所示。

Ez~pz(z)[Ex~pG(·|z)[(1-D(x,z))]]

(1)

式中:pdata(x)和pz(z)分别表示真实数据和潜在空间向量的分布;pE(·|x)和pG(·|z)分别表示真实数据x输入到编码器产生的潜在空间向量和噪声z输入到生成器得到的生成数据向量的分布。

生成器和编码器均采取多层感知机(MLP)的网络结构,它们的主要功能是还原真实数据的分布。编码器实质上是实现从真实数据空间到潜在空间的映射:E(x):x→z,而生成器则是实现从潜在空间到真实数据空间的映射:G(z):z→x;针对鉴别器的功能特性,我们选择Bi-LSTM作为鉴别器的网络结构,并添加Attention机制使得网络模型通过反向传播有选择地学习模型,再使用MLP网络获取样本输入到鉴别器被判别为正常样本的概率。

在测试阶段,重构误差LR和鉴别误差LD是我们需要评估的两个误差。重构误差是指真实样本x和G(E(x))之间的误差,而鉴别误差表示鉴别器通过训练可以从真实样本中分辨出攻击样本的能力。我们定义异常分数函数fscore如式(2)所示。

fscore=γLR(x)+(1-γ)LD(x)

(2)

2.2 鉴别器设计

由于现有的网络流量数据是在固定时间段内采集获得,具有一定的时间关联性,再加上近来有关异常检测系统的研究很多使用各种深度学习混合算法实现了较好的效果提升。因此,本文使用Bi-LSTM+Attention+MLP作为鉴别器的网络结构。采用Bi-LSTM作为鉴别器基本网络框架,添加Attention机制使得网络高效有选择地学习,最后使用MLP网络,实现网络流量检测分类。鉴别器D的网络模型如图2所示。

图2 鉴别器网络模型

该模型包含两个输入向量:x={x1,x2,…,xn}和z={z1,z2,…,zm},其中m<

图3 LSTM单元结构

由于Bi-LSTM通常在序列建模问题中具有较高的性能,我们使用Bi-LSTM网络作为模型基础网络。Bi-LSTM由Forward LSTM和Backward LSTM组成,它可以对时序结构进行双向建模,能够处理正向和反向的数据序列,从而捕获更多的结构信息,因此优于LSTM的性能。Bi-LSTM比LSTM更加稳定,Bi-LSTM对网络流量的时序特征信息捕捉更加精确。Bi-LSTM网络框架如图4所示。

图4 Bi-LSTM模型

将Bi-LSTM得到的输出值e3再输入到Attention机制中。针对网络流量,考虑到每一个特征对外部攻击的贡献不一样,因此我们将Attention机制整合到上述Bi-LSTM网络结构中,Attention机制的原理是对编码器-解码器模型进行改进,计算出输入与输出之间的匹配程度,通过匹配程度为每个编码器的输出结果都赋予一个权值。我们通过Attention获取特征权值,对这些权值进行加权求和。权值越大,表示该特征向量对检测系统的影响力越大。因此我们根据权值确定鉴别器的主导向量所在,抑制权值小的向量表示,从而筛选出有价值的信息,使得模型有选择地学习这些输入样本。从可解释性的层次来说,向量权值的获取对模型的可解释性能也有一定的提高。

Attention模块接收三个矩阵作为输入,它们分别为“keys”:K∈RT×h、“values”:V∈RT×h、“queries”:Q∈RT×h,输出是一个上下文矩阵C∈RT×h,一般化的Attention表示如式(3)所示。

(3)

Attention机制的具体形式多种多样,本文所采用的是相对经典的BahdanauAttention算法[19],如式(4)-式(6)所示。

ut=vtanh(W1h+W2dt)

(4)

at=softmax(ut)

(5)

(6)

式中:v指输入变量query;h指每一个时间步长的输出向量;d指匹配解码器中每一个时间步长的状态;a表示经过Softmax函数之后的匹配权值;s指作为解码器输入的权值和。

最后,由于MLP网络具有结构简单、收敛快的特性,其本质是通过叠加线形分类器并传递到一个激活函数。因此我们最后添加MLP网络得到y=fdense(Wcs+bc),其中fdense表示全连接层网络;并设置最后的输出维度为1。

2.3 增强损失函数

虽然原始的Bi-GAN模型具有学习真实样本分布、预测能力强等优点,但仍然存在训练不稳定、容易梯度崩溃等致命的弱点。

一方面,我们考虑到WGAN中引入Earth Mover(EM)距离,在一定程度上可以克服原始GAN模型容易模型崩溃的问题。因此,我们借鉴这一方法,对模型的损失函数采取如下优化:

(1) 对鉴别器D的最后一层直接使用全连接层,并且不进行激活函数处理。

(2) 将鉴别器的参数设置为:WD←(-c,c),其中c一般取值为0.01,从而抑制鉴别器的学习速度,鉴别器不至于训练得太好导致生成器和编码器无法继续学习。

(3) 使用RMSProp算法作为优化算法。

Ez~Pz(z)[log(1-D(G(z)))-log(1-D(x))]

(7)

综上,我们所提出的EB-GAN模型中三个组块生成器G、编码器E和鉴别器D的损失函数分别如式(8)、式(9)、式(10)所示。

Ez~Pz(z)[D(G(z),z)-D(x,E(x))]

(8)

(9)

(10)

模型在训练和测试过程的时间都可以达到明显的提升,训练效果更好,并且模型更加稳定,基本不会出现模型崩溃等问题。

3 实验与结果分析

3.1 数据集介绍和预处理

本文选择的基准公开数据集是来自2013年UCI数据库的KDDCUP99 10%数据集[21],它共有494 021条数据样本,其中包括396 743条正常样本和97 278条异常样本。原始数据集的维度为42(41条特征数据和1条标签数据),其中包括7条非连续性数据、34条连续性数据,我们将标签数据转换成0和1表示(0代表正常流量,1代表异常流量),然后将7条非连续性数据按独热(one-hot)编码规则进行数据处理,最终经过预处理之后的数据维度为121(除去标签数据)。最后,由于数据集上的不同特征数据的尺度可能不一致,为保证模型的可实施性和减少训练时间,需要做归一化处理,如式(11)所示。

(11)

我们将数据集按1∶1的比例分为两部分,一部分只取正常流量作为训练集,进行模型训练;另一部分作为测试集,里面包含了所有正常和异常的样本。由于原数据集中的正常流量和异常流量的比例约是4∶1,所以将测试集中异常分数最高的20%的样本视为异常流量样本,其余的则视为正常流量样本。通过计算得出τ为测试集中异常分数第20%高的值,如式(12)所示。

(12)

3.2 评价指标

为了验证本文模型的有效性,我们介绍了四个评价指标。首先,混淆矩阵如表1所示。

表1 类别混淆矩阵

精确率是指在模型预测为攻击样本中,预测正确的样本数的比重,如式(13)所示。

(13)

召回率是指在模型正确检测出攻击样本占总攻击样本的比重,如式(14)所示。

(14)

F1值是精确率和召回率的谐波平均值,如式(15)所示:

(15)

误报率是正常样本被误判为攻击样本数占总正常样本数的比重,如式(16)所示。

(16)

我们更侧重于召回率(Rec)和误报率(FPR)的值,因为异常检测的主要性能任务是考察攻击流量是否能被检测和是否将正常流量误判成异常。因为虚警可能会对网络安全的管理会造成负面的影响。

3.3 模型超参数

本文实验基于32 GB内存,Intel Xeon Processor E5-2600 v4处理器,Ubuntu 16.04操作系统。实验采用TensorFlow-1.6.0框架实现。

在实验中,设置学习率learning rate为1E-5,批次大小batch-size为32,γ值取0.9,并使用提前终止机制,如果训练3个epoch测试集的Recall值都没有提升,就选择提早结束(Early_Stopping)训练。数据每次训练出的模型都会受到之前模型的影响,同时也会影响之后的模型训练,因此我们在模型训练时使用滑动平均模型(Moving Average)控制参数更新前后的差距,从而减缓参数的变化幅度,使得模型更稳健,在本实验中我们设置decay值为0.999 9。

训练模块的核心是使用EB-GAN神经网络模型从训练数据中提出数据特征,利用RMSProp优化迭代实现权值更新。E、G和D使用到的激活函数分别是LeakyReLU、ReLU和LeakyReLU,并使用Dropout和Batch Normalization,在一定程度上避免了神经网络过拟合,提高了模型训练速度。

3.4 实验结果分析

在本文中,我们选择EGAN[22]、ALAD[23]、MAD-GAN[24]、AnoGAN[25]、DAGMM[26]作为Baseline进行对比实验。我们在表2中列出了全部的实验结果。EB-GAN模型的总体准确率为95.30%、召回率为96.81%、F1得分为96.05%。除此之外,我们还计算了误报率为1.17%。显然,本文模型比其他五个模型效果好;在实验过程中,EB-GAN模型网络崩溃的概率小于其他模型,收敛迭代快;EGAN、ALAD等模型需要约50 epochs才能达到收敛,而EB-GAN只需要约30 epochs即可收敛;AnoGAN、DAGMM模型虽然收敛快,但模型性能不佳,并且AnoGAN测试集所需时间远远大于其他模型。综上,EB-GAN模型优于其他Baseline模型。

表2 模型性能结果(%)

此外,为了验证Bi-LSTM和Attention的有效性,我们对使用LSTM或Bi-LSTM以及是否添加Attention进行了实验对比,结果如表3所示。使用Bi-LSTM的模型性能优于LSTM,添加了Attention的模型相对于no-Attention模型有了一定的提升。由此可见,Attention机制和Bi-LSTM在一定程度上都有效地提升了模型分类的性能。

表3 Bi-LSTM+Attention对比LSTM和Bi-LSTM(%)

4 结 语

本文针对原始GAN模型检测率不高、效率低等问题,对基于BiGAN的异常检测模型EB-GAN进行了深入研究,在KDDCUP 99 10percent公开数据集上验证了本文方法的有效性。实验证明,与其他的模型相比,EB-GAN模型的召回率和F1值均超过96%,性能优于现有的检测方法。

接下来的工作大致有两个方向,首先,我们将进一步探究异常检测的多分类问题,将所提出的模型扩展到多类版本,实现攻击类型的识别,并验证其在更大规模数据集如CICID2017[27]数据集上的性能;其次,我们将探究GAN的其他用途,比如使用GAN方法进行数据增强从而实现数据不平衡问题等。

猜你喜欢
鉴别器网络流量编码器
基于多鉴别器生成对抗网络的时间序列生成模型
基于多元高斯分布的网络流量异常识别方法
基于神经网络的P2P流量识别方法
卫星导航信号无模糊抗多径码相关参考波形设计技术*
基于FPGA的同步机轴角编码器
AVB网络流量整形帧模型端到端延迟计算
基于PRBS检测的8B/IOB编码器设计
阵列天线DOA跟踪环路鉴别器性能分析
JESD204B接口协议中的8B10B编码器设计
多总线式光电编码器的设计与应用