顾兆军,李怀民,丁 磊,隋 翯
(1. 中国民航大学信息安全评测中心,天津 300300;2. 中国民航大学中欧航空工程师学院,天津 300300;3. 中国民航大学航空工程师学院,天津 300300;)
工业控制系统是能源电力、石油化工、交通运输等国家关键基础设施的核心系统,其功能安全(safety)和网络安全(security)对于关键基础设施的平稳运行具有决定性作用[1]。工业控制系统构成比较复杂,从网络结构角度可以分为采集执行层,现场控制层,集中监控层,制造执行层和管理调度层[2],如图1所示。过去,工业控制系统安全防护主要关注其功能安全,但随着“两化融合”[3]和“中国制造2025”[4]概念的提出,智慧工厂、云制造、智能生产系统等信息化理念一方面提升了工业产业智能化程度,另一方面也带来了新的风险隐患,网络安全问题逐渐成为工业控制系统安全防护研究的热点[5]。
2010年“震网”病毒(Stuxnet)通过篡改PLC的程序,导致伊朗核电站离心机过速运转,造成核电站1/5的离心机损坏、直接经济损失上亿美元[6]。自“震网”事件开始,黑客组织利用Havex,火焰,毒区等针对工业控制系统的病毒分别成功实现了对俄罗斯,美国,韩国,乌克兰等国家的关键基础设施工业控制系统网络攻击。截至 2020年2月18日,上报到漏洞库的工业控制系统漏洞数达到2362个,2010 年以后,工控漏洞发现数逐年递增[7]。与传统网络安全的CIA(保密性,完整性,可用性)原则不同,工业控制系统遵循AIC原则[8],优先保证系统的可用性。所以,工业控制系统不便于采用大范围、大纵深的传统网络安全防护策略。科学评估系统风险、有针对性的部署防护措施显得更为重要。因此在工业控制系统网络安全研究领域,网络安全风险评估已经成为企业和学界共同关注的焦点。
图1 典型工业控制系统网络架构
形式化分析方法是网络安全风险评估中常用的方法,形式化分析方法[9]是用数学方法研究计算机科学中相关问题的前沿技术,可以在工业控制系统设计和开发阶段发现系统中潜在的网络安全风险,避免后期部署安全设备的盲目性。基于形式化分析的网络安全风险评估方法可以分为定性分析方法和定量分析方法两类[10]。定性分析方法主要依靠从业人员经验对系统的安全等级和风险程度给予“高”“中”“低”的评价。对于攻击事件发生的可能性以及系统本身的脆弱性无法做出定量的评估。定量分析方法是对系统的脆弱性和安全程度给出量化的评估结果,并据此制定相应的防御措施和手段。本文提出的就是一种定量的风险评估方法。
比较常用的形式化分析方法包括攻击树、攻击图和时间自动机。Schneier[11]提出了一种基于攻击树的安全威胁建模方法,利用层次化表达,实现了通过自下而上的单参数扩散进行定量安全评估;Phillips和Swiler[12]提出了攻击图的概念,描述了攻击行为对系统状态的影响; Alur R[13]提出了时间自动机模型,并针对特定攻防行为刻画了各种输入序列(包含非正常情况的极端输入序列)下系统的状态转换,从而模拟了系统的动态迁移过程,并给出了系统状态的转移条件。
这些研究结果表明在形式化分析的方法中,采用树、图这类图形化分析的方式可以取得很好的定量评估效果。Park等[14]利用攻击树模型分析了反应器保护系统的信息安全状态,并给出了相应的防御措施。Byres等[15]使用攻击树建模方法对基于MODBUS 协议栈的工业控制 SCADA 通信系统进行了漏洞分析。蒋健雷[16]应用攻击树建模分析了某泵站SCADA 系统的安全性问题及相应策略。Hawrylak等[17]使用混合攻击图对工业控制系统网络攻击进行建模,并建立了全局攻击图,评估了该系统面临的主要风险和威胁。黄慧萍[18]等人提出了一种基于攻击树的工业控制系统信息安全风险评估方法,运用攻击树对针对SCADA系统主站的攻击进行建模,然后基于多效应理论计算了叶节点、根节点和各攻击序列发生的概率,从而提出了更有效的防御手段。
但以上成果还可以围绕以下两点进行更深入研究:①上述研究没有将系统的防御措施考虑在内。②在进行攻击树建模并进行叶节点相关指标计算时,各影响因素权重的获得往往是通过经验进行设定,或仅通过主观赋权法的方式获取,这导致个人的主观因素对最终赋权结果的影响过大,缺少客观性的评判。基于以上两点,本文在传统攻击树的基础上,使用攻击防御树的方式对工业控制系统进行建模,从而得到一种相对完善的形式化分析建模方法;然后结合主观赋权和客观赋权法,对各叶节点影响因素进行权值分配,最终得到相对客观的赋权值,以获得更准确的评估结果。最后以某机场供油自控系统为例,验证了本文所提出方法的有效性。
攻击防御树(Attack-Defense Tree,ADT)模型是 KORDY B在2010年提出的一种通过在攻击树叶结点上添加防御手段,从而对系统进行形式化分析的建模方法[19]。ADT模型是多层的树形结构,包括了叶节点,根节点,中间节点以及防御节点。其中根节点为最终的攻击目标;叶节点为达到最终目标的攻击手段;中间节点表示要实现最终攻击目标必须完成的中间步骤。每一条最终指向根节点的路径则为一条攻击路径;防御节点针对具体的攻击方式采用有效防御手段。图2所示为一个简单的攻击防御树示例。
图2 攻击防御树示例
各节点之间存在三种逻辑关系:“或”(OR)关系,“与”(AND)关系,“顺序与(SAND)关系”。AND节点表示所有子节点的攻击目标实现,则父节点的目标也会实现;OR节点表示任意子节点的攻击目标实现,则父节点的目标也会实现;SAND节点表示所有子节点的目标按顺序实现,则父节点的目标即可实现[20]。图3所示为攻击防御树各节点之间存在的三种关系。
图3 攻击防御树节点关系
攻击防御树的建立需要从安全事件反向推理,首先由专家确定最终攻击目标,并将最终的攻击目标作为攻击防御树的根节点,其次将根节点利用图3所示的节点关系将所需完成的中间步骤作为其子节点。然后使用相同的方法对子节点进行扩展,直到具体的攻击方式不能再进行分解则成为该模型中的叶节点。最后针对叶节点部署防御措施,形成防御节点。
根据多效应理论,在对攻击防御树的叶节点进行脆弱性定量评估的时候,需要获得影响叶节点脆弱性的各因素的权重值,即需要对各因素进行权值分配。当前的赋权方法主要分为主观赋权法和客观赋权法[21]。常用的主观赋权法主要有Delphi法[22],层次分析法(AHP)[23],权的最小平方法[24]等。客观赋权法主要有主成分分析法[25],熵权法[26]和多目标规划法[27]等。本文结合主观赋权法和客观赋权法的优点,采用了层次分析法和熵权法相结合的组合权重法来获取最终各影响因素的权重分配值。
层次分析法是上世纪七十年代美国匹兹堡大学Saaty教授提出的通过专家打分的方式获取权值分配的方法[28]。专家通过影响因素重要程度对比进行打分,构造判断矩阵,最终对矩阵进行数学运算获得属性权值。本文使用0.1-0.9比较尺度表对各因素进行两两比较,见表1。
表1 0.1-0.9 比较尺度表
专家根据尺度表(表1)对各影响因素重要程度对比进行两两打分,构造判断矩阵。假设共有n个影响因素,即可得到n×n阶判断矩阵C。
(1)
(2)
(3)
根据以上计算流程可得到各影响因素的权值向量Ni=(N1,N2,…,Nn)T。
在信息论中,熵是对不确定性的一种度量[26]。不确定性越大,熵值越大,包含的信息量也越大。根据熵的特性,可以通过计算熵值来判断一个事件的随机性及无序程度,也可以用熵值来判断某个指标的离散程度,指标的离散程度越大,该指标对综合评价的影响(权重)越大。因此,熵权法是通过各影响因素取值的离散程度,定量某一因素权重的客观赋权法。其具体计算方法如下:
1)假设有a个叶节点,每个叶节点有b个影响因素,据此构建判断矩阵X:X=|xij| (i=1,2,…,a;j=1,2,…,b)。
2)由于各项影响因素的计量单位并不统一,因此在计算前先要对判断矩阵X进行归一化处理,即把矩阵中元素的绝对值转化为相对值,从而解决各项不同影响因素取值的同质化问题。其中,正向指标和负向指标数值代表的含义不同(正向因素数值越高越符合期待,负向因素数值越低越符合期待)。因此,对于正向影响因素和负向影响因素需要采用不同的归一化方法处理,获得归一化矩阵B,具体的处理方法如下:
正向影响因素
(4)
负向影响因素
(5)
其中,xmax,xmin分别为同一影响因素下的最大取值和最小取值。
3)根据熵的概念,可通过下式计算各影响因素的熵值
(6)
通过层次分析法和熵权法可以获得两组影响因素的权重向量,其中通过层次分析法得到主观权重向量为μ=(μ1,μ2,…,μn)T,由熵权法得到客观权重向量ν=(ν1,ν2,…,νn)T。组合赋权法是将主客观赋权法得到的权值相结合,这样既可以反应主观的判断也可以反映客观评价的结果。通常情况下使用加法组合法或乘法组合法,为了尽量凸显各因素间的重要性差异,本文使用乘法组合法来获取最终的权重ωj,即
(7)
本文使用安全脆弱性指标来定量评估系统的安全风险。安全脆弱性指标的取值范围为从0到1,代表系统遭受攻击的容易程度递增。评估脆弱性指标的具体步骤与方法为:
1)确定最终攻击目标;
2)逆向推理获得最底层攻击事件,即叶节点;
3)添加防御节点,构造系统的攻击防御树;
4)分析影响各叶节点脆弱性的因素,使用基于层次分析法和熵权法的组合赋权法获取各影响因素的权重;
5)根据多效用理论计算叶结点的脆弱性指数;
6)根据叶节点脆弱性指数获得各条攻击路径及整个系统的脆弱性指数;
7)根据添加防御手段前后的叶节点脆弱性指数差值和系统脆弱性指数差值评估叶节点脆弱性灵敏度,据此提出新的更有效的防御手段。
美国工业控制系统安全指南中指出[29],在工业控制系统的信息安全评估中,系统脆弱性受到三个主要因素的影响,分别是攻击的成本,实现难度,以及攻击被发现的可能性大小。因此在计算叶节点脆弱性指数时,对每一个叶节点的攻击成本,实现难度,攻击被发现的可能性三个属性赋值。应用多效应理论可以获得计算叶节点脆弱性指数的式(8)和式(9)如下
S(Ek)=Wcos t*U(costk)+Wdiff*U(diffk)+
Wdet*U(detk)
(8)
S′(Ek)=[Wcos t*U(costk)+Wdiff*U(diffk)+
(9)
其中,k为任意叶节点,S(Ek)为该叶节点的脆弱性指数,S′(Ek)为考虑防御措施后该叶节点的脆弱性指数,costk为实现攻击该节点需要付出的攻击成本;diffk为该叶节点实现的难易程度;detk为该叶节点攻击被发现的可能性。Wcost,Wdiff,Wdet则分别为这三个影响因素在各叶节点所占的权重系数,且三个权重系数之和为1。U(costk),U(diffk),U(detk)则分别为三个影响因素在各叶节点的效用值。可以发现效用值与各影响因素成反比关系,因此本文取U(x)=1/x。nk为针对该叶节点攻击事件所采取的防御措施的个数,m为防御措施最多的叶节点的措施数量加一。
式(8)和式(9)中的权重指数通过组合权重法获得。Wcost,Wdiff,Wdet的值则需要建立评价表,请专业的评估人士依据此标准给出各叶节点相应属性的得分,再通过倒数运算获得各自的效应值。本文采用的等级评分标准如表2所示。
表2 等级评分标准
任何一条从叶节点到根节点的路径可称为攻击路径,即可通过该路径上的行为完成最终攻击的根节点目的。假设S1,S2,…,Sk∈S,S为构成某个攻击序列的所有节点的集合。V(S1),V(S2),…,V(Sk)为各节点对应的脆弱性指标,则可以得到该条攻击路径的脆弱性指数N为:N=V(S1)×V(S2)×…×V(Sk)。
根据上述分析,任意一条攻击序列均可以达成最终的根节点攻击目的。因此系统的整体脆弱性指数为所有攻击途径脆弱性指数中的最大值。假设系统的整体脆弱性指数为Vs,各攻击路径的脆弱性指数分别为V(i1),V(i2),…,V(ik),则可以得到系统的整体脆弱性指数为
Vs=max(V(i1),V(i2),…,V(ik))
(10)
其中k为整个系统中存在的攻击路径的总数。
通过增加和改善每一个叶节点处的防御措施可以降低叶结点的脆弱性指数,从而降低系统的脆弱性指数。但往往由于预算的限制,需要更加合理的利用资金来增加和改善防御措施。因此本文对叶节点脆弱性的灵敏度进行评估,从而找出通过尽量少的改动就可以最大程度提高安全系数的关键节点。定义如式(11)所示的叶节点灵敏度计算公式。
(11)
通过计算各叶节点的灵敏度取值并进行比较,找到灵敏度较高的几个叶节点,针对关键节点进行相应的防御措施改善可以更加高效的提高系统的信息安全水平。
本文以某机场供油自控系统为例,对其进行风险评估与分析。供油自控系统是保证机场正常运行的关键配套设施,主要控制油料运入与输出,检测环境温度与油罐液位。
SCADA系统位于整个机场供油自控系统网络中的集中控制层。向上连接着MES(执行制造层)层和管理调度层,向下连接着现场控制层和采集执行层。攻击者一旦侵入了SCADA系统即可通过工控系统的内部网络对上层的决策环节进行干预,并可能改变现场控制层的参数设置,从而造成严重的生产事故。图4为某机场供油自控系统的拓扑图。
图4 某机场供油自控系统拓扑图
通过实地调研,可以通过物理攻击或者网络攻击两种手段达到最终攻击SCADA系统主站的目的。在网络攻击的方式中,既可以通过外部网络直接入侵SCADA系统主站,也可以通过攻击从站并接入SCADA系统内部通信网络链路达到攻击系统主站的目的。根据第二节介绍的内容进行反向推理,先确定了机场供油自控系统SCADA主站为根节点,再逐层获得中间节点和叶节点。最终获得了以机场供油自控系统SCADA主站为根节点的攻击树。在攻击树的基础上针对各叶节点考虑相应的防御手段,从而在叶节点上附加防御节点,最终得到机场供油自控系统的攻击防御树模型,如图5所示。
图5 攻击防御树
该攻击防御树中根节点,叶节点,中间节点及防御节点的具体含义如表3所示。
表3 节点含义
根据前面章节的介绍,需要利用表2所示的评分标准对各叶节点的影响因素进行专家打分,评分结果如表4所示。
表4 各节点评分结果表
根据表4可以分别获得Ek节点costk,diffk,detk的值。然后根据各影响因素效用值与各影响因素的倒数关系计算得到影响因素的效用值U(costk),U(diffk),U(detk)。
1)根据0.1-0.9 比较尺度表(表1),利用专家打分法得到权重判断矩阵D:
2)利用式(1)将矩阵D转化为符合一致性的判断矩阵,然后利用式(2)计算得到三个影响因素的权重向量P=[0.1,0.333,0.567]T。
3)使用3.2节中介绍的熵权法对三个影响因素的熵值进行计算,从而得到客观赋权法下三个影响因素的权重向量
4)利用3.3节中的式(7)以及主观赋权法和客观赋权法的权值分配的结果进行组合权重的计算,计算得出最终影响因素的权值向量,即M=[0.15,0.04,0.81]T。
5)将4)中的权值向量M用于式(8)和式(9)中,计算得出考虑防御手段和不考虑防御手段两种情况下各叶节点的脆弱性指数如表5所示。
表5 叶节点脆弱性指数
6)根据本文构建的攻击防御树模型可知,总共有六条攻击路径可以达到最终的根节点,分别为:i1={E1,E2};i2={E3};i3={E4};i4={E5};i5={E6};i6={E7}。根据(5)中叶节点脆弱性指数计算得到添加防御手段前后的攻击路径脆弱性指数结果如表6所示。
表6 各攻击路径脆弱性指数
7)由系统脆弱性指数计算结果分析可知,系统脆弱性指数为各攻击路径脆弱性指数中的最大值。即添加防御措施前为0.49,添加防御措施后为0.37。
8)应用叶节点敏感度式(11)对各叶节点敏感度进行计算,结果如表7所示
表7 各叶节点敏感性指数
由表3可知各叶结点的脆弱性E2,E3,E4为本文构建的攻击防御树模型中三个最敏感的叶节点。
从该案例得到的评估结果来看,三个影响因素的权重分别为0.15,0.84,0.81。其中权值最高的影响因素为攻击被发现的可能性大小。因此,对于攻击者而言攻击被发现的可能性是选择攻击路径和方法时最优先考虑的事项,这可以决定它们的攻击是否可以足够长时间的潜伏,以最大程度的破坏它们的目标系统;采用适当的防御手段则可以有效的减小系统的脆弱性指数。
通过各攻击路径脆弱性指数可以看出,通过从站对主站进行攻击的方式最容易达成攻击主站的目的。其中i4,i5攻击路径在添加防御措施前的脆弱性指数更是高达0.47和0.49。这是由于从站相对于主站而言防御措施更少,防御强度更低,但从站作为主站选择用以接收数据的数据站存放着大量关键数据。攻击者攻击从站可以用相对小的代价获取相对大的攻击利益。对于机场供油自控系统而言,一旦篡改了从站的数据或者通过从站侵入主站对主站下达错误指令,可能会导致油存储量超过阈值等一系列直接危害供油系统安全的重大事故。这就提醒相关工业控制系统在进行防御措施构建和日常检测时应当加大对从站的防护力度,从而减少通过从站攻击主站的风险。
通过叶节点敏感度的评估可知E2,E3,E4叶节点敏感指数都达到了3,是最为敏感的三个关键节点。因此在制定相应的防御措施时,应采用更多的手段来加强针对E2,E3,E4这三个关键节点的防御措施,以增加系统的信息安全程度。比如防火墙的配置,异常检测,流量监控,生物密码识别等一系列方法。
本文主要结合层次分析法与熵权法,提出了一种基于攻击防御树的工业控制系统安全评估模型。该模型可以有效的对工业控制系统的安全进行评估,计算得出系统的脆弱性指数以及各关键节点的脆弱性指数。该方法主要用于辅助技术人员制定防御手段,优化防御措施方案。