一种基于SA-SOA-BP神经网络的网络安全态势预测算法
2020-10-21张启坤尹毅峰
张 然,刘 敏,张启坤,尹毅峰
(郑州轻工业大学 计算机与通信工程学院,郑州 450002)
1 引 言
随着大数据、人工智能和互联网的高速发展及应用,网络结构的复杂化、数据的多元化以及网络协议的多样化,使得多层面、多形式的网络安全风险随之加剧.网络攻击方式也变得多样化,日渐向着分布化、规模化、复杂化等方向发展,而像入侵检测系统、防火墙等传统的网络安全防御手段已经不能满足现在高速、智能、多源的网络安全需求,我们需要更加先进、优化的技术手段和方式方法去防范网络安全事件的发生.
安全态势感知最早运用在航空和军事领域,用来快速决策和处理复杂的航空和军事事件.1999年,Bass首次提出了网络安全态势感知(network security situation awareness,NSSA)的概念[1],后来态势感知被研究者们广泛地运用到网络安全领域.研究者们发现态势感知不仅可以进行网络安全态势评估,也可以用来进行网络安全态势预测,使原来的被动防御变为主动防御,可以很大程度的解决网络安全的防御问题,因此成为了当下的一个热点研究方向.
本文的主要工作如下:
1)提出了一种基于SA-SOA-BP神经网络的网络安全态势预测方法,利用改进的BP神经网络模型训练产生安全态势值来预测未来网络安全态势的状况以及发展趋势.
2)将人群搜索算法应用到BP神经网络中优化它的权值和阈值,提高基于神经网络的网络安全态势预测的精准度.
3)将模拟退火算法引入到人群搜索算法中来克服它的局部最优和收敛缓慢的问题,进一步提高安全态势预测的精准度和收敛速度.
4)应用不同优化算法进行实验对比,表明我们提出的基于SA-SOA-BP神经网络的网络安全态势预测方法的误差最小,精准度最高,收敛速度较快,可以有效预测未来网络安全态势的变化情况.
2 相关工作
目前,网络安全态势预测的研究已经非常广泛,国外对这方面的研究相对比较早.文献[2]将现有的网络安全状况预测机制分为三大类,并就每种模型的优缺点进行了回顾.文献[3]提供了有关网络安全中的预测和方法的概述,对攻击预测、意图识别、入侵预测和网络安全态势预测进行了讨论和比较.文献[4]提出了一种基于变长马尔可夫的预测模型,通过捕获攻击轨迹的顺序属性,实现对该攻击的预测.文献[5]提出了一种基于时间序列波动分析和预测的方法,实现对分布式拒绝服务(DDoS)活动的预测.文献[6]提出了基于语义Web的网络安全状态预测工具,它可以在系统配置不断变化的领域(如计算机网络)中应用.
近些年国内在网络安全态势预测方面也做了大量的研究,很多研究者们尝试将人工智能的方法引入态势感知领域来提高态势评估和预测的准确性.文献[7]提出了一种基于灰色关联分析和支持向量机的网络安全态势预测方法,该方法采用灰色关联分析法(GRA)对网络评估指标进行加权分析,利用支持向量机(SVM)算法对预测过程进行仿真,提高了预测的精准度.文献[8]提出了一种基于改进的深度神经网络模型的入侵检测方法,该方法利用自编码器对数据特征学习、降维和去冗,利用深度神经网络分类,再通过多层网格搜索算法优化,很大程度上提高了精准度和训练速度.文献[9]提出了一种基于时空维度分析的网络安全态势预测方法,解决了未来安全态势要素值的新变化以及周围节点安全态势要素对态势预测的影响,但此方法受提取的态势要素值的影响较大,另外该方法中用到了脆弱性预测算法,它的随机性较大,对预测的准确性有影响.文献[10]提出了一种基于隐Markov模型的实时网络安全态势预测模型,可以有效的提高预测的实时性,但是HMM模型存在参数估计的效率性问题.文献[11]提出了一种基于优化RBF神经网络的SDN网络安全态势评估方法,该方法在SDN网络中能全面提取态势指标,再通过改进的K-means和PSO算法优化RBF神经网络,在一定程度上提高了态势评估的准确性和性能,但在提取态势指标时还存在不足.文献[12]提出了一种基于模拟退火算法和变步长学习策略优化BP神经网络的评估模型,克服了传统BP神经网络反馈误差慢和易陷入局部极值的局限性,提高了评估的精准度.文献[13]提出了一种基于MapReduce和SVM的网络安全态势预测模型,该模型使用杜鹃算法优化SVM的参数,并使用MapReduce对SVM进行分布式训练,以提高训练速度.文献[14]提出了一种基于IFS-NARX模型的网络安全态势预测方法,该方法具有较高的学习效率,可以更及时、准确地预测网络安全态势.文献[15]提出了一种基于灰色神经网络的云环境中网络安全态势预测方法,该方法用于解决云环境中现有的网络安全态势预测在准确性和实时性能方面的局限性.这些预测模型和方法是近几年研究中比较常用的,主要有基于向量机模型、时间序列分析模型、要素分析方法、隐Markov模型、神经网络模型等,这些改进的方法相比传统方法在一定程度上提高了评估预测的效果,但是这些方法面对收集到的海量数据,在准确性和效率上还不理想,无法适应动态多变的网络安全需求.
人群搜索算法(SOA)是一种智能搜索算法,应用较为广泛.在前面的研究中我们采用SOA优化BP神经网络并应用于网络安全态势预测,从一定程度上提高了预测的精准度,但SOA存在搜索后期易陷入局部最优即“早熟”现象和收敛缓慢的问题.为了克服这个问题,本文又将模拟退火算法(SA)引入人群搜索算法(SOA)并与BP神经网络相结合,对基于SA-SOA-BP神经网络的网络安全态势预测算法进行研究和仿真实验.
3 基于SA-SOA-BP神经网络的网络安全态势预测
BP(Back Propagation)神经网络是1986年由Rumellhart和McCelland为首的科学小组提出[16].由于BP神经网络结构简单,可调整的参数多,训练的算法多,鲁棒性和自我学习能力强,并且可操作性好,因此它是目前应用最广泛的神经网络预测模型之一[17].BP神经网络主要是通过反向传播算法反复调整网络的权值和阈值,直到得到最优的权值和阈值,再经过不断地学习和训练,使输出数据与真实值尽量地一致,最后当输出的误差平方和小于指定的误差时,训练完成,保存最优连接权值和阈值.但是它的初始连接权值和阈值难以准确获得并且迭代次数多、运算速度低,不能保证收敛到全局极值点.针对BP神经网络的这些局限性,大多数的研究都是通过智能优化算法寻找最优权值和阈值来弥补BP神经网络的不足,比如采用粒子群算法(PSO)优化BP神经网络[18],采用遗传算法(GA)优化BP神经网络[19]等.
为了弥补BP神经网络的局限性,本文将人群搜索算法(SOA)应用到BP神经网络中,迭代寻找其最优权值和阈值.但是SOA算法在寻找最优个体的过程中易陷入局部最优和出现收敛缓慢等问题,因此又将模拟退火算法(SA)引入到人群搜索算法(SOA)中,提高它的全局搜索能力,并将模拟退火算法优化的人群搜索算法(SA-SOA)与BP神经网络相结合进行网络安全态势预测,以此提高基于BP神经网络进行网络安全态势预测的效率和准确性.
3.1 人群搜索算法
人群搜索算法(Seeker Optimization Algorithm,简称SOA)是一种较新的启发式随机搜索算法[20].它主要研究和分析人类在随机搜寻过程中的智能行为,依靠人类的社会经验,同时结合进化的思想,以搜索最优位置为核心,通过利己、利他、预动和不确定这四种搜索策略行为对其进行建模,确定人群搜索的方向和步长,然后不断地更新位置,获得最优解.SOA算法的优点在于它简单,概念明确、清晰、易于理解、收敛速度快、收敛精度高.其计算步骤主要包括:
1)搜索步长的确定
在确定步长时,需要对个体最优适应度值进行降序排列,并给每个个体赋予索引号作为模糊推理的输入,本文是使用高斯线性隶属函数来表示搜索步长的模糊变量的输出,它可以很好的将第i个个体最佳适应度值线性的映射到最小和最大隶属度之间,映射公式如下:
(1)
uij=ui+(1-ui)*rand(j=1,2,3,…,D)
(2)
上式中,ui为第i个个体对应的隶属度;Indexfitnessgbest(i)为第i个个体最佳适应度值的索引号;sizepop=30,sizepop为种群规模;Umax=0.95和Umin=0.0111分别表示最大和最小函数隶属度;uij表示在j维探索空间中目标函数值i所对应的隶属度;根据公式(1)和公式(2)得到最佳适应度值个体对应的隶属度,再根据公式(3)确定步长:
(3)
上式中,aij表示为第i个搜寻者在j维搜索空间的搜索步长,δij为高斯隶属函数的参数,其值由下列公式确定.
δij=H(t)*|zbest-5*rands(1,10)|
(4)
(5)
zbest表示为全局最佳;rands(1,10)表示为[1,10]之间的随机实数;H(t)表示第t次迭代的权重函数值,在迭代的过程中是不断的变化,它受最大迭代次数和当前迭代次数的影响,其中maxgen=100.
2)搜索方向的确定
在确定搜索方向时,依据个体最佳和全体最佳与当前个体相比较确定搜索方向是利己、利他还是预动方向.
(6)
(7)
(8)
基于SA-SOA-BP神经网络的网络安全态势预测算法是以三个方向的随机加权几何平均数为标准确定搜索方向,其计算公式如下:
(9)
(10)
在上式中,W为惯性权值,φ1和φ2为[0,1]内均匀分布的常数.t为当前迭代次数,取值范围为[2,maxgen]之间的整数,Wmax=0.9为权重最大值,Wmin=0.1为权重最小值.
3)位置更新
计算得到个体探索的方向和步长之后,要对个体的位置进行更新.位置更新公式如下:
(11)
人群搜索算法属于一种优化算法,一般都是通过此算法去优化另一种算法或模型,使优化后的算法或模型具有更好的准确性、稳定性、收敛性和有效性等.它为一些传统的预测模型提供了帮助.
3.2 模拟退火算法
模拟退火算法(Simulated Annealing,简称SA)最早是由Metropolis[21]在1953年提出,并由Kirkpatrick[22]等成功引入组合优化领域.其思想是对高温固体退火降温过程进行模拟,通过加温、等温和冷却这三个过程,将系统的能量看成优化问题的目标函数,其能量随着温度的降低也随之下降,当温度缓缓降温并趋于零时,此时既是能量最低状态,也是得到相对全局最优解的时刻[23].SA算法具有较强的鲁棒性、隐含并行性、广泛的适应性,以及全局搜索能力,它主要利用Metropolis算法并适当控制温度的下降过程,以一定的概率接受劣质解,跳出陷入局部极值的陷阱,从而提高算法的全局收敛性.SA算法在大多数情况下也是用于优化另一种算法或模型,很少单独使用.
人群搜索算法(SOA)具有收敛速度快和精度高等优点,但同时也易陷入局部最优,即出现“早熟”现象,原因是人群搜索算法在搜索后期,当搜索步长趋于零时,仍不能搜索到全局最优解.为了解决这一问题,本文将模拟退火算法(SA)引入到人群搜索算法(SOA)中,SA算法在搜索寻优过程中会以一定的概率接受劣质解,即SA算法既能接受优解又能接受恶解,从此避免了SOA算法陷入局部最优.
1)初始化温度
在退火算法中,初始化温度的确定很关键,它将会直接影响算法的初始性能,若确定不好,最终可能导致无用的搜索和增加搜索时间.初始温度确定如下:
(12)
上式中,fitnesszbest表示全局最佳适应度值.α为初始接受概率,一般取值为[0.2,0.5].
2)退火速率的控制
Tt+1=γTt(2≤t≤maxgen,0≤γ≤1)
(13)
上式中,γ为降温的速率,t为迭代次数.
3)突跳概率的确定
当退火温度确定时,当前最佳适应度值就以突跳概率代替以前个体最佳适应度值和全局最佳适应度值,则突跳概率的确定公式如下:
(14)
df=fitness(i)-fitnesszbest
(15)
上式中,fitness(i)为当前个体适应度值,fitnesszbest为全局最佳适应度值.如果df<0,则以概率1接受新解;否则以概率exp(-df/T)接受新解.从上式可以看出,在一定程度上退火算法可以帮助人群搜索算法避免陷入局部最优值,最后得到最优解.
3.3 基于SA-SOA-BP神经网络的安全态势预测算法
应用模拟退火算法优化人群搜索算法改进BP神经网络(简称SA-SOA-BP神经网络)的网络安全态势预测方法的主要步骤如下:
Step 1.预处理样本数据,再根据样本数据的特点确定BP神经网络的结构,并初始化BP神经网络的连接权值和阈值.
Step 2.初始化种群个体、种群规模、最大迭代次数、空间维数、最小最大隶属度、权重的最小值最大值.
Step 3.初始化退火的温度、降温速率、突跳概率.
Step 4.将预处理过的样本数据代入适应度函数中,计算个体的适应度值,找出全局最佳、个体最佳、个体最佳适应度值和全局最佳适应度值.此算法是以用训练数据训练BP神经网络得到的预测值与真实值之间的误差绝对值和作为个体适应度值.
Step 5.初始化经验梯度方向、搜索步长和方向以及高斯函数的参数δij.确定搜索策略,即搜索方向的确定,根据公式(6)-式(7)计算可得;确定经验梯度的方向,根据公式(9)计算可得;确定高斯函数的参数δij,根据公式(4)-式(5)计算可得;确定搜索步长的大小,根据公式(3)计算可得;根据计算得到的步长和方向按公式(11)更新位置,更新个体最优和群体最优以及它们的适应度值.
Step 6.Metropolis准则的引入.在全局最优适应度值的邻域内选择一个搜寻者,按公式(15)计算当前个体的适应度值与全局最佳适应度值的差值df.如果df<0,则以概率1接受新的位置,否则以概率exp(-df/T)接受新的位置,然后更新个体最优位置gbest和群体最优位置zbest.
Step 7.降温处理,根据公式(13)控制温度.
Step 8.判断是否满足循环的终止条件,即是否超过最大迭代次数和种群规模.如果没有,继续迭代寻优,跳转至Step 5.
Step 9.得到最佳网络权值和阈值,并赋值赋给BP神经网络的随机初始阈值和权值.
Step 10.训练及预测.将处理过的训练数据输入该模型,经过训练,得到具有预测能力的SA-SOA-BP模型,再将测试数据输入该模型,得到预测态势值,分析结果.
基于SA-SOA-BP神经网络的安全态势预测算法流程如图1所示.
4 实验与结果分析
本文将模拟退火算法(SA)引入人群搜索算法(SOA)优化BP神经网络应用于网络安全态势预测中来提高预测的准确性和收敛性.实验以《网络安全信息与动态周报》2015年第1期-2017年第7期所发布的网络安全数据作为实验数据,它主要以感染病毒的主机数量、被篡改的网站总数、被植入后门网站总数、境内网站的仿冒页面数量和新增信息安全漏洞数量作为评价指标.这五方面可以比较全面的反应现代网络安全的状况,可以作为评价每周的网络安全基本态势的指标.为了实验方便,这里将优、良、中、差、危五个安全等级转化为数字等级,如表1所示.
图1 基于SA-SOA-BP的网络安全态势预测算法流程图Fig.1 Flow chart of network security situation prediction algorithm based on SA-SOA-BP
表1 网络安全态势值转换表Table 1 Network security situation value conversion table
4.1 数据预处理
根据神经网络的特性,训练样本数量过多,将会增加训练的时间,数量过少将会降低预测准确度,所以本文选择101条数据为训练样本,10条数据为测试样本.为了提高预测的准确度,需要先对数据进行预处理和归一化操作.数据归一化的方法一般有两种,一种是归一化为[0,1],一种是归一化为[-1,1].本实验用到了后一种方法,归一化公式见公式(16),归一化后的结果如图2所示.
(16)
4.2 预测及结果分析
1)确定BP神经网络的网络结构.由上述所知网络安全态势共有五大评价指标,最后要化为一个安全等级,所以此实验有五个输入参数,一个输出参数,再根据公式(17)-公式(19)确定隐含层节点个数.
l (17) (18) l=log2n (19) 此公式中,n为输入层节点数;l为隐含层节点数;m为输出层节点数;a为0-10之间的正整数.再根据试凑法确定此实验的隐含层节点数为8,最终确定本实验的网络结构为5-8-1. 图2 样本数据标准化Fig.2 Standardization of sample data 2)验证应用SA-SOA算法优化BP神经网络进行网络安全态势预测的精准性和优越性.采用均方误差(MSE)、平均绝对百分比误差(MAPE)和均方根误差(RMSE)三个性能指标来衡量真实值与预测值之间的差异. 均方误差指标: (20) 平均绝对百分比误差指标: (21) 均方根误差指标: (22) 3)与其它优化算法的预测结果进行对比分析.图3显示了基于粒子群算法(PSO)、遗传算法(GA)、人群搜索算法(SOA)和SA-SOA算法优化BP神经网络进行网络安全态势预测的实验结果对比图,以及各个优化算法的预测值的折线图的变化趋势和真实值的折线图的接近程度. 图3 SA-SOA与其它算法优化BP神经网络的安全态势预测对比图Fig.3 Comparison chart of SA-SOA and other algorithms to optimize the BP neural network for security situation prediction 从图3可以看到,基于PSO算法优化BP神经网络得到的预测值折线图在开始部分相对于真实值折线图变化波动比较大,后期相对稳定;基于GA优化BP神经网络得到的预测值折线图主要在第6个测试样本数据点与真实值的折线图相差较大,其它部分比较接近;基于SOA优化BP神经网络得到的预测值折线图相对真实值的折线图变化波动有点大,不太稳定;而基于SA-SOA算法优化BP神经网络得到的预测值折线图整体上比较接近真实值折线图,比其它的智能优化算法相对真实值的折线图波动最小,与真实值的折线图更接近,更吻合. 表2给出了PSO、GA、SOA及SA-SOA优化BP神经网络进行网络安全态势预测得到的10个测试值以及与真实值之间的绝对误差. 表2 预测数据分析表Table 2 Prediction data analysis table 从表2可以看出各个算法在10个测试样本数据点得到的预测值以及它们与真实值之间的绝对误差的具体数值,整体上看基于模拟退火算法改进的SOA-BP算法的误差更小,这说明基于SA-SOA-BP算法进行网络安全态势预测的准确性更高. 表3分别计算了PSO、GA、SOA、SA-SOA优化BP神经网络进行网络安全态势预测得到的预测值与真实值之间的均方误差、平均绝对百分误差以及均方根误差. 从表3可以宏观地看出,基于SA-SOA-BP神经网络的网络安全态势预测算法得到的预测值与真实值之间的均方误差、平均绝对百分比误差和均方根误差三个衡量指标值相对其它优化算法得到的衡量指标值都是最小,这从宏观角度表明了基于SA-SOA-BP神经网络的网络安全态势预测算法比其它三种算法具有更高的精准性和有效性. 表3 精准度对照表Table 3 Accuracy comparison table 由于在本实验中是用训练数据预测误差绝对值和作为个体适应度值,个体适应度值越小,说明该个体越优.因此个体最优适应度的变化情况既可以反应算法的收敛情况,又可以反应训练数据集的训练过程.图4给出了PSO、GA、SOA和SA-SOA优化BP神经网络算法在迭代寻优过程中最优个体适应度值的变化趋势. 图4 最优个体适应度值变化对照图Fig.4 Comparison chart of optimal individual fitness value changes 从图4中可以看出,PSO-BP算法在开始时得到的最优个体适应度值相对较高,并且自第25次和第62次迭代时开始长期陷入局部极值,跳出局部极值的时间较长,最优个体适应度值的最小值为21.727;GA-BP算法在第4次迭代时陷入局部极值,经过30次迭代才跳出了局部极值,但是之后又陷入了局部极值,并一直到最后没有再跳出局部极值的陷阱,并且此算法是所有算法中最早陷入局部极值的算法,最优个体适应度值的最小值为23.837;SOA-BP算法在前期的优化效果虽然比较好,但是在自第42次迭代开始陷入局部极值后,一直陷入局部极值中没有跳出,最优个体适应度值的最小值为22.957;SA-SOA-BP算法是最不容易陷入局部最优的算法,多次跳出了局部极值的陷阱,其最优个体适应度值的最小值达到20.699.另外在第84次迭代时,SA-SOA-BP算法首先达到了最小的适应度值20.699,而SOA-BP算法在此时并没有达到最小的适应度值,说明了在100次迭代内SA-SOA-BP算法的收敛速度相对较快达到最小的适应度值.从图4的最优个体适应度值的变化趋势可以看出,采用SA-SOA优化BP神经网络进行预测的收敛效果比PSO、GA和SOA算法优化BP神经网络进行态势预测的收敛效果更好,其适应度值在趋于平稳时值最小.综上所述,SA-SOA-BP算法的收敛性效果相对较好,速度相对较快. 本文将模拟退火算法引入人群搜索算法来优化BP神经网络,提出了一种基于SA-SOA-BP神经网络的网络安全态势预测方法,解决了BP神经网络权值和阈值难以确定和SOA算法在搜索后期收敛速度缓慢和易于陷入局部最优等问题,增强了人群搜索算法的全局寻优能力,加快了算法的收敛速度,提高了网络安全态势预测的准确性.对比实验结果表明,基于SA-SOA-BP神经网络的网络安全态势预测算法比SOA优化BP神经网络、GA优化BP神经网络以及PSO算法优化BP神经网络的预测结果更为稳定、准确,并具有更好的稳定性和收敛性.下一步的研究将与其它智能预测算法进行对比,进一步寻找精度和效率更高的网络安全态势预测方法.4.3 算法收敛性分析
5 总 结