工业控制系统上基于安全域的攻击图生成
王得金1, 江常青2, 彭勇2
1. 国际关系学院, 北京 100091
2. 中国信息安全测评中心, 北京 100085

作者简介: 王得金, (1982—), 男(汉), 天津。E-mail:Dustin_w@126.com

摘要

将攻击图技术应用于工业控制系统 (ICS), 并基于工业控制系统网络结构特点,简化了攻击图的生成复杂度。该文将工业控制系统作为研究对象,下位机作为攻击目标,依据工业控制系统的层次化结构特点,提出了主机安全域和网络安全域的概念,对系统网络进行安全域划分实现攻击图的分布式生成,并依据划分结果使用攻击模式(remote/local)等要素来降低攻击图的生成复杂度。最后,通过搭建实验测试环境进行验证,实验结果表明本方法将会提高攻击图生成效率并简化攻击图规模。

关键词: 工业控制系统(ICS); 攻击图; 安全域; 风险评估
中图分类号:TP29 文献标志码:A 文章编号:1000-0054(2014)01-0044-09
Attack graph generation method based the security domain on industrial control systems
Dejin WANG1, Changqing JIANG2, Yong PENG2
1. University of International Relations, Beijing 100091, China
2. China Information Technology Security Evaluation Center, Beijing 100085, China
Abstract

An attack graph technique is given for industrial control systems (ICS) that simplifies the complexity of the attack graph generation based on the characteristics of the control system network structure. The characteristics of the control system's hierarchical structure were analyzed to develop a host security domain and a network security domain. The network is divided into some security domains so that the attack patterns (remote/local) and other factors can be separated to reduce the complexity of the attack graph generation. Consequently, this method improves the production efficiency and simplifies the attack graph scale. The method is tested in a virtual network environment.

Keyword: industrial control systems (ICS); attack graph; security domain; risk assessment

安全对经济、环境和人类自身的健康发展至关重要,因此安全问题一直是现实生活中人们关心的问题。印度博帕尔(Hhopal)毒气泄漏、前苏联切尔诺贝利(Chernobyl)核电站爆炸、日本福岛(Fukushima)核电站泄漏等灾难使人们深刻认识到工业生产过程中安全问题的重要性。然而随着工业自动化的不断发展,生产控制系统与通用信息技术进行了越来越紧密的结合,将黑客攻击引入到了工业生产过程当中。工业控制系统 (industrial control system, ICS)的安全保障能力与其自身的重要地位形成了极不对称的反差,一旦发生安全问题,将会造成极其严重的后果。从破坏力巨大的震网(Stunet)到臭名昭著的Duqu, 都将目标锁定了工业控制系统,并造成了严重的后果和恶劣的影响。这些案例都使得信息安全问题越来越成为工业控制领域研究中的一个热点问题,针对工业控制系统的科学、系统化的风险分析方法成为了亟待解决的问题。

然而,工业控制系统的风险评估还处于起步阶段,目前仅有较少的学者[1]对这一领域进行了探索性的研究,尚未提出定量、可行的风险评估方法; 另一方面,攻击图技术作为风险评估的重要技术手段,随着网络规模的扩大,存在状态爆炸的问题,不适宜在大规模网络应用。虽然Ammann[2]等首次提出将单调性假设引入到状态攻击图生成算法的约束条件中; 胡欣[3]等提出了安全梯度的概念,在递增性的同时还强调了攻击的方向性,进一步限制了状态攻击图中的状态规模。但是,上述几种方法都并未很好的抑制状态爆炸问题。

本文将通过考察ICS网络的特殊性,研究ICS网络较IT系统网络将会具有更加明确的网络结构的特性,其上发生的信息安全问题也将有更为明确的攻击目标(下位机等), 十分适合对该网络进行主机域和网络域划分的基础上,分区域进行攻击图的并行化生成,并将利用攻击模式(remote/local)等条件进行化简,从而提高攻击图的生成效率,降低攻击图的生成复杂度。

1 工业控制系统攻击的分层概念
1.1 基础知识

概念1 工业控制系统 涵盖多种类型的控制系统,包括监控和数据采集(SCADA)系统,分布式控制系统(DCS), 可编程逻辑控制器(PLC)等[4]

概念2 下位机 指直接与现场设备通信、执行控制、监控等功能的计算机,一般为可编程逻辑控制器(PLC)、 远程终端单元(RTU)等。

概念3 攻击行为 特指发生在工业控制系统(ICS)网络上的,导致工业设备损坏或者工业生产过程未按照预期进行的恶意行为。

定义1 主机安全域 在ICS中的每一个Host(上位机或者下位机)。

定义2 网络安全域 在ICS中拥有同样安全级别、应用相同安全策略的一个子网。

定义3 攻击图

AG(attack graph)定义为AG=( S, T), S为攻击图中的状态节点, T代表节点间的有向边。 S表示为 S=(ip,privil,VUL,seclevel); VUL表示为VUL=(PRE,POST,cveid,manner); PRE表示为PRE=(pre_privil,conn,trust); POST表示为POST=(post_privil,conn,trust)。AG、 S、 VUL、 POST、 PRE的数据结构内容及相互关系如图1所示。

1.2 工业控制系统攻击的特点

从攻击者的角度来看,对工业控制系统和传统IT系统的攻击行为,具有很明显的相似性,如都是基于网络来完成攻击行为,攻击的对象都是协议、应用、操作系统等的缺陷等。但是,它们也有着十分重要的不同点,其中最重要的为针对工业控制系统的攻击行为的目标所处的逻辑位置十分明确,往往是通过控制层(PLC、 DCS等)攻击底层的工艺过程。

1.3 工控系统网络结构

随着技术、需求的推动,工业控制系统网络正在逐渐的和公司原有信息管理系统(ERP等)连接起来,然而由于结构、协议的复杂性,办公系统和工业控制系统只能进行自定义业务的运行,并不能实现广泛的互联互通。总体结构如图2所示。

1) 1#、 2#、 3#区域为信息层,为公司提供数字化办公服务,使用以太网和TCP/IP协议,遵循OSI/ISO结构,介质为RJ45、 同轴电缆、光纤等;

2) 4#区域为控制层,提供对自动化设备(Senso等)监控、管理等功能,可使用工业以太网协议或者总线协议与上层进行通信。当使用工业以太网协议时该区域可与上三层区域进行直接通信; 当使用总线协议时,该区域只能与上层3#区域进行通信,介质为RJ45、 同轴电缆、 RS232、 RS485等。

3) 5#区域为设备层,提供对现场工艺过程的控制和监控,该区域可以使用总线协议或者硬接线的方式进行通信,介质为RS232、 RS485等。

图2 工控系统典型网络结构图

1.4 层次化的工控系统攻击行为

Internet上的一个对5#区域设备的攻击,可分解成多个对各个区域的逐步深入的子攻击,即层次化的攻击模式。根据该特点,将网络划分为不同级别的安全域,并利用攻击图的方法生成攻击路径。

2 基于安全域降低攻击图生成复杂度
2.1 实现步骤

生成状态攻击图时首先完成2个步骤: 1) 枚举所有状态节点; 2) 应用相应算法进行节点间的有向线段生成。

在状态攻击图中,目前遇到的主要问题是状态爆炸的问题。由定义3可知,状态节点 S=(ip,privil,VUL,netlevel), 由于netlevel为划分网络安全域自定义项,所以状态由某一漏洞所在主机ip地址、该漏洞所在主机当前具有的权限级别和该漏洞信息这3方面决定。假设网络中包含主机 n台,漏洞总数为 v, 每台主机的权限级别数为 m, 则状态节点总数 T( S)= n· v· m。而执行第2步骤时,即生成状态节点间有向线段,需要对每种组合进行测试,也就需要对算法进行 Anvm2=( nvm)( nvm-1)次循环,随着网络中主机的线性增长, nvm~ n, 状态节点间有向线段的生成工作的复杂度为 o( n2), 所以为了抑制状态爆炸问题,可以根据实际场景情况,将所有状态节点分层、分区域求解。

首先,根据主机域的定义,可以将ICS中的每一个Host看作是一个主机域,所有 S.ip相同的状态节点都落在同一个主机域内。主机域内的状态节点按照横坐标为主机权限级别 m和纵坐标漏洞数 v构成一个矩阵 hij(表示该主机域中拥有 i号漏洞和 j级别权限的状态节点), 如图3所示。

在主机域内,由于 S.VUL.PRE=(privil,conn,trust), 等同于 A.S.privil是否大于 B.S.VUL.PRE.pre_privil; 物理连接是否可达; 数据链路是否可达三者同时满足。而主机域内,后两点可以忽略,所以主机域内,状态 A能够转移到状态 B等价于 A.S.privil> B.S.VUL.PRE .pre_privil。如果某一状态 A能够到达状态 B, 假设 A状态所在主机的当前权限为 mA, 则该主机域内拥有 mA权限的所有状态都可以转移到状态 B, 收敛为一个状态集 Sm, 本文将添加 Sm中所有状态节点到状态节点 B的有向线段。极限情况下, h11如果能够转移到 h12, 则 h21hv1的状态不必判断,都可以转移到 h12。这样,在主机域内,本文就将状态转移判断问题,简化为权限转移的判断问题。

然后,根据ICS的安全特性,将其按照安全需求划分为 L个安全级别,每一个级别中的主机构成一个网络域,由于 S.VUL.PRE=(privil,conn,trust), 假设要考察来自于相同安全级别网络的状态 A能否到达状态 B, 与主机域情况不同,则等同于考察 B状态包含漏洞的攻击模式,也即 B.S.VUL .manner是否为remote以及 A.S.privil是否大于 B.S.VUL.PRE .pre_privil; 物理连接是否可达; 数据链路是否可达,这四者是否同时满足。而由于 A B来自于同一个级别网络,本文认为 A B的物理链路和数据链路都是可达的。所以,考察状态 A能否转移到状态 B, 等同于考察攻击模式是否为remote以及 A状态当前的权限能否满足 B状态包含漏洞的利用条件要求。所以,如图4所示,先对攻击模式进行筛选,去除本网络域中所有目标主机域攻击模式为local的状态节点; 然后如果某一状态节点 A可以转移到网络域内某一状态节点 B的转移,则 A状态节点所在主机与 A拥有相同权限的状态节点都添加到 B的有向线段(即可以转移到状态节点 B)。在网络域中状态转移判断过程,除了应用攻击模式判断,删除模式为local的不可用模式外,又叠加主机域内使用的“权限转移判断”的思想,可以概率性地提高判别效率。

图4 网络域内主机域间状态转移图

对于网络域间的状态转移判断问题,如图5所示,判断来自于不同安全级别(即网络域)状态节点 A能否转移到状态节点 B, 等价于判断 A.S.netlevel是否大于 B.S.netlevel; B.S.VUL .manner是否为remote; A.S.privil是否大于 B.S.VUL .PRE.pre_privil; 物理连接是否可达; 数据链路是否可达,这五者是否同时满足。本文认为物理链路都是可达的,并且高级别网络状态节点对低级别网络状态节点都是数据链路可达的(即可信的); 反之,不然,即低级别网络状态节点对高级别网络状态节点都是数据链路不可达的(即不可信的)。那么,不同网络域状态节点状态能否转移的判断问题等价于网络级别判定、攻击模式筛选及漏洞利用前提权限的判定。

将全局网络攻击图状态节点的间的可达性判断分为3个阶段: 主机域内判断阶段、网络域内主机域间判断阶段和网络域间判断阶段。主机域内主要使用了“权限判别”替代了“状态判别”,即该权限下有一个状态可达,则该权限下所有状态可达。网络域内和网络域间都使用攻击模式判定,因为这2种情况下,将主机域内所有状态节点作为一个整体看待,这时分2种情况:

1) 主机域内所有状态节点攻击模式有local也有remote类型,这时可删除所有攻击模式为local的状态节点,因为local模式的状态节点不能作为目标节点,当它作为源节点时,主机作为一个整体只考虑权限,而remote模式的状态也含有各个权限的状态,可代表local相应状态。

2) 主机域内所有状态节点攻击模式只有local类型,这时可删除到只剩一个local类型的状态,用它代表其他状态节点的相应状态。网络域间在进行玩攻击类型判断后,需叠加网络级别判断,扩充单调性。

2.2 算法逻辑

1)主机域内算法逻辑

图6所示,在主机域内,任选2个不同漏洞的状态集合 A B, 如要判断 A能否转移到 B, 则从 A中选择未比较过的最低权限状态 Ai B中最高权限状态 Bj( i<j)进行比较。

2) 网络域内算法逻辑

图7所示,在网络域内,分别选取2个Host的一个漏洞状态集合 A B, 如要判断 A能否转移到 B, 则从 A中选择未比较过的最低权限 Ai B中最高权限状态 Bj进行比较。

图7 网络域内主机域间算法逻辑图

3) 网络域间算法逻辑

图8所示,在网络域间,分别选取2个网络域中Host的一个漏洞状态集合 A B, 如要判断 A能否转移到 B, 则从 A中选择未比较过的最低权限 Ai B中最高权限状态 Bj进行比较。

2.3 复杂度分析

设网络中主机数量为 n, 漏洞总数为 v, 主机权限级别分为 m级,则寻找两两状态转移的有向线段,需要 Anvm2 =( nvm)( nvm-1)次遍历,复杂度为 o( n2)。

设平均每台主机拥有漏洞数量为 v', 则 n· v'=v; 设将网络分为 r级网络域每级网络域拥有主机数为 ni(0 <i r), 则 ni=n

状态转移有向线段的寻找工作分成如下3个阶段:

1) 主机域内阶段: 状态节点间有向线段的寻找工作,需要 Av'm2 ==( v'm)( v'm-1), 复杂度与 n无关。

2) 网络域内主机域间阶段: 状态节点间有向线段的寻找工作,需要( niv'm)[( ni-1) v'm], 复杂度为 o( ni2)。

3) 网络内网络域间阶段: 状态节点间有向线段的寻找工作,需要( niv'm)[ njv'm], 复杂度为 o( ni· nj)。

3 仿真实验
3.1 实验环境

为验证本文提出的ICS上的攻击图生成方法,搭建了ICS试验环境如图9所示。实验测试环境具体配置如表1表2所示。

表1 主机安装的应用及其漏洞
表2 漏洞描述
3.2 实验分析

在给定的实验网络环境下,每个区域的节点(主机)数、漏洞数(本地/远程)、 权限级别个数和状态数如表3所示。

表3 各区域中节点、漏洞、权限、状态数量

采用广度优先攻击图生成方法,首先应用普通攻击图生成方法,整个区域共18+18+4=40个状态,两两状态进行比较,共需要进行 C4040=1 600次算法,根据单调性等规则最后划出48+48+54+54+24+18+18+24=288条有向线段如图10所示。

然后应用安全域的概念,将实验网络分为主机域(6台), 网络域4个(1—4#区域), 主机域内(6台)需要进行(1+3×3)×6=60次算法; 网络域内(主机域间)2#区域需要进行18×2×3=108次, 3#区域需要进行108次, 4#区域为下位机不能作为攻击起始点; 网络域间2#到3#区域需要进行18×3×3=162次, 3#到4#区域需要进行12×2×3=72次。共60+108+108+162+72=510次算法。根据单调性、安全域等约束条件,最后划出48+48+54+54+24=228条有向线段如图11所示。

图11 基于安全域攻击图算法划出状态转移图

可见,对工业控制系统网络风险分析时,应用安全域的攻击图生成方法在效率上是传统方法的510/1 600=0.32倍,有较大提升。在可视化方面,应用安全域的攻击图的状态转移线段是传统攻击图的228/288=0.79, 因简化了一些不必要状态的转移线段,增强了后面风险评估的可操作性。

4 结 论

本文将攻击图技术应用于工业控制系统,针对工业控制系统的特点,通过进行主机域、网络域划分,实现攻击图的分区域并行化生成,降低了攻击图的生成复杂度,并利用攻击模式(local/remote)特点,对状态节点进行化简,简化了攻击图生成的步骤,提高了风险评估的可操作性。

The authors have declared that no competing interests exist.

参考文献
[1] 彭勇, 江常青, 谢丰, . 工业控制系统信息安全研究进展 [J]. 清华大学学报: 自然科学版, 2012, 52(10): 1396-1408.
PENG Yong, JIANG Changqing, XIE Feng, et al. Industrial control system cyber security research[J]. Journal of Tsinghua University: Science and Technology, 2012, 52(10): 1396-1408. (in chinese). [本文引用:1] [CJCR: 0.609]
[2] Ammann P, Wijesekera D, KaushikS. Scalable, graph-based network vulnerability analysis [C] //Proceedings of the 9th ACM Conference on Computer and Communications Security. New York, USA: Association for Computing Machinery Press, 2002. 217-224. [本文引用:1]
[3] 胡欣, 孙永林, 王勇军. 一种基于网络安全梯度的攻击图生成并行化方法[J]. 计算机应用与软件, 2011, 28(11): 25-29.
HU Xin, SUN Yonglin, WANG Yongjun. A network security grade based attack graph generation parallel approach[J]. Computer Applications and Software, 2011, 28(11): 25-29. [本文引用:1] [CJCR: 0.476]
[4] Swiler L P, Phillips C, Ellis D, et al. Computer-attack graph generation tool [C] //Proceedings of DARPA Information Survivability Conference and Exposition. Anaheim, USA: IEEE Computer Society, 2001: 1307-1321. [本文引用:1]
[5] Swiler L P, Phillips C, Gaylor T. A graph-based network-vulnerability analysis system, SAND97-3010/1 [R]. Albuquerque, USA: Sandia National Laboratories, 1998. [本文引用:1]
[6] NIST SP800-82. Guide to Industrial Control Systems (ICS) Security[S]. Gaithersburg, USA: National Institute of Standards and Technology (NIST), 2011. [本文引用:1]
[7] Ritchey R W, Ammann P. Using model checking to analyze network vulnerabilities [C]// Proceedings of 2000 IEEE Computer Society Symposium on Security and Privacy. Oakland, USA: IEEE Computer Society, 2000: 156-165. [本文引用:1]
[8] OU Xinming. A Logic-programming Approach to Network Security Analysis[M]. Princeton, USA: Princeton University, 2005. [本文引用:1]
[9] Ralston P A S, Graham J H, Hieb J L. Cyber security risk assessment for SCADA and DCS networks[J]. ISA Transactions, 2007, 46(4): 583-594. [本文引用:1] [JCR: 2.256]
[10] Byres E J, Franz M, Miller D. The use of attack trees in assessing vulnerabilities in SCADA systems [C]// International Infrastructure Survivability Workshop (IISW'04). Lisbon, Portugal: IEEE, 2004. [本文引用:1]
[11] Cheminod M, Bertolotti I C, Durante L, et al. Detecting chains of vulnerabilities in industrial networks[J]. Industrial Informatics, IEEE Transactions on, 2009, 5(2): 181-193. [本文引用:1] [JCR: 8.785]
[12] Stouffer K, Falco J, Scarfone K. Guide to Industrial Control Systems (ICS) Security, NIST—National Institute of Standard and Technology, 2008, Final Public Draft [Z/OL]. (2013-08-20), http: //csrc. nist. gov/publications/drafts/800-
82/draft_sp800-82-fpd. pdf. [本文引用:1]
[13] Ten C W, Liu C C, Govindarasu M. Vulnerability assessment of cybersecurity for SCADA systems[J]IEEE Transactions on Power Sytems, 2008, 23(4): 1836-1846. [本文引用:1]
[14] David A. Multiple Efforts to Secure Control Systems Are under Way, But Challenges Remain, GAO-07-1036 [R]. Washington DC, USA: US Government Accountability Office (US GAO), 2007. [本文引用:1]
[15] NIST SP800-82. Guide to Industrial Control Systems (ICS) Security[S]. Maryland, USA: National Institute of Standard and Technology (NIST), 2003. [本文引用:1]