张 然,潘芷涵,尹毅峰,蔡增玉
郑州轻工业大学 计算机与通信工程学院,郑州 450000
随着互联网技术的飞速发展,网络空间安全问题也变得日益复杂,网络攻击事件频发,规模不断扩大,公共互联网安全威胁数量总体呈大幅上升趋势,全球网络安全正面临着严峻的挑战。传统的网络安全防御措施已无法满足复杂的网络安全需求,因此需要采用更加先进的技术和手段来防范网络安全事件的发生。在此背景下,网络安全态势感知技术应运而生。
网络安全态势感知的概念最早由Bass[1]提出,包括感知、评估和预测三个层次。自从网络安全态势感知概念提出以来,国内外专家学者对网络安全态势感知技术做了大量研究。Wang等人[2]将卷积神经网络与长短期记忆循环神经网络结合用于电力网络的态势感知。Wu等人[3]将模糊聚类的分析方法、博弈论和强化学习无缝集成,提出一种基于大数据分析的安全态势感知机制,并运用于智能电力网络的安全保护与检测。Tao等人[4]采用堆栈式自编码网络对态势数据进行降维处理,来减少数据的存储开销并提高运算效率。Wang等人[5]通过引入模糊c-means、混合层次遗传算法和最小二乘法对传统RBF(radial basis function,RBF)神经网络的参数和结构进行优化来评估网络安全态势。常利伟等人[6]引入多源异构数据融合策略来解决单点网络数据无法有效地分析网络安全状况的问题。冯学伟等人[7]利用反正切和修正函数来设计证据理论中的经验函数并将证据理论运用到网络安全态势评估中。Smith[8]开发和改进网络安全检测工具以应对日益复杂的互联网攻击事件。Yegneswaran等人[9]利用Honeynets进行态势评估,通过构建安全态势曲线来分析当前网络安全状况,但是该曲线并不能在所有遭受攻击的时刻都能呈现出明显的效果,因此该态势评估方法还不够全面。Kotenko等人[10]使用可视化技术显示一组安全指标用来评估网络安全态势以及网络保护机制的效率。Holsopple等人[11]总结了从可视化到算法威胁预测的相关工作,并描述了一个将态势评估过程和模型与需求相关联来增强态势感知的以人为本的框架。这些态势评估模型或算法在原有基础上有了一定的改进,但是在评估的准确性和算法的收敛性方面仍有提升的空间。
在之前的工作中采用麻雀搜索算法(sparrow search algorithm,SSA)优化BP神经网络(back propagation neural network,BPNN)并应用于网络安全态势评估,与其他BPNN评估模型相比,该模型在一定程度上提高了态势评估的效率和准确性,但SSA算法往往会出现因收敛速度快陷入局部极值的问题。为了解决该问题,本文引入模拟退火算法(simulated annealing algorithm,SAA)对SSA进行改进,提出一种基于SAA-SSA-BPNN的网络安全态势评估模型,并通过实验验证该模型评估的精准性和效果。
网络安全态势指标体系是否科学合理直接影响着网络安全态势评估的最终结果。因此,在进行态势评估之前,先根据一定的原则[12]构建合理客观的态势指标体系,对网络安全态势评估工作具有重要意义。
有很多因素都会对网络态势造成影响,而且它们之间相互起到制约作用。因此,建立客观合理的态势指标体系是一项相当复杂的工作,需要在构建指标体系时遵循一定的原则,采用合适的方法和步骤,反复统计分析、综合权衡和归纳,这样才能构建出科学合理的态势指标体系。网络安全态势指标体系的构建主要遵循以下几个原则:相似相近原则、分层原则和动静结合原则。相似相近原则指需要把特性相似的指标归为一类考虑,如数据包的分布和数据包大小的分布;分层原则指对网络产生不同程度影响的指标需要分别考虑,如有针对子网的指标,有针对宏观网络的指标;动静结合原则指需要把特性不同的指标分开考虑,如流量和网络拓扑结构。
网络安全态势指标体系可以从整体上描述网络的安全状况。按照态势指标体系构建原则,本文构建了一个树状层次结构的安全态势指标体系,如图1所示。该指标体系分为两个一级指标、四个二级指标和二十个三级指标,分别从脆弱性、威胁性、容灾性和稳定性四方面对网络系统的安全风险和运行状态特性进行描述。
图1 网络安全态势评估指标体系Fig.1 Network security situation assessment index system
本文基于该指标体系对网络系统所遭受的安全威胁进行评估,使用威胁性指标下的五个三级指标:感染病毒的主机数量、被篡改的网站数量、被植入后门的网站数量、仿冒网站数量和新增安全漏洞数量,设定每个指标的权重相等。实验数据采集自国家互联网应急中心《网络安全信息与动态周报》。
本文引入模拟退火算法(SAA)优化的麻雀搜索算法(SSA)来改进BP神经网络(BPNN)并应用于网络安全态势评估。首先根据所构建的指标体系,收集相应的态势数据并进行预处理,然后对SAA-SSA算法改进的BP神经网络进行训练,最后用生成的评估模型进行态势评估,并对输出结果进行分析。整个态势评估过程分为三部分,具体的态势评估模型如图2所示。
图2 基于SAA-SSA-BPNN的态势评估模型Fig.2 Situation assessment model based on SAA-SSA-BPNN
(1)数据采集与处理模块
构建指标体系并收集来自国家互联网应急中心《网络安全信息与动态周报》从2015年第1期至2021年第21期中的308条数据作为实验数据,对数据进行归一化处理,将其中298条数据作为训练集,10条作为测试集。
(2)生成态势评估模型模块
根据输入输出数据的特征确定BP神经网络的结构,利用SAA-SSA算法对BP神经网络的初始权值和阈值进行参数寻优,将得到的最优参数组合赋给BP神经网络后输入训练数据对其进行训练,生成SAA-SSABPNN态势评估模型。
(3)评估与结果分析模块
将测试数据输入到SAA-SSA-BPNN态势评估模型中得到态势评估值,依照态势等级的划分对态势评估结果进行分析,判断当前网络安全状况和等级,方便管理员全面掌握当前的网络安全态势,以便及时采取措施。
BP神经网络(BPNN)是1986年由Rumelhart等提出的一种根据误差反向传播算法训练的多层前馈神经网络[13]。BP神经网络由三层构成:输入层、隐含层和输出层。它通过从后层不断向前层反传的误差信号来调整权值和阈值的大小,从而达到减小误差的目的,直到全局误差小于预期误差,或学习次数达到最大学习次数时停止学习和训练。因为BPNN结构简单且具有强大的自我学习能力,所以适用于解决内部机制复杂的问题。但是BPNN的初始连接权值和阈值是随机产生的,且迭代次数多、收敛速度慢,不能保证每次迭代都收敛到全局极值点。针对这个问题,一般通过引入智能优化算法来解决,比如采用遗传算法(GA)[14]或粒子群算法(PSO)[15]来优化BP神经网络,但是这两种算法的收敛速度还不够理想。为此,本文采用优化后的麻雀搜索算法(SSA)来改进BP神经网络,应用SSA算法自身局部搜索能力强、收敛速度快的特点对BP神经网络进行改进;但SSA算法的全局搜索和跳出局部极值的能力较弱,而模拟退火算法(SAA)与之正相反,它具有较强的全局搜索和跳出局部最优的能力,因此又引入SAA算法对SSA算法进行优化,用SAA算法优化后的SSA算法改进BP神经网络并应用于网络安全态势评估。
1953年,Metropolis[16]提出模拟退火算法(simulated annealing algorithm,SAA),但SAA算法一般不单独使用,而是常用于组合优化领域。模拟退火算法的原理是对高温固体退火降温过程进行模拟,经历加温、等待、冷却这三个步骤。通常在实际应用中会将系统的能量用函数f来表示,将系统温度用控制参数T来表示,f在内能随温度降低的同时也随之下降,当温度下降到常温时内能减少到最小。当T=0时的系统状态对应于寻优问题的整体最优解[17]。模拟退火算法根据Metropolis准则来控制温度的变化过程,可以一定的概率接受劣质解的同时有效避免算法陷入局部最优[18]。其算法步骤如下。
步骤1初始化退火温度。
初始化退火温度T k(令k=0),Tk表示如下:
公式(1)中,f g表示全局最佳适应度值,α为初始接受概率,取值区间为[0.2,0.5]。
步骤2计算退火速率。
公式(2)中γ为降温的速率,t为迭代次数。
步骤3根据Metropolis接受准则进行判断。
公式(3)中P为突跳概率,公式(4)中f i为当前个体适应度值。如果Δf<0,则以概率1接受新解,否则以概率exp(-Δf/T k)来接受新解。
麻雀搜索算法(sparrow search algorithm,SSA)是2020年提出的一种新型群智能优化算法。该算法受到麻雀捕食特点的启发,将捕食过程中的麻雀分为发现者和加入者两类角色,发现者负责为麻雀种群寻找食物并且为整个种群提供觅食的方向,而加入者则选择跟随发现者并与其争夺来获得食物[19]。根据它们之间的关系以及麻雀遇到捕食者时做出来的反应建立数学模型,构建出一种高效的群智能优化算法。SSA算法的优点是局部搜索能力强和收敛速度快。其算法步骤如下。
步骤1初始化麻雀种群并定义相关参数,如n为麻雀种群规模,d表示变量的维数,f表示适应度值,t表示当前迭代数。麻雀种群可表示为如下形式:
步骤2根据适应度值函数计算每只麻雀的适应度值fi,然后按照适应度值大小排序,选择出当前最佳适应度值fg和最差适应度值fw以及对应的位置Xbest和Xworst。
步骤3在麻雀搜索算法中,由于发现者处于主动地位,所以它们可以获得更大的觅食搜索范围且具有较好的适应度。当预警值R2<安全值ST时,表示此时周围的环境安全,当R2≥ST时,表示种群中的一些麻雀已经意识到了危险,所有麻雀都需要迅速飞到安全地方进行觅食。发现者的位置更新可表示为公式(6):
其中,j=1,2,…,d。itermax是一个常数,表示最大的迭代次数。Xi,j表示第i只麻雀在第j维中的位置信息。α∈(0,1]是一个随机数。Q是服从正态分布的随机数。L表示每一个元素都为1的1×d矩阵。
加入者在整个觅食过程中都会监视着发现者,当它们意识到发现者找到更好的食物时就会立刻飞过去与发现者抢夺新的食物,如果争夺过程赢得了发现者就会立即获得该发现者的食物,否则就重复执行上述操作。当i>n/2时,表明第i只加入者的适应度值较低,此时这只麻雀正处于非常饥饿的状态,因此它要飞到其他地方寻找食物以获得更多的能量。加入者的位置更新可表示为公式(7):
其中,Xp是发现者所占据的最优位置。A表示每一个元素都被随机赋值为1或-1的1×d的矩阵,且A+=AT(AAT)-1。
在麻雀觅食的过程中,当有捕食者出现时,处于种群最外围的麻雀会先意识到危险的存在。当它们意识到危险时即当前麻雀个体的适应度值fi>当前全局最佳适应度值fg时,这些群体最外围的麻雀会为了获得更好的觅食位置努力向安全区移动。当fi=fg时,表明处于中间位置的麻雀意识到了危险,需要向安全区移动以减少它们被捕的风险。意识到危险的麻雀的位置更新可表示为公式(8):
其中,β是步长控制参数。K是一个随机数,取值范围为[-1,1]。ε是最小的常数。
步骤4获得当前最优值。如果当前最优值比上一次迭代的最优值好的话就进行更新操作,否则不进行更新,并继续进行迭代直到满足条件为止,最终得到全局最佳适应度值fg和对应的最优位置Xbest。
尽管SSA算法具有局部搜索能力强、收敛速度快的优点,但其全局搜索能力和跳出局部最优的能力较弱。而模拟退火算法(SAA)在全局寻优上有很大优势,能有效避免算法陷入局部最优状态,且常被用于组合优化领域。因此,本文引入模拟退火算法(SAA)对SSA算法进行改进。
在全局寻优方面,将SAA与SSA并用,在SSA求解之后再进行退火处理,退火时重新产生一个新的麻雀位置用于对原位置Xbest进行调整。因此,公式(3)与(4)变为如下形式:
SAA-SSA算法通过新旧全局最优位置对应适应度值的差值来调整对新位置的接受概率P,从而得到最终的全局最优位置。
经过SAA改进的SSA具有全局搜索能力强、收敛速度快和不易陷入局部最优的优点,在后续实验中为BPNN寻找最优初始权值和阈值以及提高BPNN的收敛速度有很大的帮助。
基于SAA-SSA-BPNN的网络安全态势评估算法的具体步骤如下,流程图如图3所示。
图3 基于SAA-SSA-BPNN的态势评估算法流程图Fig.3 Flow chart of situation assessment algorithm based on SAA-SSA-BPNN
步骤1构建网络安全态势指标体系,对网络安全态势数据进行预处理,初始化BP神经网络的初始权值和阈值。
步骤2初始化麻雀种群并定义相关参数,如种群规模、空间维数、迭代次数等。
步骤3初始化退火温度、退火速率和突跳概率。
步骤4计算麻雀的个体适应度值fi,并将其排序进而选择出当前全局最佳适应度值fg和最差适应度值fw以及对应的位置Xbest和Xworst。
步骤5根据预警值R2和安全值S T的大小按照公式(6)更新发现者的位置,按照公式(7)更新加入者的位置,按照公式(8)更新意识到危险的麻雀的位置。获取当前全局最佳适应度值fg和对应的最优位置Xbest。
步骤7根据公式(2)进行退火操作,判断是否超过最大迭代次数和种群规模,若是则输出最优位置Xbest和其对应的最佳适应度值,否则跳转至步骤4。
步骤8获取最优权值和阈值,并将其赋值给BP神经网络作为初始权值和阈值。
步骤9训练神经网络。将预处理后的训练数据输入具有最优初始权值和阈值的BP神经网络模型中,计算BPNN隐含层和输出层的输出值,然后计算输出层的输出值与期望输出值之间的误差值,根据误差调整权值和阈值的大小使BPNN的输出值与期望输出值不断接近,直到迭代满足终止条件,此时训练完成,获得BPNN最终的最优权值和阈值。
步骤10态势评估。将测试数据输入到训练完的具有最优权值和阈值的BPNN模型中,输出得到态势评估值,然后结合网络安全态势评估等级表来分析当前网络安全状况。
本文将模拟退火算法(SAA)引入麻雀搜索算法(SSA)并对BP神经网络进行改进,以提高BP神经网络的收敛速度和效率且避免SSA算法优化的BP神经网络陷入局部最优。为了方便对网络安全态势状况进行分析,本文将网络安全态势评估等级量化为具体的态势值,并划分了五个级别,分别为:优、良、中、差、危,如表1所示。
表1 网络安全态势评估等级Table 1 Network security situation assessment level
本实验以网络系统所遭受的安全威胁为评估对象来测试SAA-SSA-BPNN网络安全态势评估模型的有效性,采集前面建立的指标体系中威胁性指标下的五个三级指标元素:感染病毒的主机数量、被篡改的网站数量、被植入后门的网站数量、仿冒网站数量和新增安全漏洞数量,这里设定每个指标的权重均相等。目前大部分研究使用的实验数据来自KDD99数据集或Honey Net项目公布的攻击数据集,但KDD99数据集距今已久且冗余数据过多,而Honey Net攻击数据集的影响因素又过于单一。因此,本实验采用国家互联网应急中心公布的从2015年第1期至2021年第21期的《网络安全信息与动态周报》中的308条数据,将实验数据分为两部分:(1)训练样本298条,用于训练SAA-SSA算法改进的BP神经网络;(2)测试样本10条,用于检验SAA-SSA-BPNN态势评估模型的评估效果。实验采用Matlab R2019a进行仿真,硬件环境为1.80 GHz CPU和8 GB内存,操作系统为Windows 10。
本实验通过归一化的方式对数据进行预处理。通常归一化的方式有两种:把数都归到[0,1]区间内,或是把有量纲表达式变为无量纲表达式。这里采用第一种方法,按公式(11)将实验数据都归到[0,1]区间内。
其中,Xmin和Xmax分别表示实验数据集中的最小值数据和最大值数据。X i为实验数据中第i个数据值,Yi为X i归一化后的值。
(1)评估结果对比分析
表2是采用遗传算法(GA)、粒子群算法(PSO)、麻雀搜索算法(SSA)和模拟退火算法(SAA)优化的麻雀搜索算法(SSA)这四种算法改进BP神经网络进行态势评估得到的十个态势评估值与国家互联网应急中心(CERT)给出的态势评估值的对比情况。其中,国家互联网应急中心的态势评估值由其对应的态势评估等级取值区间中间值量化而来。
表2 评估值对比表Table 2 Comparison table of assessment values
为了更直观地分析态势评估结果,这里将表2中的评估值用折线图表示出来,如图4所示。从图4可以看到,四种评估模型的态势评估值曲线走势大致相同,都是在第3周出现小幅波动后在第6周达到峰值,第8周出现新的最低值后再次上升,直到第10周出现新的峰值。GA-BPNN评估模型的态势值曲线前期波动不大,只有在第8周时出现最低值,第8周后又恢复到与前几周持平的状态;PSO-BPNN评估模型的态势值曲线是四种模型中最不稳定的,在第3周、第6周、第8周和第10周都出现了极值,波动较大;SSA-BPNN评估模型与GA-BPNN评估模型的态势值曲线走势基本相同,但在前5周内态势值明显低于GA-BPNN评估模型;SAASSA-BPNN评估模型的态势值曲线明显地出现了三次峰值,分别在第3周、第6周和第10周,表明这10周内该网络受到了三次较大规模的攻击,整体态势值曲线波动幅度不大,较为稳定。将四种态势评估模型的态势值曲线与国家互联网应急中心量化后的态势值曲线进行对比,只有SAA-SSA-BPNN评估模型与之更加贴合。对图4进一步分析可知,在每次安全态势值曲线达到峰值后,态势值会随之下降,网络所面临的危险程度也会有所缓解,这说明被攻击网络的态势值和性能会随着攻击强度的改变而发生变化,态势值越高说明当前网络遭受的威胁性越大,网络安全状况越差,反之态势值越低说明当前网络安全状况相对良好。
图4 四种模型评估结果对比Fig.4 Comparison of assessment results of four models
表3给出了应用GA-BPNN、PSO-BPNN、SSA-BPNN和SAA-SSA-BPNN四种评估模型得到的评估等级,并与国家互联网应急中心给出的态势评估等级进行了对比。分析表3可知,GA-BPNN评估模型结果的态势等级与应急中心态势等级有6个测试数据点的结果不一致;PSOBPNN评估模型结果的态势等级与应急中心态势等级有4个测试数据点的结果不一致;SSA-BPNN评估模型结果的态势等级与应急中心态势等级有2个测试数据点的结果不一致;而SAA-SSA-BPNN评估模型在10个测试数据点上的态势评估结果等级与国家互联网应急中心评估结果的等级完全相同。因此,SAA-SSA-BPNN评估模型能最为客观地反应当前网络的安全态势状况。
表3 评估等级情况对比Table 3 Comparison of assessment levels
(2)误差分析
表4是GA-BPNN、PSO-BPNN、SSA-BPNN和SAASSA-BPNN四种评估模型的十个态势评估结果值与国家互联网应急中心态势评估值之间的绝对误差值对比情况。
表4 绝对误差值对比Table 4 Comparison of absolute error values
这里将表4中的绝对误差值用更为直观的折线图表示出来,如图5所示。分析图5可以发现,只有SAASSA-BPNN态势评估模型的绝对误差值曲线波动幅度最小,是四种态势评估模型中绝对误差值曲线最为平稳的且一直在最接近0误差值标线上下浮动。因此本文所提出的SAA-SSA-BPNN态势评估模型与另外三种评估模型相比具有更小的评估误差和更高的评估准确性。
图5 绝对误差值对比折线图Fig.5 Line chart of comparison of absolute error values
为进一步验证SAA-SSA-BPNN态势评估模型的准确性和优越性,采用均方误差(MSE)和平均绝对误差(MAE)这两个误差指标来衡量该模型的态势评估值与国家互联网应急中心态势评估值之间的差异情况。这两个误差公式表示如下:
表5为GA-BPNN评估模型、PSO-BPNN评估模型、SSA-BPNN评估模型和SAA-SSA-BPNN评估模型进行网络安全态势评估得到的评估值与国家互联网应急中心态势评估值之间的MSE和MAE。由表5可以明显看出,用SAA-SSA-BPNN评估模型进行态势评估所得到的态势评估值与国家互联网应急中心态势评估值之间的MSE和MAE明显比另外三种评估模型更小,这也说明SAA-SSA-BPNN态势评估模型具有更高的评估准确性。
表5 精准度对照Table 5 Accuracy comparison
(3)收敛性分析
在本实验中,将训练数据的评估误差绝对值之和作为个体适应度值,适应度值越小说明该个体越优。因此适应度值的变化情况也能代表该评估模型的收敛情况。将GA-BPNN评估模型、PSO-BPNN评估模型、SSA-BPNN评估模型和SAA-SSA-BPNN评估模型的收敛情况进行对比,如图6所示。
图6 最优个体适应度值变化情况对比Fig.6 Comparison of optimal individual fitness values changes
从图6可以看到,GA-BPNN评估模型一开始的适应度值相对较高,但在第4次迭代时开始陷入长期局部极值,在第54次迭代跳出后于第55次再次陷入局部极值,直到第99次迭代时收敛于最小值50.864 8;PSOBPNN评估模型在第5次、第11次和第15次迭代时多次产生波动,并在第16次和第46次迭代时分别陷入长期局部极值,直到第99次迭代时才跳出,最后收敛于最小值49.809 4;SSA-BPNN评估模型开始时适应度值最高,在第76次迭代时收敛于最小值48.495 3,比GA-BPNN评估模型和PSO-BPNN评估模型的收敛速度快且收敛值小;而SAA-SSA-BPNN评估模型的适应度值在最开始是四种模型中最小的,且适应度值曲线在迭代过程中多次跳出局部极值,在第62次迭代时收敛于最小值45.440 8,在四种态势评估模型中收敛速度最快且适应度值曲线趋于平稳时适应度值最小。因此,SAA-SSABPNN态势评估模型的收敛效果相较于另外三种评估模型的收敛效果更好,收敛速度最快,适应度值趋于平稳时值最小且不易陷入局部最优。
(4)时间复杂度分析
算法的时间复杂度很大程度上能反映出其优劣与否。BP神经网络算法的时间复杂度受样本规模n、最大迭代次数itermax和空间维度d的影响,时间复杂度为O(itermax×n×d2),当空间维度d较高时近似为O(d2)。采用SSA算法对BP神经网络进行改进后,其时间复杂度增加了O(itermax×n×d),因此SSA-BPNN算法的时间复杂度为O(itermax×n×d2+itermax×n×d)。当空间维度d较高时该算法的时间复杂度近似为O(d2),与BP神经网络算法的时间复杂度近似。本文为避免SSA算法陷入局部最优又引入了SAA算法对其进行优化,但该优化过程是在SSA算法迭代循环内完成的,没有额外增加循环次数,所以没有增加运算量,时间复杂度仍为O(d2)。因此,在空间维度d较高时对BP神经网络算法的两次改进基本都未增加其时间复杂度。
本文采用模拟退火算法优化的麻雀搜索算法来改进BP神经网络并应用于网络安全态势评估,提出了一种基于SAA-SSA-BPNN的网络安全态势评估模型,解决了麻雀搜索算法易陷入局部最优和BP神经网络的最优权值和阈值难以确定及收敛速度缓慢的问题,显著提高了评估的准确性和收敛速度。下一步的研究将与其他智能评估模型对比,寻找精度和评估效率更高的态势评估模型。