王赛娥,刘彩霞,俞定玖,胡鑫鑫
(1.中国人民解放军战略支援部队信息工程大学,河南 郑州 450002;2.中国人民解放军61212部队,北京100091)
网络应用十分广泛,涉及到通信、出行、社交等多个方面,给我们的生活带来了极大的便利,在经济发展中的作用也愈加明显。最新的《中国互联网络发展状况统计报告》指出,我国的互联网普及率超过了60%,乡村教育、在线政务、网络消费等都有了显著的进步和发展。在网络化的今天,快捷生活的同时,安全问题层出不穷,大到国家级的电网瘫痪,小至个人信息泄露。面对种种安全威胁,准确评估目标系统所面临的风险,采取适当防御策略显得尤其重要。网络安全风险评估能够系统地分析网络的安全状态,是网络防御的重要基础,也是网络安全技术研究的常用手段。
网络安全风险评估领域,有大量学者进行了研究和探索,摸索出较多方法和手段。本文首先介绍了网络安全风险评估的定义,几大国际性评估标准的发展,将网络安全风险评估的相关方法分为四类:基于漏洞扫描和入侵检测的评估方法,基于知识推理的评估方法,基于资产价值的评估方法和基于模型的评估方法。随后详细介绍了基于模型的评估方法,定性评估选取了攻击链模型、攻击表面模型及自动机模型3种模型,定量评估以常见的攻击树模型、攻击图模型及网络传染病模型为例,给出了模型的定义、发展和研究状况以及不同学者对模型的修改,对比了不同模型的适用范围和优劣势,方便根据实际需要选择合适的评估方法。而后补充介绍了几种交叉学科的评估方法,如模糊理论和神经网络,这些方法目前的研究还较少,不够成熟,但是对网络安全风险评估的发展起到了一定的推动作用。
网络安全风险评估至今没有统一的定义,不同的专家学者们依据侧重点给出了不同定义:信息安全风险评估是对系统及其传输和存储的信息保密性、完整性和可用性等安全属性进行评价的过程;网络安全风险评估是识别网络系统中存在的资产和漏洞,对其被利用的可能性和所带来的后果进行有效评估,提出合理的安全策略和防护措施。
总的来说,网络安全风险评估是指运用一定的科学方法,定性或定量地分析系统的安全状况、脆弱性和所面临的风险,综合各方面信息给出系统的风险评价,评估系统承受风险的能力。
网络安全风险评估标准是评估行为的依据和指导。美国国防部于1985年发布了《可信计算机系统评估准则》[1],该标准只针对单个计算机系统,不适用于计算机网络。欧洲标准委员会发表了《信息技术安全评估准则》(ITSEC)[2],该标准是一种静态模型。国际标准化组织统一多个准则制定了第一个国际性标准,《信息技术安全评估通用准则》(CC)[3]。我国则颁布了信息安全风险评估规范GB/T 20984-2007[4]和《信息系统安全等级评测准则》,给出了信息系统安全评估的定义和安全等级划分,用于指导对信息系统的测试评估。
网络安全风险评估的范围广泛、内容复杂,涉及到多个领域。目前国内外现有的网络安全风险评估方法有很多,有基于漏洞扫描和入侵检测的评估方法[5-6],基于知识推理的评估方法,基于资产价值的评估方法等,在理论研究领域应用最广的是基于模型的评估方法。
基于漏洞扫描和入侵检测的评估方法,利用专业扫描工具或者入侵检测系统,匹配已有知识库,自动检测规则,得出安全风险报告。此类方法不需要人为过多干预,选定扫描对象即可,评估结果集合各专业工具的优势,但评估过于依赖工具以及相关知识库的完善,构建的知识库只考虑了已知的威胁信息,不能匹配未知风险,评估只是针对系统局部,忽略了整体性。
基于知识推理的评估方法引入了专家经验,将要评估的目标以既定形式描述,如问卷,按照专家建立的规则库、风险库进行评估,产生评估报告,指出系统的风险指数。
基于资产价值的评估方法是对风险行为造成的资产损失进行评估的过程,包括资产的固有价值、替换所需的代价及时间成本等,不考虑系统中的其他情况,以资产损失反映网络安全风险状况,该方法常用于企业内部的自我评估。
基于模型的风险评估能够考虑网络的综合情况,科学地对系统状态和行为进行抽象和建模,为网络安全风险评估提供可靠依据,其中结构化和可重用的模型方便不同研究人员的改进,因此在理论研究领域最为常见。
基于模型的网络安全风险评估方法可以分为两大类:定性分析模型和定量分析模型。定性分析模型依据评估者经验知识等非量化因素进行评价,清楚简单,易于理解,但主观性较强,不同评估者所得结论会有出入,评估结果多为粗略值不够精准,只能定性地反映系统安全性的强弱。常用的定性分析模型有:攻击链模型、攻击表面模型及自动机模型等。定量分析模型在建模过程中使用数量指标,通过严谨计算来评估系统,科学直观、结果精确;但是建模过程较为复杂,常常简化系统的某些行为或者模糊处理,使得结果不全面。常见的定量分析模型有:攻击树模型、攻击图模型、网络传染病模型及贝叶斯网络模型等。
攻击链模型[7]以攻击者为中心,对网络攻击行为进行建模,把完整的攻击过程分解为多个阶段。攻击链一般包含7个阶段:目标侦察、武器化、交付、漏洞利用、安装、命令和控制、行动。分析者可以针对每个阶段制定相应的防御手段,破坏任一阶段,攻击行为都不能达到最终目标。文献[8]提出了基于攻击链的评估思路和方法,对整体评估进行了探索。攻击链模型没有涉及系统方面,与系统本身的架构和属性无关,单纯刻画了攻击过程,忽略了不同系统对攻击行为的差异,缺乏对系统的量化手段。
攻击表面模型[9]以系统和防御为中心,将攻击可利用的系统资源(又称系统攻击表面)按属性分类进行量化,度量得到系统攻击表面的风险值。Manadhata[9]将攻击表面定义为函数、通道和数据3种,而Foreman[10]将其定义为网络资源(包括开放端口、IP地址等)、漏洞信息等。Howard[11]等人针对Windows系统给出了相应的评估方法,李渤[12]等人提出了一种通用系统的建模方法,对模型进行了形式化描述,对典型防御案例进行了分析。攻击表面模型适于对系统不同版本的软件安全性进行比较,但不同系统之间很难把握度量标准的统一性,且没有考虑攻击者行为,没有预料系统面对攻击行为做出的动态应对。当存在极端情况时,该评估方法得出的定性结果可能会与直观经验不同。
自动机模型[13-14]多针对特定攻防行为,刻画了在各种输入序列(包含非正常情况的极端输入序列)下系统的状态转换,模拟系统的动态迁移过程,反映系统状态的转移条件。郭威等人[14]提出了一种可变焦的有限自动机结构模型,对攻防过程进行建模,给出了安全分析。自动机模型可以直观地表现系统安全变化过程,但对细节的描述不够,系统抽象不够全面,在面对复杂系统时,系统状态数增加,开销增加,可能造成空间爆炸的问题。
2.2.1 攻击树模型
攻击树是对目标基础设施所受可能攻击的层次化描述,从故障树[15]演变而来,被Schneier[16]推广。Schneier将攻击树作为一种安全威胁的建模方法,利用层次化表示,通过自下而上的单参数扩散进行定量的安全评估。
树的根节点表示攻击的最终目标,子节点表示实现该目标的子目标,层层细化,最后的叶节点表示不可分解的原子攻击。从根节点到叶节点的路径表示实现目标的一个完整攻击流程。攻击树表示实现目标的所有可能的攻击路径。节点之间的基本关系有3种,“与”,“或”和“顺序与”,如图1所示。“与”表示节点代表的手段和方法要同时完成才可以实现父节点;“或”表示只要完成一个节点就可以实现父节点;“顺序与”表示节点需要按顺序完成才可以导致父节点的目标实现。构建攻击树后需要对节点的属性(攻击成本、攻击难度等)赋值,计算子节点的风险值,然后根据节点之间的依赖关系得到目标的风险值。
图1 “与”“或”“顺序与”结构表示方法Fig.1 Representation method of “and”“or”“sand”
Buldas[17]用多参数法代替单参数方法,考虑在具有多个相互依赖性的攻击参数时如何进行计算,并将其应用于经济学上的推理预测。这类分析可用于评估系统在抵御有针对性的、以利润为导向的攻击时的安全性。Jurgenson和Willemson改进了Buldas的模型,使并行[18]和串行[19]模型与Mauw和Oostijk[20]一致,并引入了遗传方法来加快计算速度。并行模型假设攻击者同时启动攻击步骤,而串行模型假设攻击者以预定义的顺序启动攻击步骤。Buldas和Stepanenko引入了无故障模型[21],该模型不以任何方式限制攻击者,分析了完全自适应攻击者的能力上限。完全自适应攻击者可以根据之前的试验结果,任意顺序尝试原子攻击。这种方法后来被Buldasand和Lenin[22]改进,采用近似估计方法简化攻击者能力上限计算。Aleksandr Lenin和Jan Willemson[23]引入了攻击者特征分析的概念,应用于攻击树会使初始攻击树中的某些节点和最终的整个子树失效,并将攻击者特征分析集成在现有安全评估工具ApproxTree+中,与ApproxTree方法[24]在性能上进行比较。
攻击树模型以攻击者为中心,构造简单,图形化方式清晰直观,适合描述攻击过程,定量评估系统风险。面对大型系统时,建模效率低,没有合适的自动化攻击树生成算法。在攻击过程中,系统会做出相应的防御策略致使树中的某些节点失效,此时攻击树不能够恰当变现系统的变化。
2.2.2 攻击图模型
Phillips和Swiler[25]提出了攻击图的概念,描述了攻击行为对系统状态的影响。攻击图是一个有向图,图中的节点表示攻击期间系统的可能状态,有向弧表示由于攻击者的行为而导致的状态变化,每条边分配有权重,例如攻击时间、攻击难度等。攻击图通过用当前状态匹配一组预先定义的攻击模板并不断向前搜索构建。攻击图分析中,结合边的权重计算出一组最短路径,很可能是攻击者实际选择的路径。Swiler[26]实现了这个想法,并构建了一个计算机攻击图生成工具。攻击图是根据三种类型的输入自动生成的:攻击模板(包括所有已知攻击所需的条件和造成的后果)、要攻击的系统的详细描述(拓扑、组件配置、脆弱性等)和攻击者的概要文件(能力、工具等)。
基于攻击图模型的网络安全风险评估[27-28]主要分为三个阶段:第一阶段使用形式化语言对系统配置信息及脆弱性、已知漏洞知识库建模,利用自动构建引擎生成攻击图;第二阶段根据攻击者能力对生成的攻击图进行化简;第三阶段是安全风险计算,对系统的脆弱性、漏洞利用前提以及攻击难度等进行量化,计算风险发生概率、风险产生的后果等。
根据图中节点和边的含义不同,攻击图主要分为状态攻击图[29]和属性攻击图[30]两种。图2为状态攻击图,字母A~D表示系统的状态。属性攻击图中节点有两种:一种是属性节点,表示攻击的条件或后果;一种是原子攻击节点,表示一次攻击行为。图3为属性攻击图,e为原子攻击节点,a1和a2为属性节点。
图2 状态攻击图Fig.2 State attack graph
图3 属性攻击图Fig.3 Attribute attack graph
Sheyner等人[29]将攻击图与模型检查技术结合,为推广攻击图做出了贡献。Wang等人[30]提出了攻击图的关系模型,该方法简化了模型的交互分析,提高了模型的性能。Ou等人[31]对攻击图的生成和表示进行了优化,将攻击图转化为多项式大小的逻辑攻击图,并对所分析的计算机网络的组件数量进行了比较。Ingols等人[32]提出了多前提图,大大降低了图的复杂度。Wang等人[33]开发了一种基于攻击图的网络安全概率度量,并提出了高效计算的启发式算法。
在攻击图模型的基础上,不同的研究人员提出采用贝叶斯网络作为安全建模技术[34]。贝叶斯网络也被称为信念网络或因果网络。在贝叶斯网络中,节点表示事件或对象,并与概率变量相关联。有向边表示节点之间的因果依赖关系。Qin和Lee[35]提出了将攻击树转换成贝叶斯网络的过程。Dantu从基于行为的攻击图出发,利用贝叶斯网络对安全风险管理进行建模时采用了不同的策略。贝叶斯攻击图将一般攻击图与贝叶斯网络的计算过程相结合。然而,由于贝叶斯推理过程只适用于无环结构,所以包含了关于如何删除环。因此,任何最终的贝叶斯攻击图都是非循环的。消除环后,贝叶斯攻击图就像贝叶斯网络一样,可以对漏洞之间的因果关系进行建模。
攻击图模型将网络的配置信息、脆弱性和攻击者能力都考虑在内,评估更加全面,而且有攻击图自动生成引擎,减少了人为因素可能产生的问题。但是生成的攻击图十分复杂,在面对大规模网络或者复杂网络时,攻击图本身会存在状态爆炸和空间消耗的问题,不利于查找路径和后续的量化计算。
2.2.3 网络传染病模型
网络传染病模型[36]是根据医学上对传染病传播的研究而提出的适用于网络传播行为(如病毒传播)的模型。常见的模型有4种:SI,SIS,SIR,SIRS。
SI模型最简单,如图4所示。模型假设个体只有两种状态:易受感染S状态和已感染I状态。初始时个体处于S状态,被其他个体感染的概率为x,感染后处于I状态,并以相同概率感染其他相邻个体,直至所有个体都为I,此时达到平衡状态。
图4 SI模型Fig.4 Model of SI
SIS模型如图5所示,在SI模型的基础上假设已感染个体有一定的概率y恢复为S状态。整个网络中,初始时感染个体数量不断增加,随后部分个体恢复为S状态,感染数量出现波动,最终达到平衡状态,趋于稳定。
图5 SIS模型Fig.5 Model of SIS
SIR模型如图6所示,在SI模型的基础上假设已感染个体按概率y得到恢复,进入R状态之后不会再被感染。如果x
图6 SIR模型Fig.6 Model of SIR
SIRS模型如图7所示,在SIR模型上假设个体处于R状态时,有概率z丧失免疫,重新成为S状态,该假设更符合真实网络情况。
图7 SIRS模型Fig.7 Model of SIRS
在此基础上,还有其他修正形式的网络传染病模型,如SEIR模型[37],它增加了一个潜伏状态。
网络传染病模型侧重于对整体网络的分析评估,能够体现网络中的传播特性,但是对于网络设备的抽象程度很高,没有考虑节点之间的差异性。模型中假设个体只能感染相邻个体,但在网络中很难界定“相邻”这一概念。基于模型的评估方法比较如表1所示。
表1 模型对比
Tab.1 Comparison of models
模型内容优势劣势攻击链以攻击者为中心,将攻击行为分为7个阶段不涉及系统因素,细致描述攻击过程缺乏量化方式攻击表面以系统防御为中心,量化攻击可利用的资源与系统的结构等无关,可比较不同版本的安全性定性分析,不同系统间度量不同自动机模拟系统在不同输入时的动态迁移细致描述系统的状态变化过程系统状态较多,可能有空间爆炸问题攻击树以攻击者为中心,层次化分析攻击行为模型简单,图形化描述便于量化评估建模效率低,不够灵活攻击图描述系统脆弱点和攻击行为的关联将攻击行为和系统变化结合,评估更全面攻击图较为复杂,不利于后续分析和量化网络传染病描述具有传播特性的行为,如病毒传播等不考虑系统细节,只评估传播特性抽象程度高,没有考虑不同个体的差异
随着学科领域的交叉和前沿技术的发展,网络安全风险评估方法也有了新的探索和方向。模糊集的概念是由美国Zadeh教授提出的,模糊理论以模糊集合为基础,能够描述和处理不精确的信息。模糊理论发展至今应用范围十分广泛,王姣等人[38]针对风险评估过程中存在的模糊因素和不确定性提出了将模糊集与DS理论相结合的评估方法,使用隶属函数体现评估数值的不确定度,建立评估体系,一定程度上提高了结果的客观性。宋乐[39]将改进的犹豫模糊集应用到风险评估中,有效地提高了评估的可靠性。神经网络是模拟生物神经网络的数学模型,可以进行分布式信息处理,有自学能力。王皓然等人[40]提出利用小波神经网络训练优化信息,合理构造权重,减少误差,提高评估精度。周超[41]积极探索量子神经网络在风险评估中的应用,构建了一个新的评估框架,在风险评估精度上有一定的优势。
网络安全风险评估对于了解网络安全性能、设计防御措施有重要作用,评估方法也在不断完善,新的模型、工具不断出现。本文简单介绍了网络安全风险的评估标准,对传统评估方法进行了分类,详细阐述基于模型的评估方法,主要有3种定量模型:攻击树模型、攻击图模型和网络传染病模型,给出模型的主要内容和发展情况,最后总结了新兴的几种评估方法。总体而言网络安全风险评估仍面对很多挑战,未来研究重点有以下几个:
① 完善相关的标准和规则。目前对于网络安全风险评估没有统一的标准和定义,没有一套完整理论和流程。很多模型和方法中涉及到的步骤、执行因人而异,使得结果不具有通用性很难比较。
② 大规模网络和复杂网络的评估。实际应用中网络情况复杂,设备数量多,差异性大,而大多方法在面对这样的问题时束手无策,不能精确地对网络进行建模。随着网络节点数的增加,面临空间爆炸或者分析数量指数增长,使得最终的评估结果不能够准确反映真实情况。
③ 评估中要考虑人的主观影响。主要有两方面:一是在量化各种指标时要客观,使用标准数据库,减少人为对量化值的干扰;二是攻击者方面,网络中攻击者能力是评估的重要因素,攻击者的行为有时具有随机性。同时,攻击者能力不是一成不变的,真实情况是攻击者在实践中不断学习,决策水平也在提高。