崔雯迪,段鹏飞,朱红强,刘 娜
(1.中国石油大学(华东)海洋与空间信息学院,山东 青岛 266580; 2.中国石油大学(华东)计算机科学与技术学院,山东 青岛 266580)
近年来,随着网络技术和世界形势的发展,网络攻击逐渐从传统的IT互联网扩展到工业控制网络[1]。计算机系统的脆弱性导致了网络安全事件频发,公开的漏洞数的逐年攀升[2]使得网络安全问题愈发严重。IT数据网络与工业控制网络(ICS)中融合的比例日益增多,针对IT网络的攻击现已逐渐蔓延到了工业控制网络。因此对ICS的网络进行安全状况情景分析和网络安全保护已成为如今需要迫切进行的工作。对工业控制网络的网络攻击和保护已成为我们国家乃至世界关注的热点问题。
工业控制系统是包括监控和数据采集系统(SCADA)、分布控制系统(DCS)等多种类型控制系统的总称[3]。对ICS的网络攻击严重时会导致控制系统与PLC的毁坏与瘫痪[4]。人员伤亡、资产损失、环境污染和功能破坏都属于工业控制网络安全风险。应通过实施各种保护手段和策略来提高ICS中的网络安全保障,以尽可能地避免安全风险。因此,对工业控制网络进行动态的风险评估及安全保护[5]能够有力地保护网络安全。动态风险评估能够为网络安全保护提供可靠的评估信息,可在ICS网络安全防护中发挥着重要作用。
目前工业控制系统安全风险评估方法主要包含攻击树、攻击图、Petri网、贝叶斯网络和层次分析法等。美国SANS网络安全实验室提出了构建信息安全中的一般攻击模型[6]攻击树理论。文献[7]利用漏洞的利用难度和后果对系统的安全性进行了分析,采用的是攻击图技术分析系统漏洞。文献[8]能够使系统管理员量化各级网络受损的可能性,提出了一种风险管理框架,使用贝叶斯网络。文献[9]提出了经过优化的Markov理论与博弈理论结合网络风险评估方法,能够提高评估效率,将漏洞信息与受到的网络攻击威胁进行分类处理。该方法能够得到资产的具体风险情况描述攻击威胁与修复漏洞之间的博弈关系。文献[10]提出了一种结合D-S证据理论和层次分析法的工业控制系统信息安全静态的风险评估方法,并对相关网络安全提供防护对策。文献[11]将攻击图与贝叶斯理论结合,提出了一种基于贝叶斯攻击图的工业控制系统信息安全动态风险评估模型。通过先验分布和入侵检测系统获得的实时攻击样本数据,通过贝叶斯与攻击图,动态调节节点条件概率表,通过运用贝叶斯参数学习,可以为工业控制系统安全防护提供重要的安全保障。文献[12]是一种改进的HMM对IT网络安全风险评估研究方法,可有效地检测网络受到的威胁。文献[12]是以入侵检测系统的告警作为输入,来计算网络的风险值。本文是通过系统的固有漏洞,从工业控制系统的本身进行分析,最后得到分析的每条攻击路径的风险值。工业控制系统对实时性与业务连续性有苛刻的要求。IT网络遵循CIA安全原则(C:机密性、I:完整性、A:可用性),工业控制网络遵循的是AIC(A:可用性、I:完整性、C:机密性),因此系统强调的安全目标不同,本文攻击图与HMM的有机结合更适合工业控制网络。文献[13]提出了以攻击树理论为核心的工业控制系统信息安全风险评估方法。针对如何量化评估系统的信息安全状况,通过该理论对收集到的信息进行攻击建模。攻击树与攻击图都属于基于网络建模的图形化风险评估方法,其中文献[13]是基于攻击树的工控安全风险评估,是根据针对系统的各种攻击事件来构建的攻击图,树的根节点作为最终的攻击目标。本文的攻击图方法是从工控系统的固有漏洞进行分析,衡量通过漏洞的攻击路径、攻击复杂度、身份认证这3个指标来计算系统被攻击的原子攻击期望,并利用原子攻击期望值来计算所有可能的攻击路径的总风险值,从而进行一系列评估安全性分析。
本文针对互联网与工业控制网络相互融合,攻击事件与日俱增,对工业控制系统,从攻击者的角度提出一种基于攻击图的风险评估方法。运用网络节点关联性(NNC),有助于细化分析系统中各个主机安全风险。引入CVSS评价系统,不会过于依赖专家经验主观评估。通过使用隐马尔科夫模型(HMM)来对那些可观察状态和攻击状态建立联系,并结合各个系统内主机重要性对系统的安全状态进行评估。
工业控制网络风险评估模型描述如图1所示。
图1 风险评估模型
工业控制网络风险评估模型M=(主机H,连接关系C,攻击图,攻击路径,NNC)。通过工业控制网络中的主机信息,从攻击者的角度得到主机间的连接关系,生成攻击图,辨别攻击路径,结合NNC,分析各个主机的重要性程度对系统安全状态的影响,进行全方位的评估。
1)主机H。
把工业控制网络结构中的所有设备统一称为主机,包括工程师站、服务器和各种PLC等。用一个三元组表示(h-id, Vuls, Services),h-id表示网络结构中的主机名称,用所在IP地址编号表示,Vuls表示主机上所有的安全漏洞集合,Services表示该主机上运行的服务集合。安全漏洞为Vuls(v-id,type,service,port),v-id表示安全漏洞编号,根据CVSS数据库的编号进行标识,type表示安全漏洞的类型,service表示该安全漏洞所在的主机服务名称,port表示安全漏洞所在服务的主机的连接端口号。
2)主机连接关系C。
连接关系C⊆H×H×P描述了主机间逻辑的连接性。若在工控网络中存在主机h1,h2∈H,主机间的连接关系表示为C(h1,h2,p),表示h1和h2之间通过端口p访问。
3)攻击图。
用一个四元组表示AG=(S,τ,S0,Sf),S是整个状态的集合,τ⊆S×S是状态互相转换的集合,S0⊆S是最初始的状态集合,Sf⊆S是攻击者攻击成功后的状态集合。
4)攻击路径。
对于一个攻击者想要达到的状态Sn∈Sf,从初始状态S0开始,存在一组状态序列S1,S2,…,Sn-1,使得(Si,Si+1)∈τ,i=1,2,…,n-1,这就是一条攻击路径。
5)NNC。
将网络信息系统中的一台计算机设备称为一个网络节点,网络节点上的主体由节点上的用户、操作系统、应用程序组成,将网络节点n及其上的主体s记为Cns。如果一个攻击者在成功入侵网络节点A之后,利用A上的某部件CAi对节点B上的某部件CBj的访问关系,从而继续攻击节点B,那么这种可被利用的访问关系被称为部件CAi到CBj的NNC,书写为NNCAi:Bj,可简写为节点A到B的一个NNCAB[14]。NNCAB的风险信息可用一个有序五元组〈A,Src_priv,B,Dst_priv,P〉来描述。其中Src_priv表示用户在A主机上的权限,Dst_priv表示用户在B主机上的权限;P表示利用该访问关系进行攻击的成功的概率,P∈[0, 1]。
攻击图是网络安全评估的有效方法之一,能够直观地描述攻击过程,列举所有可能的攻击路径,具备优越的可视化展示能力[15]。
攻击图一般可分为状态攻击图和属性攻击图。状态攻击图也可称为特权图,各个节点代表攻击者获取的权限,节点往下延伸,代表攻击者在攻击过程中的权限提升,连接节点的边代表网络系统中存在漏洞,且可能被利用而发起攻击[16]。状态攻击图由于可包含重复的状态节点,攻击图规模会呈现指数级递增,不太适合大型网络。属性攻击图中存在2类顶点和连接边,2类顶点分别是条件和脆弱性,攻击者具备的基础权限表示条件顶点,脆弱性顶点表示主机配置错误和软件漏洞等。
3.1.1 攻击图生成算法
生成攻击图主要依据广度优先搜索算法遍历所有可能的攻击路径,通过对安全漏洞集合、主机集合和连接关系集合进行遍历。生成算法的流程图[17]如图2所示,可在Graphviz软件[18]中实现攻击图的输出。
图2 算法流程图
3.1.2 获取原子攻击概率
本文采用一种科学合理的赋值方式CVSS进行漏洞评价,由美国国家漏洞库(NVD)发布,是一套公开的评测标准,本文列出的得分是CVSS的基本分数,是由Rapid7、Qualys、Tenable等专业公司设定的,能使结果更加科学客观,避免评估结果过于人为主观。
用3个指标衡量漏洞被利用的可能性,分别为攻击途径(Access Vector, AV)、攻击复杂度(Access Complexity, AC)、身份认证(Authentication, AU)。原子攻击发生概率是攻击者成功实施一次攻击的风险发生概率,通过利用系统的安全漏洞来实施攻击。综合上述3个指标,原子攻击发生概率P的计算公式如式(1)所示,各个指标取值详情如表1所示。
P=AV·AC·AU
(1)
表1 CVSS中AV、AC、AU取值详情
3.2.1 相关定义
状态之间的转换由隐马尔科夫模型(HMM)状态转换矩阵和观察矩阵决定,主机可以处在不同的安全状态,存在的安全风险由每种安全状态的概率决定[19]。隐马尔科夫的状态转换矩阵和观察矩阵决定[20]状态与状态之间的转换。
定义1设主机系统状态空间为S={S1,…,Sn}。S0代表主机处于安全状态,没有被侵入;S1,S2,…,Sn表示主机处于被攻击状态,由于攻击者利用的漏洞或者攻击的主机不同,所以状态也会不同。例如S1状态是攻击者成功利用主机IP1的漏洞V1,因此从安全状态S0状态转换为S1状态。S2状态为攻击者成功利用主机IP2的一个漏洞从某个状态转换到S2状态。
定义2V={V1,V2,…,Vm}是被观测序列,V表示可以被攻击者利用的漏洞,m表示漏洞的序列号。
定义3A={aij}是状态转换概率分布矩阵,公式如下:
aij=P(Zt+1=Sj|Zt=Si)
(2)
B={bj(Vt)}是观察概率分布矩阵,公式如下:
bj(Vt)=P(Vt|Zt=Sj)
(3)
π={πi},πi=P(Z1=Si)是原始的状态分布。HMM可被定义为λ={A,B,π}。
定义4Pi是攻击者利用漏洞Vi攻击成功的概率。
Pi=AV·AC·AU
(4)
定义5Ii=Pi是通过利用漏洞Vi,由另一种状态转换到Si状态的权重。
3.2.2 确定模型参数
运用相关理论,自动生成状态转换矩阵和观察矩阵。状态转换矩阵算法如算法1所示。
算法1状态转换矩阵算法。
Step1 输入:V1、V2、V3、V4、V5、V6、V7
Step2 输出:状态转换矩阵A
Step3 IfSi→Sj(i≠j,1≤i≤7,j≤1≤7)
Step4 Else {aij}=0
Step5 End
3.2.3 计算隐马尔科夫模型
本文运用前后向算法来计算攻击者的每条攻击路径的概率。前向马尔科夫算法如算法2所示。
算法2前向马尔科夫算法。
Step1 输入:O,a,b,T,N
Step2 输出:Result
Step3 Result=0
Step4 Fortin range(T):
Step5 Foriin range(N):
Step6 Ift==0:
Step7 初始化a1(i)=πibi(o1)
Step8 Else:
Step10 End for
Step11 End for
Step13 Return Result
图3 实验场景图
当今工业控制领域中,广泛应用的是一种开放的、标准的网络通信协议——Modbus协议。由于以前的工业控制系统是隔离封闭的,因此该协议并未考虑安全问题。在基于Modbus的工业控制SCADA系统中,各个控制器之间或者控制器与其他设备之间都通过该协议进行通信。由于工控网络现在与互联网融合,网络攻击增加,但却没有相应的安全机制来保护系统的安全,工业控制网络安全遭到严重威胁。下面以火力发电厂的辅助车间集中控制系统为例[17],构建系统的攻击图,并利用本文所提方法来对该攻击图进行量化风险评估,实验场景如图3所示。
根据图3,实验场景包括工程师站IP1、SCADA服务器IP2、数据库服务器IP3以及2个PLC。工程师站与企业互联网相互连接,攻击者在外部通过企业互联网对工业控制系统进行攻击。因此将攻击者的攻击起点确定为工程师站IP1,攻击者已成功侵入企业互联网,攻击者想要对系统造成最大破坏,PLC的破坏会使整个系统停止运行,攻击者的最终攻击目标确定为PLC。由实验场景图生成的攻击图如图4所示。
图4 攻击图
实验场景中各主机的安全漏洞信息如表2所示。
表2 安全漏洞信息表
根据表1和式(1)计算得出每个漏洞的原子攻击发生概率如表3所示。根据图4攻击图生成的HMM状态转换图如图5所示。
表3 原子攻击发生概率
图5 状态转换图
当整个网络没有被攻击时,为S0状态。IP1被攻击时,从状态S0转化为状态S1,攻击者从攻击工程师站IP1开始,之后对SCADA服务器、数据库服务器等发起攻击。攻击者通过利用系统不同的漏洞以及攻击不同的主机,状态从S1转化成图中各种状态。
根据计算方法,生成的状态转换矩阵与观察矩阵归一化后如图6所示。
图6 状态转换矩阵与观察矩阵
本文默认攻击者从工程师站发起攻击,令π=(1,0,0,0,0,0,0),用Python实现前后向算法,计算每条攻击路径的概率。攻击路径概率如表4所示。
表4 攻击路径概率
为了进一步分析工业控制网络的安全风险,攻击者寻求攻击路径上的最大破坏,获取root权限,把PLC作为攻击者的最终攻击目标。根据图3实验场景,定义IP1为A,IP2为B,IP3为C,IP4为D,IP5为E。为了重点突出,表达清晰,省略部分NNC关系。如图7所示。
N1
图7 NNC关系
根据表4相关数据所示,PLC IP4与IP5受到攻击的可能性最高,工程师站IP1与企业互联网相连,作为攻击的起始点遭受攻击的风险发生概率是最大的,攻击者可以通过攻击IP1后直接作用于IP4与IP5,导致瘫痪,造成最大范围的破坏。因此IP1在工控系统中发挥着非常重要的作用,对IP1的相关漏洞应及时修复并建立相应的安全机制。
在分析NNC关系中,由于攻击者寻求的是攻击路径最大的破坏且同是PLC的IP4与IP5,通过进一步分析NNC关系与提供的服务,攻击者通过A N0B N1C N2的可能性大,也就是说IP4的安全风险值比IP5要高,下位机IP4比IP5更重要,攻击IP4对系统的物理资产与信息资产造成的危害更大。
本文攻击图与HMM以及NNC结合的方法评估的结果与文献[17]最后的评估结果相符,而且本文的HMM能够较快速地根据系统的变化动态评估系统的风险,从而制定更有效的安全策略。
本文简要分析当今信息安全风险评估的主要技术,针对工业控制系统本身特殊的安全目标问题,本文提出一种基于攻击图与HMM相结合的风险评估模型。从系统本身出发,应用攻击图,通过分析系统的固有漏洞,有效地结合HMM将网络攻击问题转换为状态转换问题,并计算所有可能路径的状态转换风险值,能够有效地预测最大可能的攻击路径,为工业控制系统安全防护提供强有力的决策依据与保障。引入NNC理论,通过对系统中的主机资产分析,进一步分析网络的安全风险。下一步将最大程度识别攻击类型,而且要提出一种新的工业控制系统防御方法;通过评估出各种攻击路径,能够对各类关键漏洞及攻击事件进行量化分类,帮助工业控制系统建立更加完善、更加有针对性的安全机制。