丁华东,许华虎,段 然,陈 帆
(上海大学 计算机工程与科学学院,上海 200444)
随着互联网的发展以及网络基础设施的不断完善,基于互联网的网络信息技术带给人们越来越多的便利,但与此同时也带来了潜在的安全隐患。为应对不断变化的网络安全威胁,人们提出多种安全技术来防范应对,如入侵检测、流量检测以及漏洞检测等[1],以期能从不同角度发现并消除网络中存在的安全隐患,达到保护网络环境安全的目的。由于当前网络空间的基本安全态势是“易攻难守”[2],因此网络安全态势感知(Network Security Situation Awareness,NSSA)技术成为研究热点。
目前针对网络安全态势感知的研究仍处于初级阶段[3]。文献[4]提出基于Markov博弈模型的网络安全态势感知方法,通过对多传感器检测到的数据进行融合,建立三方参与的博弈模型,使得评估能够实时运行。但该方法对大规模网络的评估效率较低,并且模型中的各个参数需要在真实的网络环境中不断测试,以满足不同行业的应用需求。文献[5]构建基于神经网络的网络安全态势感知模型,利用神经网络找出网络态势值的非线性映射关系,采用自适应遗传算法对参数进行优化从而感知网络安全态势。但该模型不能实现对未来网络安全态势的准确预测。文献[6]构建非等时距灰色Verhulst残差修正态势感知模型,首先利用相关模型对网络中的风险值做出预测,然后基于多级残差对精度进行修正,最后通过修正后的模型得到态势感知预测结果。但该文没有考虑残差序列的选取方式以及模型实现的时空复杂度。
针对上述方法的不足,本文构建一种基于贝叶斯网络的安全态势感知模型。对数据源中影响网络安全态势的各个指标进行层次化处理,通过贝叶斯方法计算各个指标的后验概率,并据此将底层指标逐级向上混合,最终得到网络空间整体安全态势评价指标。
网络态势是指网络内部系统状态、外部行为状态、内部用户状态之间相互平衡所构成的一个整体态势。态势感知最早来源于美国军方在军事对抗中所进行的研究[7],目标是使得军事博弈的双方指挥官能够获悉对方的军事行为状态从而做出有利于己方的军事判断。文献[8-9]将态势感知定义为感知一定时间和空间范围内的状态并进行理解和分析。文献[10]将态势感知应用于网络空间,提出了初步的网络态势感知的概念(NetSA),但并没有给出网络安全态势感知的明确定义[11]。
此后,许多研究人员开始对网络安全态势感知进行了研究。文献[12]将网络安全态势感知分为3个层次,即网络安全态势觉察、网络安全态势理解以及网络安全态势投射。其中:态势觉察主要完成对初始数据的提取并分辨初始数据中的关联信息,即对源数据进行降噪、规范化处理,得到具体有效的信息,主要目的是辨识出系统中的活动;态势理解主要对分辨出的关联信息进行理解,在此基础上分析当前的安全形势,判断是否发生安全攻击行为并对安全等级进行评定;态势投射主要完成这些活动意图是否会产生攻击的判断任务,即在前两步的基础上分析并评估各个活动对当前系统环境所造成的影响,判断其是否会对系统环境造成威胁,包括发现已经产生的威胁和预测可能产生的威胁。
本文将对源数据的预处理、数据信息的建模以及预信息的采集作为态势觉察层进行分类,而将与信息理解有关的机器学习模块以及初步态势的获取作为态势理解层进行分类。同时,对预信息的处理和对机器学习的评判之间需要不断进行反馈来修正最终的态势评级,将态势指标可视化和态势指标评级作为态势投射层进行分类。本文模型如图1所示,其中提出了“预信息”的概念。预信息指的是外部信息首次通过数据预处理并经过建模后所得到的先验信息,能够反映数据指标最原始的特性。该模型经过与机器学习过程的不断反馈最终得出系统的初步态势[13],然后经过数据可视化流程和相关专家知识得到系统的态势等级。
图1 网络安全态势感知模型示意图
贝叶斯网络是一种经典的概率图模型,其借助有向无环图刻画各个属性之间的相互依赖关系,并以条件概率表的方式表现属性之间的联合概率分布情况[14]。贝叶斯网络作为不确定知识推理的重要工具,具有很强的理论基础,能够大幅降低推理的困难度,从而在很多领域发挥重要作用。
一个贝叶斯网络可以表示为B=〈G,P〉的形式,需要说明如下:
2)P={P(Vi/PB(Vi)),Vi∈V}是一组条件概率的集合。参数P定量描述属性之间的依赖关系。假设属性Vi在G中的父节点集为Qi,则P中含有条件概率PVi|Qi=PB(Vi|Qi)。
图2所示为一个比较基础的贝叶斯网络结构。从中可以看出,贝叶斯网络由有向无环图G和条件概率表两部分组成。
图2 贝叶斯网络结构
在有向无环图G中可以有N个属性节点。对于具体的问题,每个属性节点可以是所求问题中的随机变量,而在网络安全态势感知中,属性节点可以是那些能够影响态势因素的影响因子,例如网络中存在的漏洞、外部的匿名攻击以及一些IDS报警信息等。属性节点之间的有向边一般表示的是节点之间的因果关系,所以,贝叶斯网络有时也被称为“信念图”。在有向边(Vi,Vj)中,Vi作为Vj的父节点存在,Vi的所有父节点所构成的集合可以用PB(Vi)来表示。贝叶斯网络对每个节点都有条件独立的要求,任何节点Vi与非Vi子孙节点集合A(Vi)中的所有节点条件独立,即I(Vi,A(Vi)/PB(Vi)),可以表示为:
P(Vi/A(Vi),PB(Vi))=P(Vi/PB(Vi))
(1)
在贝叶斯网络结构中,用P表示条件概率表。给定父节点集,假设每个属性及其非子节点后裔属性条件独立,则将属性v1,v2,…,vn的联合概率分布定义为:
(2)
以图2为例,联合概率密度分布可以定义为:
P(v1,v2,v3,v4,v5)=
P(v1)P(v2)P(v3|v1)P(v4|v1,v2)P(v5|v2)
从上式可以看出,v3和v4在给定v1的取值时独立,而v4和v5在给定v2的取值时独立。
贝叶斯网络模型由于具有良好的泛用性,因此使用率较高[15-16],其主要优点如下:
1)推理过程基于概率论。贝叶斯网络的建立严格基于概率推理,利用概率论计算有关节点的概率密度,从而增加了对于有关节点关联性之间的联系,对于不确定性知识的表述和推理更有把握。
2)条件独立性。因为贝叶斯网络对节点之间具有条件独立的要求,所以在计算某些节点后验概率时只要针对所求节点有关的节点变量信息进行计算即可,这样可以减少参与计算的节点信息量,从而降低算法的复杂度。
3)表示能力较强。贝叶斯网络能够处理定性的知识,也能够处理定量的知识,如某个特定节点和后验节点之间的因果关系就可以定性表达,而通过数学方法或相关专家经验得到的条件概率表就可以定量表达。
4)计算较为简单。因为贝叶斯网络属性节点之间相互条件独立,在节点信息判别以及对所求节点进行归纳推理过程中的复杂性大幅降低。获取信息时只需要考虑与节点有关的网络图即可,在推理过程中也只需要考虑相关节点的概率信息。
针对目前多数网络安全态势感知模型存在的不足,本文提出一种基于贝叶斯网络的NSSA混合模型。首先对能够影响网络安全态势的因素进行分类和评级,建立一种层次化的多级贝叶斯网络模型架构,然后利用贝叶斯方法对底层的影响因子进行指标上的逐级向上融合,直至成功到达最顶层,即网络态势层,通过最终得到的影响指标对当前网络的安全态势进行态势评估。若在融合过程中遇到变量连续化问题,则可考虑对连续属性采用概率密度函数[17-18]进行计算,从而得到离散化、适合态势评估的数据。
网络安全态势评估需要选取准确的数据来反映当前网络系统的态势。影响网络安全的因素较多,能够获取网络安全数据的形式也多种多样,例如系统日志记录、IDS监测数据以及一些设备的基础信息等[19]。本文根据以下原则来选取态势影响指标:
1)危险性。危险性指的是所选取的影响指标能够对既定网络环境造成多大的危害。举例来说,有的网络攻击如DoS所造成的危害仅仅只是让服务器停止一段时间内向外提供服务,而有的网络攻击如后台利用却能够在暗处获取网络系统内部的资料信息,一旦让黑客获得价值量极大的资料信息,所造成的危害不可想象。
2)普适性。普适性指的是所选取的影响指标应当能够反映网络态势中更普遍的信息,而不是仅仅反映态势的一面。例如,可以从各种设备中获取当前网络中的信息,但设备之间所反映的信息具有很大的差别,有的信息能够反映当前环境中的信息,而有的信息仅仅能够反映当前设备的信息。本文模型设计应当选取那些更能反映网络状况的信息。
3)健壮性。健壮性指的是所选取的影响指标应当信息含量丰富且更易于获取。使用此原则主要是因为虽然影响网络安全态势的因素众多,但有些影响指标并不容易获取且内容信息极少,例如黑客攻击信息,在当今的网络环境中很难第一时间就获得黑客的攻击资料,大多依靠亡羊补牢的方法来获悉,所以,获取此类信息的难度极大。
利用以上3个基本原则,本文分析网络安全态势影响指标,并对指标进行分类,分类结果如表1所示。其中:网元信息包括节点主机的基本信息,网络黑客开始入侵时往往会针对节点主机的特征选取特定的攻击方案,如主机为何操作系统,当前开放了哪些端口等;流量信息主要包括与当前网络环境进行交互的流量情况,一些恶意的暴力扫描软件往往会通过网络对当前系统环境进行大量的访问,此时会造成大量的流量信息;报警信息主要是利用系统自身原有安全防御措施所生成的警告或处理信息,此类信息一般具有比较重要的参考价值;漏洞信息具有时效性,反映了当前环境所存在的漏洞,而不同的漏洞所造成的危害并不相同;配置信息主要反映当前系统的环境配置情况,包括网络拓扑结构、配置参数等,此类信息对黑客攻击具有一定的参考价值。
表1 影响指标分类
为更好地突显不同影响指标对网络态势的影响程度,本文采用对不同影响指标进行分级的处理方法,即对影响程度较小的指标赋予较低的等级,而对影响程度较大的指标赋予较高的等级。从分层的角度去考虑,可将较低等级的指标放置在较低的层级,将较高等级的指标放置在较高的层级,这样能够使模型在进行融合处理时更重视比较重要的影响指标,从而更准确地评估网络安全态势。因此,在分级的过程中,本文遵循以下原则:
1)由于报警和漏洞信息类型的影响指标所带来的危害性较大,因此尽量将此类信息放置在高层,而尽量将其余信息类型的影响指标放置在低层。
2)尽量将同一类型的影响指标进行分层分布,而不是全部放置在某一层次,从而避免层次分布过于集中所带来的态势评估片面的问题。
3)低层的态势影响指标应尽可能多,高层的态势影响指标应尽可能少,使态势影响指标分级模型呈“金字塔”形。
基于以上3个基本原则和有关影响指标的重要程度,本文给出如图3所示的影响指标分级模型。
图3 态势指标分级模型示意图
在获得分级模型中各个层次所需要的原始数据后,将每个数据源作为属性,即贝叶斯网络中的随机变量来构建初始网络。在构建初始贝叶斯网结构时采用如下方法:首先通过专家知识建立初步的贝叶斯网络,然后通过计算后验概率的方法对网络进行重新修正[20]。
假设数据集D=(d1,d2,…,dn)是关于n个变量(x1,x2,…,xn)的观测值,变量G是有向无环图。在给定拓扑结构G的情况下,变量θG是与变量G对应的参数值。因此,可用概率分布P(G)来表示关于G的先验知识,当G给定时,θG用另一个概率分布P(Gθ)表示。修正函数表示为:
logaP(G,D)=logaP(D|G)+logaP(G)
(3)
其中,P(G)表示结构先验分布,一般假设其为均匀分布。函数P(D|G)称之为边缘似然函数,展开式为:
(4)
(5)
基于以上对态势指标的处理,给出本文模型对于安全态势生成的算法,该算法主要包括3个部分:数据源的预处理,态势指标的融合,安全态势的生成。算法描述如下:
算法顶层安全态势生成算法
输入各级影响指标的初始样本数据D
1)采集样本中的连续数据,构成连续数据集G,剩余的数据构成离散数据集M。
2)利用概率密度函数(见式(3))对数据集G进行离散化预处理操作。
3)对数据集G和数据集M进行重构,组成新的数据集D′。
4)对数据集D′中的数据按照态势指标分类表进行预分类。
5)利用式(1)将底层态势指标逐层向上融合。
6)生成网络安全态势评估值V。
本文实验采用KDD-CUP99网络入侵检测数据集。数据集被划分为两个部分:标识过的训练数据和未被标识的测试数据。训练数据集中包含1种正常的标识类型和22种训练攻击类型,如表2所示。
表2 KDD-CUP99标识类型
首先通过上文提到的影响指标分级模型对数据集中的数据建立初步模型,然后运用贝叶斯方法对底层影响指标逐层向上进行融合。运用本文模型对KDD-CUP99中的数据集进行安全态势评估,其中网络环境主要影响指标分布如图4所示,可以看出,多数网络行为是正常的,但也有相当比例的网络攻击行为,如smurf DoS攻击、neptune DoS攻击以及satan嗅探攻击等。
图4 影响指标分布
为进一步考察本文模型在时序上对于态势指标的生成情况,在数据集中提取一周时间内的网络入侵检测数据,以天为基本时间单位生成基于时序的态势指标评估结果。利用本文模型得到的指标评估网络环境所受到的攻击情况和基本网络态势,如图5所示。可以看出,周五、周六和周日的网络态势变化较大,而其余日期变化则较为平缓。
图5 态势指标评估结果
通过态势指标评估结果可以获得每一天的网络安全态势等级,分析网络安全态势的走势可以提前发现可能发生的网络安全危机,从而为网络系统的管理者提供预警,预防网络安全事件的发生,避免资产的损失。在实际的使用过程中,可以根据实时的数据分布情况调整相应分级模型的结构,将对特定网络影响指数较高的指标向上适当升级,而对特定网络影响指数较低的指标向下适当降级,从而动态适应网络环境,发挥更好的作用。
本文建立一种基于贝叶斯方法的网络安全态势感知混合模型。对影响网络安全环境的指标进行分类并建立分级结构。在此基础上,通过贝叶斯网络模型逐层向上融合,得到最终的网络安全态势评估指标。实验结果表明,该模型评估结果全面、客观,可准确把握网络态势的变化趋势,提高网络环境的稳定性和可靠性。目前对网络态势的影响因素较多,本文模型考虑的参数不足以支撑整体网络态势,评估结果仍有偏差并且其在进行数据离散化处理时默认使用概率密度函数,可能导致数据误差。下一步将针对这两方面不足,在真实网络环境中对模型进行测试和改进。