魏青梅,李宇博,应雨龙
(1. 空军工程大学 基础部,陕西 西安 710051; 2. 陕西职业技术学院 基础课部,陕西 西安 710038;3. 上海电力大学 能源与机械工程学院,上海 200090)
随着计算机网络技术和应用的飞速发展,网络结构和交互场景产生了复杂、多样的变化,使得网络安全成为关系到网络各个领域的重点问题。为了避免、减少网络安全风险对各个领域产业造成的损失,必须做好网络安全的评估工作。根据网络结构中的历史信息完成对网络安全态势的预测和安全状况评估是网络安全的研究重点之一[1]。通过对网络安全的评估,能够在评估结果的基础上提升网络防御的主动性,同时为网络安全的操作和决策提供重要的依据和手段,使得网络安全问题产生的危害降到最低[2]。
早期的网络安全评估采用专家评价方式,由受邀专家以网络结构历史数据为基础,完成对网络结构今后态势的打分,然后通过聚类的手段把分离程度偏大的专家评判结果剔除,将剩下的有意义的评判结果通过求解平均值给出结果[3]。随着人们对网络安全的关注程度不断提升,网络安全的评估不能仅限于当前时间点的专家评估意见,网络的历史数据对网络安全的评估起到重要作用。实际上,由于专家评估存在主观偏差,而且不同专家的评判结果也会造成冲突问题,因此在专家评估数据的基础上,一些研究者通过Markov随机过程完成对网络安全态势的预测。此类方法通过Markov链构建安全评估模型,解决了多个专家评价冲突问题,并且以多位专家的评估意见作为综合预测结果也可以抵消部分主观偏差带来的影响,但是,Markov链通常只能解决局部网络结构的安全态势预测,缺少对全局安全数据的评估过程。为了解决传统Markov链存在的局部问题,反向传播神经网络(BPNN)[4]、遗传算法(GA)、蚁群算法(ACO)等机器学习算法被引入到网络安全评估中,并结合专家知识给出推理规则,构建有效的网络安全风险评估模型。BPNN通常在价格预测[5]、指标评估中有大量应用,它的引入使得网络安全的评估更具有客观性。此外,由于专家的主观态度通常有较多的冲突性,因此有学者从决策的角度出发,采用Dempster-Shafer(D-S)证据推理算法[6],以决策表的重要属性为依据给出基本概率分配,构建相应的网络安全评估模型。
目前,采用模糊评价体系对专家主观评价结果进行模糊化,再利用机器学习模型对模糊特征进行分类,获得网络安全评估结果成为主流。现有的模糊评价体系利用专家的主观评价分数,计算安全隶属度矩阵,然后使用隶属度的方式构建相应的模糊评价权重矩阵,再将权重矩阵放入机器学习模型中回归,预测出当前系统的网络安全结果[7]。实际上,专家的主观偏差在一定时间段内将会不断积累,最终对网络安全态势预测结果的精度和鲁棒性产生较大的影响。
为了解决现有的机器学习模型也无法处理数据在时序前、后之间的关系,导致积累的主观偏差对网络安全的评估带来更大影响的问题,本文中提出一种结合D-S证据理论与循环神经网络(RNN)的网络安全态势预测算法。该方法首先以专家评价为基础构建网络安全的系统角色,并由三角模糊函数获取专家评估指标; 然后引入D-S证据理论完成评估指标的筛选、推理和校正,为网络安全态势构建损失矩阵和可能性矩阵; 最后以损失矩阵和可能性矩阵为特征输入至循环神经网络中,获取网络安全态势预测结果。由于循环神经网络能够较好地处理时序数据,对时序前、后关系影响网络安全评估的结果也有较好的处理效果,因此有望获得正确率更高、鲁棒性更好的网络安全评估结果。
由于传统的模糊评价系统缺少一定的客观评估指标,因此会产生大量冲突的隶属度,导致D-S证据推理出现大量的评估指标被舍弃,最终导致评估特征较差,进而影响安全评估结果。本文中将构建一个双重模糊评估体系,并且构建相应的评估特征矩阵。具体步骤如下:
1)确定网络安全系统的几个重要角色,排除对网络安全系统影响较小的角色;
2)引入三角模糊函数,对专家的主观评估分数进行客观量化;
3)采用D-S证据理论对专家的客观量化结果完成筛选、推理和校正,处理其中大部分有冲突的数据;
4)在筛选的专家态度基础上,构建损失矩阵特征和可能性矩阵特征,用于后续的安全信息评估。
三角模糊函数是一套构建元素性质的量化标准,用于确定专家评判网络安全系统过程中的元素性质[8]。对于模糊系统的评价来说,清晰的文字化描述语言不仅无法给出精确的模糊定义,而且也无法给予具体而直观的感受。由于主观评判冲突较为严重的目标无法通过清晰的定义给出,因此通常采用三角模糊函数(x0,x1,x2)进行描述,其中x0、x1为描述值的上界和下界,x2为描述值的最大可能取值。假设(x0,x1,x2)和(y0,y1,y2)分别为2个三角模糊函数,两者之间的欧式距离计算为
(1)
根据欧式距离计算即可获得不同模糊函数之间的距离。在网络安全态势预测过程中,可以通过该距离对主观评判结果进行客观量化,然后采用改进的加权D-S证据推理手段对量化后的安全评判信息进行筛选。
D-S证据推理是一个重要的检测、识别工具,它采用信任函数进行不确定描述,与传统的概率论相比,具有更严密的逻辑性,并且预测结果也有更高的鲁棒性[9]。一般情况下,对于无法使用精确概率表达的问题,都可以采用D-S证据推理予以表达,由概率分布区间来代替准确概率值表达该问题的不确定性,因此,在模糊评估问题网络安全态势时通常采用D-S证据推理完成不确定性表达。
假设网络安全态势所有可能的取值可以通过互不相容的集合Ψ来表示。假设A表示该集合上的一个子集,该集合的基本概率赋值函数m(A)∶2Ψ→[0,1]满足
该集合上的信任函数Tru(A)满足
1)Tru∶2Ψ→[0,1];
该集合上的似真函数Lke∶2Ψ→[0,1]可以定义为
假设m(A)>0,那么A是信任函数的焦元,焦元组成的集合称为集合的核。该集合采用Dempster规则,定义了2个信任函数Tru1、Tru2及其概率m1、m2。在信任函数及其概率基础上,可以通过焦元A1,A2, …,Ak和B1,B2,…,Br定义D-S关系K,即
(2)
在2个焦元A、B的基础上,两者相交焦元C的概率函数为
(3)
当参数K≠1时,可以确定1个基本概率值m;当参数K=1时,2个概率m1、m2的组合出现矛盾,无法组成基本概率组合。当出现多个证据时,一般采用一对多(one-versus-rest,OVR)的方式,两两进行概率组合,获得一个最终的基本概率结果。
根据上述定义的基本D-S证据推理可以发现,当多个证据之间的冲突较小,不出现某种极端偏差时,D-S证据推理规则可以很好地靠近确定性较高的因素,但是,当多个证据之间冲突过大,甚至出现某些证据对立时,D-S证据的计算过程会将所有的数据丢弃,融合效果较差。由于网络结构的多样性,采用D-S证据推理对网络安全进行评估,正常的多证据冲突会由筛选、推理和校准过程产生大量数据的丢弃,因此使得最后的融合结果更差。为了解决多证据冲突对D-S证据推理规则产生的不利影响,需要在2个焦元的概率m1、m2上计算两者之间的相容度R12[10],
(4)
式中u为相容程度系数。以2个焦元为基础,还可以将相容度的计算延伸至n×n个变量空间中,获得相容度矩阵
(5)
该矩阵中的数值表示2个证据之间相互支持的程度,支持程度越高,说明可信度越高。绝对相容程度Si的计算公式为
(6)
理想状态下,相容程度为n-1,那么最终的可信程度Ti为
(7)
改进的D-S证据推理在计算证据融合之前,将每个证据的可信度作为基本概率的权重,通过加权的D-S证据推理重新计算基本概率赋值,即可避免因证据冲突过大而导致大量数据丢弃的情况。
在双重模糊评价体系结构中,将评价的各个部分看作各种角色。为了简便,本文中在双重模糊评价体系中定义了以下4个关键角色:
1)专家评估角色,Ex={ex1, ex2, …, exk},k=1, 2, …;
2)威胁信息角色,Th={th1, th2, …, thn},n=1, 2, …;
3)资产信息角色,M={m1,m2, …,mt},t=1, 2, …;
4)脆弱元组角色,P={p1,p2, …,ps},s=1, 2, …。
以上述4个关键角色为基础,构建双重模糊评价矩阵,包括风险发生后的损失矩阵和风险发生前的可能性矩阵。损失矩阵M(mij)n×s中的第i种角色与第j种资产之间的脆弱影响采用mij来表示,并且该脆弱影响结果在实际计算中被归一化至区间[0,1]。可行性矩阵N(nij)s×t中的第i种威胁与第j种脆弱元组之间的威胁影响采用nij来表示,并且该脆弱影响结果在实际计算中被归一化至区间[0,100]。在实际情况下,安全评估是在一定时间范围内的,时间的变化可能会导致安全状态发生变化,但是变化到哪个等级专家也无法评估出来。此时在改进的D-S理论下,采用加权的方式给出损失矩阵和可能性矩阵的取值,
mij=wijmij|Ex1+wijmij|Ex2+…+wijmij|Exk,
i=1, 2, …,j=1, 2, …,s;
(8)
nij=wijnij|Ex1+wijnij|Ex2,…,wijnij|Exk,
i=1, 2, …,j=1, 2, …,t。
(9)
在加权D-S证据理论的运行时,可以同时获得M∈n×s和N∈s×t来作为模糊特征,客观表达网络安全态势的评价。由于安全评估过程是随时间变化的,这2个特征矩阵也随着时间不断变化,属于时间序列特征,一定时间段内的状态都对安全评估结果产生影响,因此在评估中要选择循环神经网络。
RNN是深度神经网络的一种形式。不同于传统的BPNN仅仅只有1~2层隐含层,RNN以时间序列为节点组成多个隐含层,隐含层与隐含层之间具有前、后时序关系,排在时序前面的隐含层将会对排在时序后面的隐含层产生影响,因此这种神经网络结构可以有效地挖掘出隐含在时序前、后关系中的深度特征,通过这些深度特征将能够对预测问题带来更好的预测结果。实际上,网络安全态势是随着时间不断变化的一种时间序列数据值,存在于时间序列上的多个节点都将对发生网络安全隐患的节点产生影响,因此,对网络安全态势特征的预测并不能仅依靠单个数据节点中的推理特征,而应将D-S推理特征看作时间序列,通过对前、后推理特征的时间序列挖掘,从而更好地获得网络安全态势预测的结果。依托于深度RNN强大的时序数据处理能力,通过基于时间序列的BPNN算法可以挖掘出D-S证据推理特征中的隐含时序特征,从而获得更精确的网络安全态势预测结果。
RNN对时间序列特征的处理效果良好,通过计算前、后时间之间的关系,有效提取时间前、后之间的相关性,挖掘出随着时间变化的关键特征,对未来时间的预测有较好的效果[11]。传统RNN的隐含层信息传递几乎贯穿整个网络,其梯度会随着时间的推移而逐渐消失或呈指数增大,导致误差反向传播无法继续进行,误差无法传递至RNN前端部分。为了克服该缺陷,需要采用长短时记忆(LSTM)单元结构[12]对隐含层之间的信息传递进行限制。LSTM单元结构使用门结构对信息传播进行限制,保证在误差反向传播过程中能够保留误差,进而对网络的权重完成更新。常见的RNN网络架构和LSTM单元结构如图1所示。
将LSTM单元作为RNN隐含层,可以有效地保证梯度的变化。该记忆单元由4个受限门组成,分别是输入门、记忆门、输出门和状态单元,这4个结构经过一些限制算法来保留误差梯度。LSTM需要进行公式组合,给出各个门对信息传递的限制。
(a)RNN结构 (b)LSTM单元结构f—各个门采用的激活函数; g—单元的激活函数; h—最终输出结果的激活函数。图1 循环神经网络(RNN)结构及长短时记忆(LSTM)单元结构
1)输入门,
(10)
(11)
2)记忆门,
(12)
(13)
3)状态单元,
(14)
(15)
4)输出门,
(16)
(17)
5)输出结果,
(18)
式中:w为层与层之间的连接的权重,如wil表示输入层到输入门之间的权重;t为采样时间点;x为输入的样本特征;b为隐含层的输入;c为单元的输入;a表示各层的输出结果;I、H、C分别为输入、隐含和输出神经单元的个数;l、φ、ω分别为输入门、记忆门和输出门;f为各个门采用的激活函数;g为单元的激活函数采用;h为最终输出结果的激活函数。
神经网络的各个权重一般采用随机数初始化,为了使神经网络对输入的特征收敛,一般采用误差反向传播算法。该算法通过计算当前网络的输出值与实际值的误差作为更新权重的依据,从网络的最后向网络的前端逐渐传播。在网络结构中,其隐含层的长度与采样点个数相同,可以通过在时间点之间构建基于时间的误差反向传播算法(BPTT)[13],完成误差L从输出层到输入层的传递,从而修正RNN的权重,
(19)
(20)
通过公式组合,逐渐将误差传递至各个权重。
1)输出偏导数,
(21)
2)输出门偏导数,
(22)
3)状态单元偏导数,
(23)
(24)
4)记忆门偏导数,
(25)
5)输入门偏导数,
(26)
通过这些偏导数即可确定出各个权重更新的方向,经过若干次迭代后,即可获得使网络收敛的权重。在实验中,采用已经训练好的RNN模型,可以对D-S证据理论求解的特征评价矩阵进行预测。在网络处于每个时间段中都可以将提取到的特征评价矩阵输入至RNN中,对网络结构的后续安全态势给出评估的预测结果。
采用开源的MIT Lincoln Lab2000DARPA数据集[14](https://download.csdn.net/download/weixin_ 43211736/10929505)作为网络安全态势评估预测算法的测试数据集。该数据集共包含58种最为典型的网络攻击方式,并首次将影响网络安全态势的攻击划分为5个主要类别,分别是Probe、DoS、R2L、U2R和Data,每个攻击类别中都含有以时间序列为基础的攻击样本数据。本文中共挑选出512个攻击样本,每个样本为1 000×1型的时序数据,数据值表示当前网络安全状态值。实验数据共有512 000个网络安全态势值,将其中的80%样本作为RNN的训练数据集,剩下的20%样本作为验证数据集,完成对网络安全态势的预测。图2所示为MIT DARPA数据集构成的网络拓扑结构图。该数据集中分别给出了网络边界和网络内资产分布状态,有利于提取时序状态下的双模糊评估特征矩阵,根据D-S证据理论提取到的特征描述矩阵。
首先通过专家的主观打分过程给出5个等级的评价数据,然后经过双重模糊处理和加权D-S证据推理,获得双重模糊特征矩阵,最后通过RNN处理,给出每个时间段内的安全风险评估等级,表1所示为专家评估安全等级与三角模糊函数对应关系。
实验中邀请30位网络安全专家对网络架构的安全等级进行评估。为了验证双重模糊评价系统的有效性,从中提取3位具有代表性的专家进行验证,这3位专家在评估等级上的冲突较大,使用传统D-S证据推理难以获得更好的结果。假设资产集合为M={m1,m2},威胁信息角色为Th={th1, th2},脆弱元组角色为P={p1,p2,p3},经过3位代表性专家对网络安全评估后,采用加权D-S证据推理可以得到专家主观安全评估等级,如表2、3所示。
图2 MIT DARPA数据集网络拓扑结构图
表1 专家评估安全等级与三角模糊函数对应关系
表2 专家对损失等级的评判
表3 专家对可能性等级的评判
经过式(8)、(9)关于损失矩阵和可能性矩阵计算,可以得到如下2个特征矩阵:
M=
N=
以上述结果为基础,将损失矩阵和可能性矩阵作为特征输入至RNN,得到对3位专家的归一化评估结果R,
从归一化评价结果中可以看出,经过改进的加权D-S证据推理获得的3位专家结果的差异性较小,不会因冲突过大而导致丢弃某些重要因素。实验结果表明,本文中提出的改进的加权D-S证据推理对网络安全态势评估的结果与对应3位专家对网络安全态势评估的结果基本保持一致。经过该过程生成的损失特征矩阵和可能性特征矩阵能够在深度学习模型中获得更好的网络安全评估结果,并使得结果更具有鲁棒性。
经过30个专家的安全评估打分,并提取双重模糊特征矩阵后,需要进行训练的特征维度包括损失特征矩阵和可能性损失矩阵,在时间T内,构成的输入特征为S∈2T,因此本文中构建的RNN的输入神经元为2个,深度为T,输出直接给出网络安全评估预测值,输出层由1个神经元组成。在RNN的训练中,由于该特征属于非线性特征,因此在LSTM单元的输入和输出激活函数f上选用ReLu激活函数,而RNN中的LSTM单元的激活单元则需要更强烈的激活,g函数采用tanh激活函数,h函数采用sigmoid激活函数[15]。在权重更新的学习率上,选用更适合RNN的RMSprop方法。为了防止过拟合,每一轮BPTT迭代完成后随即丢弃部分权重,即随机丢弃权重的比例d为0.5,网络训练最大的迭代次数为300[16]。
循环神经网络的训练和网络安全态势预测验证时所用的实验环境,采用Ubuntu16.04、CUDA 8.0、cudnn v5.1、opencv3.1(2.4.10)、caffe的深度学习配置,实验硬件环境为Intel(R) i7-6700K中央处理器(CPU)、GTX 1080Ti图形处理器(GPU)、64 GB内存的硬件配置。在训练过程中,对RNN共执行了300次迭代,保证其能够在训练中趋近于稳定的误差输出。待训练收敛后,将验证集的100个样本输入至已训练好的模型中,进行网络安全态势的预测。图3所示为本文中提出的算法的输出值与实际输出值的对比,表4所示为10个关键威胁点的网络安全态势检测对比结果。
为了比较本文中提出的算法与传统的浅层学习方法的预测结果,在实验条件相同的情况下,分别采用BPNN、GA、ACO等3种方法进行网络安全态势预测,结果如图4所示。表5所示为10个关键威胁点的网络安全态势在不同算法下的对比值,表6所示为不同算法的迭代时间与均方误差。
RNN—循环神经网络。图3 本文中提出的算法的输出值与实际输出值的对比
表4 10个关键威胁点的网络安全态势检测对比结果
注: RNN—循环神经网络; ACO—蚁群算法;GA—遗传算法; BPNN—反向传播神经网络。图4 不同算法的网络安全态势预测对比
表5 10个关键威胁点的网络安全态势在不同算法时的对比
表6 不同算法的迭代时间与均方误差的对比
从实验结果的对比可以看出:1)在关键威胁时间点的网络安全评估上,双重模糊评价体系具有更全面的优势,特别是在处理专家预测结果冲突的情况下,结合深度预测模型后能够获得更精确、鲁棒性更好的安全评估预测结果,因此该模型在网络安全评估预测上是可行的。2)RNN的整体检测效果更好,均方误差结果更小,且网络安全态势预测的效果更好。3)由于RNN深度模型的层数较多,需要花大量时间进行迭代、优化、计算,因此时间复杂度更高,这主要由深度模型的特性决定的。
本文中提出了一种结合D-S证据理论与RNN的网络安全态势预测算法,显著提升了网络安全态势预测的准确率、效率和鲁棒性。在该算法中,由三角模糊函数构建模糊评价系统指标,并通过D-S证据理论校正了模糊评价系统指标,构建了损失矩阵和可能性矩阵,随后采用RNN由损失矩阵和可能性矩阵进行网络安全态势的预测。该算法运用D-S证据理论解决了专家评价冲突和偏差等一系列问题,并且RNN也能够保证对网络安全态势预测的精度和鲁棒性。由于受限于数据集中有限的安全评估数据,因此,今后的工作将集中在构建更为完善的网络安全态势预测数据集,添加更多的安全评估数据,并构建更为完善的预测模型,以获得更优良的预测精度和鲁棒性。