随着网络技术的快速发展和普及,网络在人们的日常生活中扮演着越来越重要的角色,网络安全问题也变得越来越突出.为了应对这些问题,网络安全态势感知越来越受到关注.近几年,深度学习的快速发展加快了网络安全态势感知的发展.网络安全态势感知主要有三大核心功能,分别是网络安全态势要素提取、网络安全态势评估和网络安全态势预测[1].文献[2]针对支持向量机(SVM)在样本较多时训练时间较长的问题,提出了一种基于MapReduce的SVM态势预测算法.与传统模型相比,该预测模型提高了预测准确率,减少了训练时间.文献[3]比较了几种网络安全态势预测方法,认为粒子群(PSO)算法优化的径向基(RBF)神经网络具有更好的表现,但是所用数据集的样本量太少,不适合具体的一个网络去预测某种攻击.文献[4]将门控循环单元(GRU)和注意力机制结合用于态势预测,并用PSO算法进行超参数寻优,实验表明:该模型在不同的预测时长下具有较小的均方误差,但该文所用的样本量较少,在样本较多的情况下,PSO算法用于超参数寻优将花费较高的代价.文献[5]将改进的卷积神经网络应用于网络安全态势预测,相比传统的卷积神经网络,该方法预测值更接近真实值,但是与循环神经网络相比,卷积神经网络在时序问题上不具有优势.文献[6]使用长短期记忆(LSTM)网络搭建了一个三层的网络,LSTM单元内部使用ReLU作为激活函数,在KDD数据集上的准确率为90.56%,不是足够高.针对上述问题,本研究将Transformer[7]用于网络安全态势预测,并使用样本量较多的UNSW-NB15数据集和AWID数据集.Transformer在并行化计算和长距离依赖学习方面具有较大优势,其他方法不具备这样的优势.并行化计算在数据集较大的情况下有利于提高训练速度,Transformer是直接建立词与词之间的关系,能够更好地获取长距离依赖信息.但是Transformer原始模型对本领域不能完全适用,尤其是编码器内部的两个残差连接,它要求输入输出的维度一致.与机器翻译相比,本研究所在领域分类任务相对简单,但是当特征维度过大时,残差结构会造成模型学习参数过多,进而导致模型训练时间长和过拟合等问题.以常用的KDD数据集、UNSW-NB15数据集和AWID数据集为例,文献[8]使用的KDD数据集在one-hot编码后有131维,文献[9]使用的UNSW-NB15数据集在one-hot编码后有198维,而文献[10]提供的AWID数据集仅原始特征就有154维.由于常用的网络安全数据集的特征维度都相对较大,因此降维具有现实意义.为了实现降维和提升预测准确率,本研究提出一种GRU-Transformer网络.将GRU放在Transformer之前,用来实现特征的降维,以达到降低训练代价和提升准确率的目的;Transformer用来提取具有时序关系的特征;结合全局平均池化和Dropout机制设计一个特殊的预测层,以实现预测和减缓过拟合问题.该设计的优势在于,GRU-Transformer既兼具了Transformer的原有优势,又减少了参数量太多带来的负面影响.实验证实了本研究的降维效果,GRU-Transformer比Transformer训练时间更低、泛化能力更强,而且与现有的一些算法相比,所提出的GRU-Transformer综合表现更好.1 网络安全态势预测模型根据提出的GRU-Transformer网络,本研究设计了如图1所示的网络安全态势预测模型.原始数据集输入预处理层.在预处理层,经过数据过滤、数值化、标准化和时间序列化后,数据集输入GRU-Transformer网络,可得到低维的时序特征.低维的时序特征输入预测层,预测是否会遭受网络攻击.10.13245/j.hust.220508.F001图1网络安全态势预测模型2 GRU-Transformer网络的构建给定输入X=(x1,x2,...,xT),本研究构建的GRU-Transformer网络结构如图2所示,图中:T为时间步长;ŷT+1为预测的结果.图2中的GRU层就是GRU单元根据数据的时间序列顺序提取特征.10.13245/j.hust.220508.F002图2GRU-Transformer网络结构2.1 GRU层GRU是由文献[11]提出的一种算法,使用门控机制控制特征信息的流动,GRU仅有两个门,分别为重置门rt和更新门zt,计算方式为rt=σ(Wrxr+Urht-1);zt=σ(Wzxt+Uzht-1),式中:σ为sigmoid激活函数;t∈{1,2,…,T};ht-1为前一个时间的隐藏状态;Wr,Wz,Ur和Uz为权值矩阵.通过重置门rt,可以得到一个新的隐藏状态h˜t,即h˜t=tanh(Wxt+U(rt⊙ht-1)),式中:tanh为激活函数;W和U为权值矩阵;⊙表示逐元素相乘.通过更新门zt,可以得到当前隐藏状态ht,计算方式为ht=ztht-1+(1-zt)h˜t,式中的当前隐藏状态ht就是本研究降维的结果.2.2 位置编码为了让网络模型充分利用序列的顺序,在数据输入编码器之前,使用位置编码处理已经提取的特征,位置编码主要使用正弦函数和余弦函数,即P(p,2i)=sin(p/1 0002i/dmodel);P(p,2i+1)=cos(p/1 0002i/dmodel),式中:p为当前位置;2i为偶数的维度;2i+1为奇数的维度;dmodel为输入特征的数量;当下标含2i时,P表示维度为偶数时获得的位置信息,当下标含2i+1时,P表示维度为奇数时获得的位置信息.2.3 编码器Transformer遵循常用的编码器-解码器结构[11-12],因此Transformer由编码器和解码器组成.本研究主要使用图3所示的编码器,为了防止网络退化和加速收敛,编码器内部还使用了残差连接和层归一化.10.13245/j.hust.220508.F003图3编码器2.3.1 缩放式点积注意力这里的注意力指的是自注意力机制,这也是Transformer在长距离依赖学习方面具有优势的原因,缩放式点积注意力函数(Aattention)计算方式为Aattention(Q,K,V)=sotfmaxQKT/dkV,式中:dk为特征维度;Q和K为dk的输入,分别表示注意力的查询和键;V为特征维度为dv的输入,表示注意力的值;softmax为用于多分类的激活函数.dk可以对点积起到缩放作用,防止得到的点积过大.2.3.2 多头注意力机制多头注意力机制的实质是多个注意力计算结果拼接之后的线性变换,该机制可以使模型使用在不同位置得到的不同特征信息,多头注意力函数(MMHA)的计算方式为MMHA(Q,K,V)=Concat(h1,h2,…,hh')WO,式中:Q,K和V分别为注意力的查询、键和值;下标h'表示总的头数;WO为权值矩阵;Concat为向量拼接操作;hi为第i头的特征,且i∈{1,2,…,h'},hi由前面提及的缩放式点积注意力得到,即hi=Aattention(QWiQ,KWiK,VWiV),其中WiQ,WiK和WiV均为第i头的输入对应的权值矩阵.2.3.3 前馈网络前馈网络(FFN)的作用是防止模型输出的退化[13],主要由使用了一个ReLU作为激活函数的两个线性变换构成,前馈网络操作函数(FFFN)的计算方式为FFFN(x)=max(0,xW1+b1)W2+b2,式中:W1和W2为权值矩阵;b1和b2为偏置项;x为前馈网络的输入;max表示取最大值操作.2.4 预测层本研究通过编码器得到的特征,如果全部展开输入到全连接层进行预测,那么会导致全连接层参数太多,因此考虑使用全局平均池化.因考虑到超参数的调整,不能完全使用全局平均池化来替代全连接层,故本研究在全连接层之前加一个全局平均池化,减少全连接层须要优化的参数,以减缓过拟合问题.上述全局平均池化是从减少全连接层须要优化的参数的角度来减缓过拟合问题,这里所述的Dropout[14]机制则是在全局平均池化的基础上以一定概率选择性的忽略某些单元,以减缓过拟合问题.2.5 态势预测流程如图4所示,基于GRU-Transformer网络的网络安全态势预测模型的具体操作流程如下.10.13245/j.hust.220508.F004图4基于GRU-Transformer网络安全态势预测流程图步骤1 获取网络安全相关的数据集,做初步的数据集预处理,包括数据过滤、数值化、标准化和数据集时间序列化.数据过滤主要是丢弃一些无实际意义的属性,数值化主要是使用one-hot编码将分类型特征转为数值,标准化主要是减少特征之间数值大小的差异,时间序列化主要是将当前数据和历史数据相结合.最后,根据网络攻击的危害程度,设置态势值.步骤2 在步骤1处理的数据集上,划分出训练集和测试集.步骤3 将预处理后的训练集送往搭建的GRU-Transformer网络进行训练.首先,从训练集中选取一批样本在GRU-Transformer网络前向传播,得到结果之后反向传播并使用优化器优化网络;然后,将测试集送入GRU-Transformer网络前向传播;接着,将结果与上一次的测试结果对比,若比上一次的泛化性能好,则保存本次训练的网络后再继续训练,否则继续上述过程,直至达到训练循环的次数.步骤4 将测试集送入步骤3最终保存的GRU-Transformer网络进行预测,并将预测的态势值导出.3 仿真实验与分析3.1 数据集描述为克服KDD数据集的缺点,文献[15]创建了UNSW-NB15数据集,该数据集存在10种流量数据类型,每个样本包含49个属性,其中两个属性表示标签.数据集共有4个原始CSV文件,本研究实验使用UNSW-NB15_2.csv和UNSW-NB15_3.csv作为训练集和测试集.AWID数据集是文献[10]在真实网络环境下创建的网络安全数据集,该数据集包含155个属性,其中一个属性表示标签.本研究采用AWID数据集的AWID-CLS-R-Trn文件和AWID-CLS-R-Tst文件作为训练集和测试集.3.2 UNSW-NB15数据集预处理UNSW-NB15_2.csv和UNSW-NB15_3.csv这两个文件的数据某些特征包含有缺失值,某些特征并没有实际意义,因此原始数据须要通过进一步处理才能参与模型的训练.3.2.1 数据过滤在这一阶段,丢弃9个属性,分别为srcip(#1)、sport(#2)、dstip(#3)、dsport(#4)、stime(#29)、ltime(#30)、ct_flw_http_mthd(#38)、is_ftp_login(#39)和ct_ftp_cmd(#40).前6个属性对于模型的学习来说没有实际的意义,例如,srcip(#1)和dstip(#3)只仅仅分别表示源主机、目的主机的IP地址.后3个属性则是含有大量缺失值或空值.在丢弃9个属性之后,除了两个标签,就剩余38个特征.各攻击类型的态势值则根据文献[6]设定.3.2.2 数值化由于38个特征中有三个分类型特征,即proto(#5)、state(#6)和service(#14),而这三个特征不是数值,因此须要使用one-hot技术将这三个特征转换为数值,在经过one-hot编码后,38个特征变为197个特征.3.2.3 标准化每一个样本的特征都有对应的数值,但是特征之间的数值大小有差异.为了减少这种差异对训练带来的影响,本研究采用标准化处理特征,即xij'=(xij-μj)/σj,式中:xij为第i个样本的第j个特征;μj为第j个特征的均值;σj为第j个特征的标准差.3.2.4 时间序列化这一步的目的是将当前数据和历史数据相结合,预测未来是否会出现攻击.例如:如果有7条根据时间顺序记录的样本,设置时间步长为4,那么可以依次取1→4,2→5和3→6作为输入的样本,标签则分别为第5,6和7个样本的标签.本研究使用的是Keras框架提供的接口将样本时间序列化.3.3 AWID数据集预处理AWID数据集同样包含缺失值和一些无实际意义的特征,须要通过进一步的处理,才能参与模型的训练.3.3.1 数据过滤本阶段分为两步:a.丢弃对学习无实际意义的特征,主要包括frame.time_epoch(#4)、wlan.ra(#76)、wlan.da(#77)、wlan.ta(#78)、wlan.sa(#79)、wlan.bssid(#80)、wlan.wep.iv(#140)和wlan.wep.icv(#142),例如wlan.da(#77)仅仅表示MAC地址;b.丢弃缺失率达到90%以上的特征,其余具有缺失值的特征,数值型特征用均值填充缺失值,分类型特征用mi填充缺失值,mi表示编号为i的特征存在缺失值.在数据过滤后,AWID数据集也须要将特征数值化,经过one-hot编码后,AWID变为157个特征.标准化和时间序列化与UNSW-NB15数据集的处理方式相同.3.4 实验环境和模型配置本实验使用tensorflow-gpu-1.15.0来搭建模型.模型总共训练150次,每一次训练已经转换为时间序列的样本3 072个,时间步长设置为4,预测层的Dropout的超参数设置为0.3.使用Adam[16]作为优化器,Adam的参数beta_1和beta_2分别设置为0.9和0.999,学习率初始设置为0.001.3.5 超参数的选择这里主要分析编码器的dmodel,h,dk,dv,dff和Pdrop这六大超参数对GRU-Transformer网络模型的影响.表1给出了本实验中使用的超参数的值和对应的实验结果,表中的时间表示训练一批样本和导出准确率所需的时间.10.13245/j.hust.220508.T001表1超参数的值和在UNSW-NB15上的实验结果组名编码器超参数准确率/%时间/sdmodelhdkdvdffPdrop13213232200.193.412123221616200.193.4171332488200.193.4401532844200.193.41319232488200.093.4211532488200.293.4071532488200.393.40815332488400.193.4361532488300.193.4251532488100.193.42415424488200.193.4181540488200.193.42115从表1可以看出,第一组实验的第三个参数配置比较适合.根据第一组实验,在总参数量不变的情况下,随着头数h的增加,训练一批样本花费的时间也随之增加,当h=4时模型的泛化能力较强;根据第二组实验,编码器内部Dropout设置为0.1时比较适合本模型,起到了提升泛化能力的作用,但是过大反而准确率下降;根据第三组实验,当dff=20时可获得最大准确率,其次为40,这部分总体表现不错,说明该超参数对模型的影响较小;根据第四组实验,dmodel过大或过小并不会显著改善泛化性能.基于该实验结果,后续的UNSW-NB15数据集的实验使用第一组实验的第三个参数配置.在该参数配置的基础上发现:当使用AWID数据集进行实验时,其余参数不变,Dropout设置为0.5,循环单元激活函数使用softplus有利于提高预测准确率.3.6 与Transformer的对比采用两个数据集对比GRU-Transformer 和Transformer这两种方法,Transformer为图2中除GRU外的模块.Transformer的输入没有经过降维,那么在UNSW-NB15数据集上dmodel=197,在AWID数据集上dmodel=157.GRU-Transformer依据上述实验dmodel均设置为32.表2给出了训练一次所需时间、模型训练的总参数量和测试集在150次训练中的最大准确率、对应的加权平均精确率和加权平均F1值.10.13245/j.hust.220508.T002表2两种态势预测方法的比较数据集方法准确率/%精确率/%F1值/%参数量/104时间/sUNSW-NB15Transformer93.34690.96091.7917.155 619GRU-Transformer93.44091.06591.9143.390 615AWIDTransformer92.40789.24090.6975.612 830GRU-Transformer93.06891.49992.0012.986 826由表2可以看出:在UNSW-NB15数据集和AWID数据集上,GRU-Transformer的准确率、精确率和F1值均取得了最佳结果.另外,在UNSW-NB15数据集上,Transformer的总参数量为7.155 6×104,而GRU-Transformer的总参数量为3.390 6×104.参数量下降带来的直接影响是训练时间的节省,从每训练一次需要19 s减少至15 s,每次可节省4 s,AWID数据集上也表现出了类似的效果,进一步说明GRU-Transformer优于Transformer.3.7 与其他方法的对比选取因子分析(FA)、主成分分析(PCA)和独立成分分析(ICA)验证Transformer算法下GRU的可靠性,并给出了在决策树(DT)、自适应提升(AdaBoost)、卷积神经网络(CNN)和深度神经网络(DNN)等算法上的实验结果.表3为使用UNSW-NB15数据集和AWID数据集得到的实验结果.由表3中各指标的评价结果可以观察到:GRU-Transformer方法在UNSW-NB15数据集上的准确率、精确率及F1值均取得了最佳结果;GRU-Transformer在AWID数据集上的精确率和F1值也取得了最佳结果,准确率表现次之.根据这三个指标的结果,相对于其他方法,本研究的GRU-Transformer方法在两个数据集上的综合表现最好.10.13245/j.hust.220508.T003表3不同方法的比较结果方法UNSW-NB15数据集AWID数据集准确率/%精确率/%F1值/%准确率/%精确率/%F1值/%DT88.97589.28889.12880.94987.33883.876DNN93.34390.18391.73291.75391.27290.725CNN93.31090.82991.79492.62786.62589.402AdaBoost92.39089.26990.58689.12887.38888.242Transformer93.34690.96091.79192.40789.24090.697FA-Transformer93.39090.97891.85392.08487.69789.447PCA-Transformer93.34990.52691.74493.10789.75490.814ICA-Transformer92.22289.15590.55492.20785.02288.469GRU-Transformer93.44091.06591.91493.06891.49992.0014 结语本研究提出一种GRU-Transformer网络,并将其用于网络安全态势预测.该方法首先利用GRU对样本的特征进行降维,然后将降维后的样本特征输入Transformer,最后使用全局平均池化处理提取的特征,以减少全连接层的参数量,结合Dropout机制减缓过拟合问题.在两个数据集上的对比实验表明:该方法具有更好的综合表现,优于现有的部分算法.在下一步的研究中,为了使Transformer更适合于网络安全态势预测任务,可调整其编码器的内部结构.

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读