张耀方,张哲宇,曲海阔,张格,王子博,王佰玲
(1. 哈尔滨工业大学(威海)计算机科学与技术学院,山东 威海 264209;2. 国家工业信息安全发展研究中心,北京 100040;3. 哈尔滨工业大学网络空间安全研究院,黑龙江 哈尔滨 150006)
随着传统工业网络与互联网的融合发展,工业网络被攻击的风险大大增加。尤其在工业控制(下文简称为工控)系统中,各种潜在风险导致系统安全性难以维护,造成巨大财产损失,甚至危害生命。近10年,工控事件频发,如Stuxnet事件[1]、乌克兰电网事件[2]以及WannaCry勒索病毒事件[3]。越来越多的工控攻击事件引起人们的关注[4],提高大众对工控网络安全的整体认知能够对安全防御起到积极作用,因此对工控网络的风险分析迫在眉睫。
由于工控攻击呈现多步攻击趋势,常见的基于模糊测试、层次分析法、博弈论思想的风险评估方法无法全面分析多步攻击[5]。Swiler等[6]提出攻击图这一概念,并将攻击图应用于网络威胁分析中。攻击图通过枚举可能攻击路径来预判攻击者对目标网络的攻击过程,定性地指导防御方加强网络中脆弱节点的防御。同时,将攻击图结合定量计算,可精准分析薄弱节点,以对其采取针对性防御措施,提高网络安全性[7]。因此,对攻击图的量化计算及安全分析成为研究热点。
攻击图中关键路径的量化分析,是攻击者与防御者共同关心的问题。关键路径指在攻击图中对于成功到达某一节点完成攻击目标的概率最大的路径。受工控网络操作流程带来的级联效应的影响,满足工控网络的安全性需求要求攻击图中关键路径的分析有着更高的效率。同时,关键路径分析速度的提升意味着防御的提前。在实际工控环境中,底层数据采集、中枢逻辑控制以及顶层系统管理等工控网络的多种功能要求,导致攻击图中节点数较多且关系复杂。尤其是包含更多信息的动态更新的大规模攻击图,其量化计算中存在耗时长、占用资源多、动态更新效率低的问题。
在关键攻击路径的分析中,其计算效率取决于路径中节点概率、更新概率、累计概率的计算效率。而对于关键节点的分析可以在动态更新时提前削减更新节点数量。目前对于节点关键性的量化多从图论方面考虑,但在工控环境中,节点关键性还受多种环境因素影响,不同漏洞节点的利用价值均不相等,因此还需结合工控环境因素对节点关键性进行度量。
针对以上问题,本文提出了一种利用计算贝叶斯攻击图关键节点集合进行部分节点概率更新,以计算关键攻击路径的方法。该方法考虑多种工控环境影响因素计算攻击图关键节点割集,并对割集中节点的概率进行更新计算,量化当前攻击图路径的被攻击概率。本文的主要贡献有以下两方面。
1) 在考虑图结构的节点关键性的基础上,为节点附加攻击收益指标,提出一种计算攻击图关键节点集合的算法。
2) 提出针对攻击图中关键节点进行攻击概率动态更新的策略,并在不同规模的工控网络下进行验证。
实验结果表明本文的方法能够高效计算工控网络攻击图的关键路径攻击概率,并可用于大规模工控网络的量化计算,为攻击图实时分析提供依据,为工控网络提前防御策略的制定提供直观的数据支撑。
攻击图以图的形式将目标网络中的原子攻击关联起来,展示多步骤攻击路径,是进行定性安全分析的有效技术。攻击图安全分析领域中的研究热点包括基于攻击图的量化计算,将攻击图与贝叶斯网络等技术结合,在定性分析的基础上实现图节点以及攻击路径定量的准确分析。
在攻击图量化计算方面,Poolsappasit等[8]使用贝叶斯攻击图(BAG)量化网络遭到不同等级损害的风险。BAG模型考虑常用的网络状态之间因果关系及其被利用的可能性,采用贝叶斯信念网络的概念,对不同安全条件下的损害进行评估。此模型适用于对环境动态分析的网络部署阶段,在单目标分析的基础上,增加了多目标优化的决策权衡,但该方法的可扩展性和效率仍需提高。Gonzalez等[9]针对贝叶斯攻击图的静态和动态分析提出了一种有效的精确推断技术。经大量实验评估,该方法显示出在时间复杂度和空间复杂度方面的优势。杨英杰等[10]对于属性攻击图模型中的转移概率度量问题,给出了单步威胁转移概率和综合威胁转移概率的度量算法,并解决了攻击图传递环路问题。
王辉等[11]在攻击路径预测的研究中,改进了基于贝叶斯推理的似然加权法,并对子路径进行成本收益分析。该方法给出了攻击收益的数学模型,但其参数只能凭专家经验获得。张少俊等[12]同样对似然加权法进行改进,并提出一种支持攻击证据之间时间偏序关系的攻击图节点置信度计算方法。该方法可有效提高置信度的准确性,同时算法复杂度低,适用于处理大规模攻击图量化分析问题。其与陈小军等[13]提出的思想不同之处在于在攻击图模型中引入转移概率表来刻画单步攻击的不确定性,利用节点置信度推断攻击概率,计算最大攻击概率路径。该方法在小规模网络攻击图中可有效减少不可信报警,但由于其模型构建依赖专家知识库,不适用于大规模网络攻击图的意图推断和最大概率路径计算。
在量化计算指标方面,黄家辉等[14]对工控系统脆弱性量化进行研究,考虑攻防强度、物理损失、信息损失因素,对漏洞等级进行划分。量化攻击过程中原子攻击的脆弱性,得到总攻击期望最大的路径。罗志勇等[15]在计算原子攻击概率时,结合漏洞价值、攻击成本以及攻击收益等因素,对贝叶斯攻击图进行量化,并引入入侵意图更新评估模型,实现攻击图风险的动态评估。
但目前关于攻击图量化计算的研究中,大部分指标仍依靠专家经验获得。马春光等[16]针对攻击图评估过于依赖专家知识库,无法考虑攻击者意愿的问题,提出了一个动态评估模型。其将攻击者意愿与原子攻击性质融入贝叶斯攻击图的动态推理中,提升了风险评估中攻击估算的合理性,适用于实际网络环境下的动态风险评估。高梦州等[17]建立了基于专家知识库、脆弱性库的脆弱性利用规则库。利用参数的初级量化和矩阵判断法计算攻击收益,对工控网络安全风险进行评估。
叶云等[18]对于大规模攻击图的节点概率计算的耗时问题,提出了节点概率的近似计算方法,以牺牲概率精确度的策略提升计算效率,该方法适用于复杂的大规模攻击图。本文方法与其提升计算效率的目的相同,但叶云等的方法是针对攻击图全局节点进行近似计算,而本文针对耗时问题的优化思想在于利用节点概率计算方法,只针对部分节点概率进行动态更新。
在攻击图割集计算方面,刘贞宇等[19]基于攻击图的几何性质,在保留攻击图基本网络结构的基础上对其进行分割,将大型攻击图划分成多个子攻击图进行分析。吴金宇等[20]将最优原子攻击修复集问题归结于攻击图中的最小S-T割集问题。利用原子攻击拆分加权重构攻击图,并采用最大流算法,对攻击图的最优原子集进行求解。其利用最优集思想解决问题的思路与本文类似,该方法计算效率高、可扩展性较好,但该方法仅对攻击图进行最优节点集合层面的分析,没有进行量化计算。彭武等[21]利用最小割集思想对入侵意图进行阻断。该方法计算可达到攻击意图的所有攻击路径及其攻击概率,结合最小顶点割集思想,实现防护最小数目节点来达到阻断攻击意图的目的。与彭武等计算出路径概率,再利用最小割算法进行防御的思想相反,本文利用关键节点割集对攻击路径概率进行计算以实现风险量化。并且,彭武等提出的方法中最小顶点割集仅在图结构方面实现最小数目,没有考虑节点附加价值。
攻击图是一种利用可获取资源进行多步攻击过程展示的建模方法。对于从初始节点开始,到达某一目的节点的攻击路径,可拆分为多步攻击行为。每一步攻击作为原子动作,完成攻击动作后可获得相应权限,以此条件进行下一步攻击动作,多步攻击行为级联达到最终攻击目标。攻击图通过定性分析,展示了目标网络中的多种威胁途径,结合量化计算可对威胁程度进行精确评估。
定义1攻击图为一个有向无环图,可表示为AG= {S,E,Pr},其中,S表示攻击图中节点集合,S= {A,D},A表示原子攻击,D表示设备路径二元组,表示为D={src,dst}。其中,src表示动作起始设备,dst表示动作目标设备。N表示漏洞利用节点,每进行一次攻击动作后,可获取的设备权限。对于漏洞利用节点,其包含3种类型,即N=Nb∪Nm∪Nt。其中,N b为初始节点集合,定 义 为Nb={nb∊Nb|■n j∊N,nj∊Pa(nb)}。Pa(nb)表示nb的父节点集合, 定义某节点的父节点为指向该点的所有节点集合。Nm为中间节点集合,定义为Nm= {nm∊Nm|∀nm∊Nm,Pa(nm)∊Nˆ Ch(nm) ∊N}。其中,Ch(nm)表示nm的子节点集合,定义其子节点为该点指向的所有节点集合。Nt为目标设备资源节点集合,定义为Nt={nt∊N t|■n j∊N,nj∊Ch(nt)}。E表示连接节点的有向边集合,其含义是只有达到攻击行为前置条件后,才可触发某一攻击行为;同时,某一攻击行为发生后,导致的设备权限的改变(称为后置条件),满足下一步原子攻击的条件的状态后,可执行下一步攻击。Pr为攻击行为发生的概率,Pr∈[0,1]。
本文贝叶斯攻击图中每个节点对应一个漏洞利用,取值为0或1。取值为0表示对应的漏洞未被利用,取值为1表示对应的漏洞被利用。该节点被利用的概率为其中,xi是贝叶斯攻击图节点对应的漏洞,Pr(xi=1)表示该节点被利用的概率,p是概率值,取值范围为0到1。
定义在已知节点的父节点的状态下,节点被利用的条件概率为p(xi|Pa(xi))。如果该节点被利用的前提条件是其所有父节点都被利用,则条件概率计算如式(2)所示。
其中,pij是从父节点xj利用子节点ix的概率。
当存在一个父节点没有被利用,则该节点就不可能被利用,因此条件概率为0。否则,条件概率为从所有父节点利用该节点的概率乘积。
如果该节点被利用的前提条件是至少有一个父节点被利用,则条件概率的计算公式如下:
当该节点的所有父节点都没有被利用,该节点才不可能被利用,条件概率为0。否则,条件概率为父节点未能利用该节点的概率乘积的补。
贝叶斯攻击图中多个漏洞利用同时发生的概率为该攻击的漏洞利用组合的联合概率。被定义为在节点的父节点被攻击者利用后,该节点被利用的条件概率的乘积:
其中,X= {x1,x2,…,xn}对应贝叶斯攻击图中一组漏洞利用。
利用贝叶斯攻击图的条件概率以及全概率公式推导出节点的边概率,即攻击者成功攻击节点的概率,如式(5)所示。其中,X表示攻击图中所有节点对应的漏洞利用的集合,X-xi表示除去漏洞利用xi的集合。
本文假设所有漏洞节点独立利用,即只要存在成功利用的父节点,子节点即满足利用条件。在实际情况中,对于同一设备,其利用某一漏洞取得权限后,权限不会丢失。因此,当某一漏洞成功利用后,攻击者即可获得该设备相应的权限,而不需要其余漏洞作为辅助;当多个漏洞均可利用时,选取该设备所有漏洞中攻击影响最大的漏洞,即攻击者在该设备上获取的权限。
对于静态攻击图概率的计算,无法考虑到网络环境的更新以及确定意向攻击对攻击图概率的影响。因此,目前有针对此问题提出的动态贝叶斯攻击图的解决办法,但其存在计算效率较低的问题。
经研究分析发现,工控环境中并非所有节点都属于关键节点。实际情况中,无论是攻击者还是防御者,都主要关注几个关键节点,对其进行攻击或重点防护。因此,本文利用动态更新思想结合关键节点集计算,改进静态攻击图的一次性计算问题。一般攻击图静态概率计算根据节点概率来单向计算节点关键性,本文考虑到全局网络对单一节点的影响,利用原始节点概率计算节点关键性,获得攻击图关键节点集合,并根据节点关键性反向更新原始节点概率。同时,针对确定意向的攻击行为,重新量化意向可达节点的节点概率。攻击图关键节点选取算法如算法1所示。
算法1攻击图关键节点选取算法
输入贝叶斯攻击图的点和边、初始节点、目标节点、漏洞利用节点概率
输出攻击图关键节点集合
算法1的2)~3)为初始化变量,首先遍历贝叶斯攻击图获得所有路径和每个节点在路径中出现的频率(4)),然后去除攻击图的开始和目标节点(5))。对所有节点进行统计,创建字典freqDict,其键为频率,值为所有具有相同频率的节点(6)~9))。接下来10)~20)对具有相同频率的节点计算攻击收益(14))替换频率(15)),根据攻击收益进行排序(17)~18)),确定要选取的顺序。节点出现频率不同,则选取频率较大节点,最后变量nodesSorted的每个元素是根据原始的频率进行排序,每个元素又是一组频率相同的节点,其根据攻击收益进行排序。21)~31)是根据之前的排序从高到低选取节点,删除具有该节点的路径并将其添加到关键节点集(27)~31)),直到所有路径被删除(24)~25))最后更新关键节点的概率(32))。
利用频率相同的节点在路径覆盖度层面关键程度相同,需要进一步判断节点本身的重要性。本文参考最小顶点割集思想,对关键节点进行选取。攻击图的最小顶点割集是指将一个连通图变成两个连通分量所需删除的最少的点的集合。该思想仅在图的路径层面对割集进行选取,其假设所有点的权重价值均相等。
本文采取比较攻击收益方式进行割集节点选取。攻击收益的定义如下。
定义2攻击收益指攻击者在利用漏洞完成对某一节点的攻击后,所能获得的收益。可表示为:Inc(xi)= Pr(xi)∙ Sc(xi)。其中,Inc(xi)表示节点xi的攻击收益,Pr(xi)表示该节点的漏洞攻击概率,Sc(xi)表示漏洞危害得分。对于攻击收益的量化,本文采用贝叶斯攻击图的原始漏洞攻击概率与通用漏洞评分系统(CVSS)漏洞危害最终评分进行计算。在漏洞危害相同的情况下,漏洞攻击概率增大,其攻击收益随之增加;在漏洞攻击概率相同情况下,漏洞危害越大,其攻击收益越大。
CVSS漏洞评分的基础评分为普适性评分,然而环境对漏洞危害性的影响不可忽略。尤其在安全程度越来越高的工控网络中,其漏洞的利用环境以及影响程度不同于传统网络。本文对3.3节算法计算出的攻击图关键节点集合,参考文献[14]中使用的量化方法,对影响指标的选取以及客观性进行优化。利用灰色关联度分析法对关键漏洞节点的概率进行重新计算,考虑工控关键影响因素之间的联系,以及各种因素对漏洞利用节点的影响,精确量化关键漏洞节点在工控环境下的概率变化。
3.4.1计算指标
文献[14]中防御强度、攻击强度等量化指标需要参考大量专家经验作为计算依据,本文采用CVSS中各项漏洞指标对关键漏洞节点的概率进行更新计算,漏洞攻击概率定义如下。
定义3漏洞攻击概率通常受漏洞可利用性以及漏洞影响程度两个指标影响(详细指标度量如表1所示),可表示为Prnew(xi)=Ex(xi)∙Im(xi)。其中,Prnew(xi)表示节点xi的更新攻击概率,Ex(xi)表示该节点的漏洞可利用性,Im(xi)表示漏洞影响程度(Impact)。
(1)漏洞可利用性
漏洞可利用性指某一漏洞被攻击者利用从而进行攻击的可能性,是漏洞的固有属性。当漏洞可利用性增大时,该漏洞的攻击概率也会增大,漏洞可利用性与漏洞攻击概率呈正相关。
漏洞可利用性根据CVSS中的基本指标进行量化计算。CVSS中对漏洞可利用性的评分分为3个方面:访问向量(AV)、访问复杂度(AC)、身份认证(AU)[22]。
(2)漏洞影响程度
漏洞影响程度指当某一漏洞被成功利用后,其对漏洞所在环境造成的破坏或影响。当漏洞影响程度增大时,该漏洞的攻击概率同样也会增大,漏洞影响程度与漏洞攻击概率成正相关。
漏洞影响程度由系统性能影响与工控设备资产价值两方面进行量化。系统性能影响分为3个方面:机密性影响(C)、完整性影响(I)、可用性影响(E)(如表1所示)[22]。资产价值(DV)则根据设备所在的不同层次,以及每种设备的执行功能、控制范围、与其余设备关联程度的不同情况所决定。设备对系统影响程度越大,该设备价值越高。本文列出了常见工控设备的影响程度,如表2所示。
表1 漏洞概率影响因素Table 1 Vulnerability probability influencing factors
表2 工控设备的影响程度Table 2 Industrial control equipment impact
3.4.2灰色关联度分析法
两个因素随时间或不同对象而变化的关联性大小的量度,被称为关联度。灰色关联度分析法作为衡量因素间关联程度的一种方法,可对上述多种影响工控环境的因素进行关联度量化,以此作为考虑多方面因素对关键漏洞节点进行概率更新计算的依据。灰色关联度分析法计算过程如下。
首先,设有n个被评价目标,每个被评价目标有p个评价指标。则第i个对象描述为
在各项指标中选出最优值组成参考序列0x:
关联系数iζ表示第i个评价目标与参考序列间的关系:
其中,ρ为分辨系数。
然后计算关联度γ0i,γ0i表示各指标与参考序列间的关联关系,计算如下:
其中,Wk为权重,Wk∊ (0,1)。
最后,利用定义3计算出更新后节点的漏洞利用概率。
动态贝叶斯攻击图考虑全局节点环境的实时变化情况,并对其进行概率更新。由于工控网络节点较多,且节点间关联关系较为复杂,全局节点动态更新效率较低。
本文针对3.3节算法获得的关键节点集合,利用3.4节的概率计算方法,只更新关键节点的漏洞利用概率。遍历攻击图中全部攻击路径,重新计算得出每条攻击路径概率,比较得出最大攻击概率的路径,并将其作为攻击图的关键路径。
部分更新的贝叶斯攻击图关键路径概率计算如算法2所示。
算法2部分更新的贝叶斯攻击图关键路径概率计算算法
输入所有漏洞利用节点、初始节点、目标节点、漏洞利用节点概率
输出贝叶斯攻击图、所有路径概率
算法的2)~3)为初始化变量,4)将开始节点加入队列,5)~15)为正向广度优先遍历生成漏洞利用的向前依赖图,6)出队列,遍历从开始节点的所有可达节点,对于当前节点,遍历所有可能的漏洞利用(9)),然后通过判断当前节点的后置条件(8))是否能满足遍历的漏洞利用的前置条件(11)),如果满足则加边(12)),如果该漏洞没有利用过,则将其加入队列,并标记访问(13)~15))。获得向前依赖图后,需要进行去环,去除重复访问的边(16))。然后再从目标节点开始逆向广度优先遍历之前生成的向前依赖图(行17)~30))生成攻击图,这样能保证图中所有节点从开始和目标节点都可达。获得原始攻击图后,根据漏洞利用概率计算贝叶斯攻击图(32)),然后利用关键节点算法更新漏洞利用的概率(33))后,再计算更新概率后的贝叶斯攻击图(34)),最后遍历贝叶斯攻击图,根据节点贝叶斯概率获得攻击图路径概率(35))。
本文采用文献[23]的拓扑结构来举例说明本文所提方法的工作原理,并对该方法进行验证。实验采用的拓扑结构源于实际工控网络中的架构,增加了结构的合理性以及真实性,但对规模进行了限制。此外,该拓扑结构增加了不同类型的工控设备,并为不同设备设置了常见的漏洞,以使实验结果更加全面,设备漏洞情况如表3所示。
表3 设备漏洞情况Table 3 Device vulnerability
实验拓扑图如图1所示。实验室采用的拓扑结构由4个区域组成:外部区域、DMZ区、监视控制区、流程操作区。外部区域设置了一个远程节点i,通过该节点攻击者可以登录并开始指定目标的攻击。DMZ区与外部区域的连接由防火墙fw1进行保护。DMZ区中包含两个服务器,其允许访问公司内部网络。监视控制区由防火墙fw2连接到DMZ区,包括服务器和工作站,用于控制流程操作区的现场设备,完成数据收集统计及传输[23]。其中,ew1和ew2作为两个工作站,分别配置了西门子工作台与罗克韦尔工作台。流程操作区由3个执行单元(cell)构成,包括可编程逻辑控制器(PLC)以及现场设备。本拓扑的3个执行单元分别来自不同供应商:西门子、罗克韦尔、施耐德。具体设备访问关系如表4所示。
图1 实验拓扑图Figure 1 Experimental topology graph
本文依照实验拓扑结构以及设备漏洞关系,利用广度优先搜索算法,以PLC为攻击者目标节点,生成带有贝叶斯原始概率的攻击图,如图2所示。节点“MS Windows(Web,ew1)(0.697 5)”的含义是攻击者在获取到Web权限后,利用ew1上MS Windows所包含的漏洞,获取ew1上的权限。0.697 5表示该漏洞利用的发生概率,即从Web利用MS Windows成功到达ew1的概率。
图2 贝叶斯原始攻击概率攻击图Figure 2 Bayes primitive probability attack graph
4.2.1关键节点选取算法有效性分析
两种算法下的关键顶点集如图3所示。其中,图3(a)是利用文献[21]中的算法计算出的割集,包含3个漏洞利用节点:{CCW(Web,ew2)(0.66),
WinCC(ew1,scada)(0.673 9),WinCC(PLC1,scada)(0.667 9)};图3(b)是利用本文提出的算法计算出的割集,包含4个漏洞利用节点:{CCW(Web,ew2)(0.66),WinCC(ew1,scada)(0.673 9),WinCC(PLC1,scada)(0.667 9),Scheneider Web(scada, PLC3)(0.735 4)}。利用本文提出的算法计算出的关键节点集包含了利用文献[21]算法计算出的集合中的所有节点,并且多了一个漏洞利用节点Scheneider Web(scada, PLC3)(0.735 4)。在实际环境中分析,该漏洞利用节点的目标权限获取设备为PLC3,PLC为工控网络中较为重要的设备,一旦PLC被攻击者攻击,会直接对控制逻辑以及底层现场设备产生直接影响。同时,该漏洞利用的概率为0.735 4,相比于一般节点,其有较高的被利用概率。本次利用的漏洞为PLC3上Scheneider Web包含的漏洞CVE-2014-0754,其CVSS2.0评分(由于CVSS2.0覆盖较多漏洞的详细评分,因此本文选用CVSS2.0标准为参考量化指标)为满分10分,意味着该漏洞极其危险。一旦远程攻击者成功利用漏洞,其可通过发送特制的HTTP请求利用访问任意资源。因此,从攻击概率、攻击影响方面考虑,该点的攻击收益很高,将该点设置为关键节点。而文献[21]以及文献[24]中算法计算出的3个节点,只从图结构方面考虑,仅计算最小顶点割集,但在节点价值各不相同的工控环境下,其可能漏掉非最小割集中的关键节点。
图3 两种算法下的攻击图关键节点集合Figure 3 Key node set of the attack graph under the two algorithms
表5 列出了攻击图节点数从21~249的5种规模的攻击图关键节点计算的算法性能。本文选取算法耗时、占用内存两种性能指标进行对比实验。从表中数据可知,在173个节点规模之前,本文算法耗时和占用内存略小于文献[21]提出的算法(顶点割集)。在249个节点前,文献[24]算法(矩阵割集)消耗内存较小,小规模计算的内存消耗优于本文算法。但在249个节点的规模时,顶点割集算法占用内存从173个节点时的26.5 MB爆炸增长至13.45 GB。而本文算法的内存占用量增长幅度仍较小,整体呈线性增长。
表5 关键节点算法性能Table 5 Key node algorithm performance
在算法耗时方面,顶点割集算法在21、59个节点规模时,其耗时表现与本文的算法基本持平。但是在97个节点时,其计算时间是本文算法的两倍。从97个节点开始的3个规模攻击图中,顶点割集算法计算耗时呈指数增长,在173个节点时,耗时高达475 s,而本文算法耗时0.04 s。在249个节点时,其耗时由计算估计约52 h,本文算法计算耗时仍小于0.1 s。矩阵割集算法在21个节点规模下表现出优异的计算耗时,优于本文算法以及顶点割集算法,但随着节点数的增长,该方法耗时呈爆炸式增长,97个节点时耗时超过2 h,173个节点耗时无法经过实验计算,不适用于大规模计算。
4.2.2关键路径选取策略有效性分析
根据4.2.1节实验得到的4个关键节点,利用3.4节所提出的算法进行概率计算,并更新节点概率。更新前节点概率如图2所示,更新后的节点概率如图4所示。在更新完关键节点集合中所有节点概率后,利用式(5)重新计算出每条攻击路径的攻击概率。列出了以PLC2为直接攻击节点的攻击路径如表6所示。
图4 最大攻击路径概率攻击图Figure 4 Maximum attack path probability attack graph
表6 攻击路径概率Table 6 Attack path probability
如表7所示,本文采用对全局节点更新概率计算关键路径与只更新关键节点概率计算关键攻击路径两种更新策略进行计算耗时以及占用内存两方面对比实验。在21个攻击图节点到1 161个攻击图节点中设置了9种规模的攻击图实验。在占用内存方面,两种策略表现基本相同,且对于节点数大幅增长的情况,占用内存数没有较大幅增长。
表7 更新节点策略性能Table 7 Update node strategy performance
在计算耗时方面,本文用折线图的方式直观地展示两种策略的耗时情况,如图5所示。从图5可以看出两种策略随着节点数不断增大,其耗时呈线性增长。但全局节点更新时间增长函数的斜率明显大于部分节点更新。由于两种策略的计算耗时相差数值在攻击图节点数较小时并不明显,在21个节点时,全局节点更新耗时0.026 88 s,部分节点更新耗时为0.002 119 s,相差0.024 761 s,但全局更新耗时约为部分节点更新耗时的13倍。在1 161个节点时,全局节点更新耗时1.573 4 s,部分节点更新耗时为0.115 1 s,全局更新耗时仍约为部分节点更新耗时的14倍,但其耗时相差1.458 3 s。经数据分析可知,本文的部分更新策略在攻击图规模越大时,效果越好。本文在关键路径计算结果与传统算法相同的情况下,耗时更低,可应用于大规模工控网络的关键路径计算中。
图5 全局/部分更新算法耗时对比Figure 5 Full/partial update algorithm time-consuming comparision
本文主要研究大规模工控网络下攻击图的关键路径选取问题,并提出了一种基于攻击收益割集选取关键节点集合的算法,同时提出了以部分更新关键节点攻击概率代替全局更新节点概率的策略。本文结合实际案例对计算过程进行分析,同时通过实验对比,验证了所提方法在大规模工控攻击图中的计算效率相比于最小割集算法以及全局节点更新策略有大幅提升,同时保证了方法结果的一致性。未来的研究工作包括:对于全局攻击图的小概率攻击路径简化;对于无实际意义的多条重复路径的优化。