许剑新,还约辉,王 迎
(浙江国利信安科技有限公司,浙江杭州 310053)
近几年来,工控和信息等领域逐渐重视工业控制系统(Industrial Control System, ICS)的信息安全问题[1-2],ICS安全问题的产生涉及控制系统产品功能特性、设计缺陷以及系统应用过程中的行为操作、业务流程、维护管理等很多方面,甚至存在很多未知问题,已知安全问题可以通过一些防御框架和技术手段解决,而未知问题是最危险的,一些同时利用已知问题和未知问题进行的未知攻击则是致命的。
当前流行于互联网中专门针对已具备较高防护能力的企业和组织的网络攻击APT(Advanced Persistent Threat)[2]对ICS来说是一类危险性极高的攻击。以往病毒、木马、蠕虫等恶意程序具有饱和传播、广泛杀伤、不计后果等特点,而APT攻击是一种定时、定点、定向的攻击,APT攻击发生前会有严格的传播路径、预置的攻击对象以及明确的伤害程度,尤其是针对ICS的APT攻击,已经将触手直接伸向物理实体对象,不同于传统信息系统针对数据的窃取和篡改,ICS-APT攻击可以造成不可恢复的损失。
从APT攻击的定义——高级的持续性渗透攻击,是针对特定组织的多方位攻击——可以看出,APT并不是一种新的攻击技术,而是多种渗透和攻击技术集成在一起所形成的攻击手段,其产生的驱动力就是大型企业和组织不断提升网络安全防护能力,使得一些传统的攻击形式已经力不从心,攻击者只能通过变换策略,通过递进式渗透,最终实现对目标的攻击。从另一个角度,对于防御方来说也无法通过阻止一次攻击就让威胁彻底消失。
目前已经被工控领域和信息安全领域广泛熟知的Stuxnet[4]攻击就是一种ICS-APT,其传播渗透手段、藏匿驻留时间、攻击目标对象、破坏影响程度等较之传统信息网络中的病毒、木马以及其他类型恶意软件在能力上显示出全新特点和较大提升[5],后续出现的Duqu[6]、Flame[7]同样如此,从接连发生的安全事件的惯性意义上说,ICS-APT会不断涌现,其存在是长期的、绝对的,并且是不可避免的。
但ICS-APT不会轻易出现,因为构造一次完整的ICS-APT需要巨大的时间和技术投入,这同样可以解释为什么ICS如此不安全,而发生的安全事件却很少。所以ICS-APT是一种战略行为,一旦发生安全事件都是重大事件,可以说ICS安全无小事,通常ICS-APT是作为攻守双方间博弈的手段。
由图1可以看出,APT的成功执行是需要建立在对目标ICS系统高度熟知的基础上的;相对地,ICS资产所有者并非系统开发者,同样较难掌握系统的全部安全相关信息。因此ICS-APT对于攻守双方来说都是极大的挑战,究其原因还要从ICS安全问题的独特性来分析。
图1 APT对目标ICS系统攻击行为
在过去几年探讨ICS安全问题时,已经从性能需求、可用性需求、体系结构、时间关键性需求、管理操作、生命周期、资源访问等方面对比了ICS与传统信息系统的差异[8],揭示出了ICS因其具有实时通信、长期不间断运行、环境和人员安全考量、多平台多标准、多种通信网络接入通道等特点,而这些特点也随之造就了ICS安全问题有别于传统信息系统安全问题的独特性。
而从传统信息安全的发展过程来看,早期对安全问题的讨论经常会脱离于信息系统本身,而造成了信息系统新技术不断出现,安全问题也越来越多,促使信息领域逐渐把安全作为信息系统设计开发的一部分,出现了安全平台系统、可信计算等概念。将ICS与其安全相结合,可以继续探讨ICS安全问题的特点。
最典型的信息系统网络是互联网,虽然形态上呈现出复杂图的特性,但其最经常受到攻击的是PC或服务器,可以理解为终端节点,因此互联网可以抽象成一个星型网络,每个终端节点考虑的是自身的主机安全,整个互联网安全是由相互独立的单体组成的一种分布式安全,通过单体的安全来保证网络整体的安全[9]。
而ICS的各个组件间不是相对独立的关系,其间存在大量数据交互的组件的集合体,如图2所示,因此ICS安全是一个系统整体的安全,这个整体安全依赖于ICS既定的系统体系架构、统一标准的网络通信协议、严格的通信调度顺序以及规范的行为和业务流程等多个方面,系统的任意环节、任意组件出现安全问题都可能造成系统整体的故障甚至瘫痪,而对单个设备或通信链路进行安全防护同样不能起到对整体和自身的有效防护效果,因此ICS安全是需要从整体对局部的安全负责,这是ICS安全的一个难点。
图2 ICS构成关联关系
现代ICS属于信息化系统,也不可避免地走出一条与传统信息系统相同的安全发展之路。传统工业信息系统在早期设计开发和应用中未曾考虑到安全因素,持续长达20多年,直接导致今天的安全威胁现状。
当前ICS在设计开发中仍然更多考虑的是功能和性能,所以面对解决ICS功能和性能需求时所奉行的“拿来主义”还是从实用角度出发,对一些安全机制并不完善的新技术采取纵容政策,唯一考虑的是能否高效地支持功能特性(Feature)。这些功能特性很容易被攻击者所利用,所以尽管可以把很多ICS漏洞归结为软硬件开发缺陷,但功能特性仍然是ICS漏洞的主要来源。
尽管ICS系统结构及组件间通信行为错综复杂,但漏洞源于静态的、有限的软硬件对象,因此仍然遵守漏洞的有限性原则,所以对于一个给定的系统,必然存在一个有限的漏洞集合,这对于ICS漏洞分析来说可以通过有限元素分析建模方法来进行研究,降低了分析难度;但对于漏洞挖掘工作来说,随着有限漏洞集的不断挖掘,漏洞会越来越少,挖掘难度也越来越大。
传统信息安全问题归根结底是一个权限及其与能够访问的数据间关系的问题,如图3所示,不安全就是非法权限的扩散,造成数据被非法权限访问,因此传统的信息安全防护也是基于对一个访问者角色的受信和不受信的限制。ICS除了角色外,还增加了与角色对应的行为,其行为通常与业务存在连带关系,因此ICS安全要阻止的是在合法权限角色下所做的非法行为,除了限制不受信角色的权限,同时还要限制受限角色的行为,才能保证ICS业务的安全。
图3 ICS权限及数据访问与安全
基于ICS存在的安全问题与传统信息网络安全的差异,在针对ICS的攻击上也呈现出新的形式,其中一种危害较大的就是ICS-APT[10]。
伴随着ICS安全问题的产生,出现了ICS-APT为主的新的攻击形式,这类攻击的攻击者主体不是自然人,而是一个组织或团体,对于复杂的ICS网络结构、设备组件、通信协议、工艺流程,即使较为容易地侵入到工控网络之中,没有专业的知识和对现场环境的熟悉,也很难有所作为。而一旦掌握了这些信息,便可能造成大的设备和人员伤害,所以ICS-APT攻击通常被看作是一种战略行动,而不是简单的战术行为,也因此ICS-APT需要长期地、无伤害地驻留在目标系统中,伺机进行致命打击。但ICS-APT以新颖的攻击组合形式代替了技术上的革新,也因此付出攻击时间和条件成本上升的代价。
如前所述,ICS-APT并不是通过一次攻击就能够完成的,通常不是在同一时间内直接侵入到目标系统并实施攻击,而是阶段性地、借助多种途径以跳板的形式对ICS网络及与其链接的其他有线、无线网络进行逐层渗透。
ICS-APT攻击的未知性体现在渗透路径、传播方式、目标对象等多种因素相集合,其一般的攻击步骤是:寻找突破口、渗透传播、长期贮存、伺时攻击,ICS-APT的潜伏期可以长达数年,在这期间不会对目标系统造成显著伤害。
对ICS-APT攻击步骤进行归并,可以分为渗透(Exploit)和攻击(Attack)两个阶段,恶意程序在渗透阶段并未显现出“恶意”,而是友好地与系统各组件共存,而将最终产生效果留在攻击阶段。ICS-APT攻击可以明确地分成这两个阶段,这也是有别于传统攻击的一个特点,传统攻击往往将渗透和攻击归为一个工作,渗透的过程中也同时实施攻击,这样做使得攻击者自身较早暴露,难以保证攻击成功率,而ICS-APT却需要长期隐蔽,保证对明确的目标攻击成功。
传统攻击形式并无明确的攻击目标,对于可能存在的攻击对象,也可能伤及无辜,造成更大范围网络的破坏,而ICS-APT从设计之初就是有的放矢的,在影响范围最小地前提下对目标造成最大伤害是最终目的,所以ICS-APT与传统攻击形式的一个区别在于攻击的有意识和无意识,有目标还是没有目标,定点攻击还是造成大范围杀伤。同时更重要的一点是要保证对指定目标攻击的成功率。
传统攻击形式注重恶意程序数量和影响范围,对于对网络中单体攻击的成功率并不关注,而ICS-APT需要的是可靠性和时效性,也就是在确定的时间保证攻击的一次成功。
攻击可靠性的保证在于提高ICS-APT攻击所需条件的满足率,因此在设计ICS-APT攻击时首先要确定多种路径、多个网络层次上的攻击条件集合,必须满足一定的条件组合,才能保证ICS-APT攻击的可靠性。
一个完整的APT攻击需要具备充足的攻击目标对象信息、多条路径(包括攻击冗余路径)、攻击技术库、时间窗口等,而ICS自身为攻击者“创造”的条件集不同于其漏洞集,是一个时间相关的无限集,会随现场应用场景、业务流程状态等生成新的条件集元素,只有ICS-APT攻击所需条件,在ICS中都能得到满足时,才能够进行一次完整的ICS-APT攻击,而通常状态下很可能不能满足这些约束。因此,只有随着ICS攻击条件集不断变化,到某一时间窗口时,其攻击条件集完全覆盖ICS-APT攻击所需条件,攻击才能发起并成功时间,从这个意义上来说,ICS-APT耗费的同样是时间成本。
由上分析可知,ICS-APT攻击的条件非常苛刻,有时对攻击者来说时间代价也是巨大的,而且这些条件通常是不可复制的。
如Stuxnet利用了微软Windows操作系统至少4个漏洞,其中3个是0day漏洞,利用西门子监控软件WinCC系统2个漏洞,同时伪造了RealTek 与JMicron两个公司产品驱动程序的数字签名,最终通过修改PLC程序,完成了一次目标系统的攻击。可见一次攻击同时利用了如此之多的漏洞,在传统信息安全攻击史上仍属罕见,也可以看出攻击者所做的努力和积累,攻击不是一朝一夕完成的。由前述漏洞的有限性可知,这些漏洞经过一次爆发便由未知变成已知,从基于特征的静态安全防护理论角度来说,已经能够通过入侵检测等手段阻止相同攻击的再次发生,因此可以说这次攻击是不可复制的,不像传统信息网络中的病毒或木马,其自身及其变种可能流行于互联网中数年仍然对某些用户具有杀伤力。相比于需要苛刻条件的攻击方来说,对ICS-APT的防御可能是一个优势。
综合上述特点,对ICS-APT攻击的阶段间关联、条件约束、网络层次成功概率累计、攻击可靠性和时效性、传播路径和手段进行研究,有助于进一步防御ICS-APT。
无论是传统信息安全还是ICS安全,首先要建立对安全防御的正确认识,不存在绝对的安全防御,仅仅是给攻击者增加成本,所以对ICS-APT的防御而言,同样是给攻击者增加渗透或者攻击成本。
参考传统信息安全病毒查杀、入侵检测、通信过滤等防御手段,都是在原有系统的基础上采取“修补”的形式强化安全[11-12],而ICS安全防御的特殊性在于ICS功能和性能的稳定性与安全防御手段的不稳定性间的矛盾,同时“修补”只能是短期行为,而外部添加组件不但对原系统造成不稳定,同时可能带来更多的安全问题,这是开展ICS安全防御的难点。
正确认识ICS-APT防御一方面是处理好漏洞、威胁和攻击者三者的关系,漏洞是必然存在的,威胁是基于存在的漏洞的攻击手段,而攻击者是攻击的实际操纵主体,前两者是客观的,在ICS-APT中,攻击者并不是自然人,而是作为人的代理的程序行为,因此限制具有关键操作权限的程序行为,并通过定义程序行为的正确性,对包括输入数据、输出数据、算法调整、参数校正等行为进行抽象,作为判断ICS安全评估的指标,从而据此提升ICS安全防御能力。
从ICS-APT攻击的阶段性出发,按各个阶段的行为特征和攻击条件分别进行要素提取,分阶段进行防御。而ICS-APT攻击的成功依赖于这些要素适当的组合和叠加,防御者只要阻断一个或多个要素的生成,就可以终止攻击过程,也就是说攻击实际上是一个“与”的关系,而防御则是一个“或”的关系。
ICS是一个层次化的网络体系结构,ICS-APT等威胁来自ICS网络外部,因此首先不安全也是分层次的,层次间的实际安全水平不同,纵深防御的目的是解决层次化安全问题和应对递进式攻击。
解决在用在线ICS的现场安全防御,不能单纯采用“阻断”和“修补”策略,因为考虑到上述ICS自成一体的特点,系统内呈现异构混合网络的特点,很难把一些其他安全防御设备集成进去,而另一方面对ICS进行网络边界防御,尽管目前传统信息安全多采用这种形式,但ICS复杂的网络环境和多数据通道入口都可能成为威胁从内部侵入的途径,因此纵深防御需要分为短期方案和长期规划,长期规划是从ICS各网络层次、各个组件与设备、各类通信协议等方面重新进行安全整合设计,进行下一代安全ICS的开发。而短期内作为纵深防御的一个最重要目标,是解决ICS-APT在渗透阶段的及时检测并阻断和攻击阶段的预警。
因此纵深防御的意义在于破坏了ICS-APT在ICS网络渗透的过程中的概率累积过程,其手段在于延长了渗透的时间来延缓攻击的发生,降低了ICS-APT最后的攻击阶段成功的概率。
传统的攻防对抗策略通常是先有攻击,然后根据攻击的特征,再开发相应的防护手段,这种“先攻后防”的被动防御是一种静态的防御方式,所有防御的形式都是基于攻击类型的,如通过代理来防御拒绝服务攻击,用基于静态特征的入侵防御来阻断网络渗透等,而ICS-APT攻击是未知的,其攻击形式、渗透路径都是不确定的,导致很难针对其提出如传统信息安全中的“专杀”工具。
另一方面,静态防御具有明显的滞后性,只有问题出现了之后才意识到问题的存在,所以被动的静态防御不能解决ICS-APT问题。
未来应对ICS-APT的解决方案应该是安全超前的,可以定义为“优先防御”策略。“优先防御”策略可以从两个方面入手,一方面是通过ICS安全生命周期提升系统自身安全防护能力,另一方面是以动态安全状态监控为主的预警防御机制。
ICS安全生命周期有两方面内容,一是从上述纵深防御的长期规划出发,如前所述,ICS-APT的攻击形式多是对功能特性的合理利用,因此ICS安全更重要的是完善安全功能,开发集成安全功能的ICS,而本节需要探讨的是如何在现有的非安全的ICS体系结构之下,进一步强化ICS自身的安全,不仅仅是要在ICS应用现场实施安全防御策略,而且要贯穿到从产品需求、设计、开发、测试一直到应用和维护等全生命周期中,同时对ICS的使用者、使用时间、使用条件等进行限定,从广义上来说也属于纵深防御的组成内容。
ICS安全生命周期包括安全设计、安全开发、安全测试、安全实施,其中最重要的一个环节是安全测试,测试也是安全防御的一种手段,同时又是一种模拟攻击行为,本质上属于漏洞挖掘与检测的范畴,其产生的效果可以反馈到其他环节,并指导安全生命周期的其他环节。ICS安全测试一是基于功能特性的测试,二是基于Fuzzing(基于缺陷注入的自动软件测试技术)的测试,对于攻击的有意识和无意识,这两类测试同样对应的是防御(测试)的有意识和无意识,其中ICS-Fuzzing测试是一种未知攻击模拟形式,不仅仅是信息系统中的对数据段的Fuzzing,而且要对攻击行为进行Fuzzing,即通过行为的无意识组合来进行测试,达到模拟未知攻击的测试目的。
ICS是时间和事件关键性系统,通信数据和事件行为的延迟或者阻断都可能造成严重的后果,因此对于ICS-APT的防御应该是监控大于阻断,更注重对当前安全形势的判断以及未来安全趋势发展的预测,并对尚未发生的威胁及时快速地响应,形成一种动态的安全防御机制。
正确判断ICS当前安全形势首先要区分什么是正常状态和什么是异常状态,可以通过对现场通信流量、控制行为、业务流程等特征进行提取,建立动态ICS安全模型,通过对ICS正常状态参数的导入,获得安全状态特征库,特征本身是静态的,但控制现场状态是实时变化的,将库中特征与ICS实时状态对比而实现对当前安全形势的判断。对这种方式来说,ICS的行为比较单一,更容易建立安全状态特征库,因此更适合采用基于正常状态的安全监测手段。
ICS运行的周期性决定了通过一段时间对其安全状态监测获得的数据形成对未来安全趋势发展的经验集,同时ICS系统可以通过辨识等手段对其状态和状态切换行为进行预测,二者相结合可以参考实现对时变的未知威胁从安全趋势上进行预测。
最后,ICS安全防御的需求是快速对威胁进行响应,既需要保证安全防御的时效性,又要保证ICS的正确稳定运行,尽可能保证在ICS非实时通信网络层能够减少触发ICS-APT发生的条件,及时抑制或阻断威胁。
ICS-APT在形式上有新的特点,但内容上仍然可能利用传统信息安全的攻击手段,在未来针对ICS安全防御理论与技术的研究过程中,需要牢牢把握ICS安全问题的特点,既要抛弃不适用的安全防御方法,又要从中获得可复用技术和经验,从纵深防御、安全生命周期以及动态防御机制等角度开展新的应对ICS-APT攻击的理论与技术研究。
[1] CHEMINOD M, DURANTE L, VALENZANO A. Review of security issues in industrial networks[J]. IEEE Transactions on Industrial Informatics, 2013, 9(1): 277-293.
[2] LEITH H M, PIPER J W. Identification and application of security measures for petrochemical industrial control systems[J]. Journal of Loss Prevention in the Process Industries, 2013, 26(6): 982-993.
[3] DALY M K. Advanced persistent threat[Z]. 2009.
[4] https://www.codeproject.com/KB/web-security/StuxnetMalware/Stuxnet_Malware_Analysis_ Paper.pdf (accessed Oct 20, 2017)
[5] LANGNER R. Stuxnet: dissecting a cyberwarfare weapon[J]. Security & Privacy, IEEE, 2011, 9(3): 49-51.
[6] BENCSATH B, PEK G, BUTTYAN L, et al. Duqu: analysis, detection, and lessons learned[C].ACM European Workshop on System Security (EuroSec), 2012.
[7] MILLER B, ROWE D. A survey SCADA of and critical infrastructure incidents [C].Proceedings of the 1st Annual Conference on Research in Information Technology. ACM, 2012: 51-56.
[8] BYRES E, LOWE J. Myths and facts behind cyber security risks for industrial control systems[C].Proceedings of the VDE Kongress, 2004, 116: 213-218.
[9] FABRO M. Control systems cyber security: defense-in-depth strategies[R]. 2007-10-01.
[10] KIM S J, CHO D E, YEO S S. Secure model against APT in m-connected SCADA network[J]. International Journal of Distributed Sensor Networks, 2014, 2014(6):1-8.
[11] BYRES E, ENG P. Cyber security and the pipeline control system[J]. Pipeline & Gas J, 2009, 236(2): 58-59.
[12] WEISS J. Control systems cyber security and nuclear power plants[C]. Fourth American Nuclear Society International Topical Meeting on Nuclear Plant Instrumentation, Controls and Human-Machine Interface Technologies (NPI & HMIT 2004), 2004.