工业控制系统安全现状
2020-05-11郑少波
◆郑少波 徐 伟 石 彬
工业控制系统安全现状
◆郑少波 徐 伟 石 彬
(贵州航天计量测试技术研究所 贵州 550009)
工业控制系统(ICS)是工业基础设施的核心设备,被广泛应用于石油、化工、电力、军工、制造等领域,其安全关系着企业生死存亡,关系着国计民生。2010年震网病毒(Stuxnet)爆发后,工业控制系统安全才逐步受到企业乃至国家层面的重视。目前,工业控制系统漏洞发现数量为2362个,仅占信息安全漏洞发现量的1.68%,而行业漏洞中也仅占14%。根据信息系统漏洞分布规律,可以预测还有很多工控漏洞尚未发现,这些未知漏洞对工业工控系统构成了极大的威胁,但同时也给从事工业控制系统安全厂商带来了巨大的发展机遇。
工业控制系统(ICS);信息安全;漏洞
工业控制系统[1](ICS)是多种控制系统类型的总称,典型的工业控制系统有监控和数据采集系统(SCADA[2])、分布式控制系统(DCS[3])、过程控制系统(PCS)、可编程控制器(PLC)、远程终端单元(RTU)等。随着信息技术的发展,企业生产活动不再局限于单一地点,而是跨区域、跨国际进行合作生产。已有的工控系统很难满足跨区域的要求,以以太网为代表的新的工业控制系统应运而生。工业的快速发展使得工业控制系统向智能化、分布化、互联网化方向发展,但随之也带来了新的问题,即工业控制系统安全问题。
1 工控系统安全现状
工控系统应用领域包括石油化工、电力、水利、航空航天系统、交通运输等涉及国家命脉的重要行业和关键基础设施。这些领域的系统一旦遭受攻击,将会导致非常严重的后果,甚至威胁到国家安全。近几年针对工业控制系统的攻击事件越来越频繁,其幕后甚至出现国家身影。从2000年以来,攻击事件持续发生,图1统计了2000年至2019年来的重大攻击事件,从图中可以看出2016年以后针对工控系统的攻击事件出现暴增趋势。下面将列举几例导致严重后果的攻击事件,其中很多都出现了国家身影,如攻击伊朗的Stuxnet、针对能源行业的Duqu、攻击乌克兰电厂的Blackenergy和Industroyer等[4]。
(1)震网病毒攻击伊朗核电站事件
Stuxnet蠕虫(俗称“震网”、“双子”)2010年6月被VirusBlokAda首次发现,据估计它的传播是从2009年6月开始甚至更早。震网利用了微软操作系统中至少4个漏洞,WinCC系统中的两个漏洞,通过一整套精心设计的入侵和传播流程,突破工业局域网的物理限制,对化工、发电和电力传输企业所使用的核心生产控制电脑软件实施破坏。在2011年2月的攻击中,伊朗纳坦兹铀浓缩基地至少有1/5的离心机因感染该病毒而被迫关闭。
图1 工控系统重大攻击事件时间轴
(2)乌克兰电网遭攻击事件
2016年12月17日当地时间23点左右,乌克兰的国家电力部门又一次遭遇了黑客袭击,这次停电持续了 30 分钟左右,受影响的区域是乌克兰首都基辅北部及其周边地区。推测2016年12月那次半个小时的乌克兰停电事件是由Industroyer攻击导致。
(3)台积电勒索病毒入侵事件
2018年8月3日晚间,台积电位于台湾新竹科学园区的12英寸晶圆厂和营运总部,遭遇勒索软件攻击且生产线全数停摆。直到8月6日台积电官方才发表声明,称已经恢复生产。官方发言人还表示这三天的停摆,将会直接导致台积电第三季度的营收下降3%!而据此前对台积电第三季度营收的预测为600亿,3%也就是18亿!台湾媒体爆料称,这次攻击台积电设备的是勒索病毒Wannacry,而中毒的原因可能是Windows 7系统没有升级补丁,或者没有关闭445端口,导致WannaCry病毒入侵就迅速传播到其他生产线中。
美国、欧盟对工控安全的研究起步较早、并取得了较大的成果。以美国为例,其在工控安全领域起步早、研究成果丰硕,发布了大量的标准文献及指导性文献;成立了多家工控系统重点实验室,如爱达荷国家实验室、桑迪亚国家实验室等。此外,NIST还制定了工控安全相关的标准如NIST SP800-82 NIST800-53等,并不断持续更新以适应新的安全局势。
我国的工控安全研究起步晚,政策管理上还有待完善,相关的行业标准也处在研究阶段,未来我国的工控安全形势依旧严峻。
2 工控安全威胁
工业控制系统安全面临威胁主要来自Windows操作系统、工业软件系统、工业控制硬件、工控协议等漏洞,攻击者常常利用这些漏洞来达到入侵工控系统的目的。其次由于工控系统的特殊性,常常与互联网物理隔离,导致管理者忽视漏洞的修复工作,这也是工控系统面临的又一大问题。此外工控威胁的来源还包括内部无意威胁如操作失误、网络过载、软硬件故障老化,第三方后门如维修人员在系统维修时对统进行未授权更改或安装非法软件,内部有意攻击如蓄意破坏、非授权篡改、非授权窃听等[5]。值得注意的是,以工控系统为目的的攻击才是真正的威胁。
从2010年震网病毒被发现以来,工控安全才逐渐引起企业和国家的高度重视。来自国家信息安全漏洞共享平台的数据显示,截至2020年2月18日,上报到漏洞库的工业控制系统漏洞数达到2362个,如图2所示,2010年以前每年的工控系统发现的漏洞数量不超过5个,1970年数据为此前漏洞发现数量的汇总。2010年以后,工控漏洞发现数逐年递增,这表明工控安全真正在逐步受到企业乃至政府的重视。
图2 漏洞发现年份分布图
虽然工控漏洞发现数量正在逐年增多,截至2020年2月18日工业控制系统漏洞发现数量为2362个,仅占信息安全漏洞发现量的1.68%,而行业漏洞中也仅占14%,图3为国家信息安全漏洞共享平台统计的行业漏洞发现数量的占比情况。
图3 行业漏洞发现率
造成工业控制系统漏洞发现数量过低的原因主要有以下几方面:
(1)工控安全行业仍处于发展阶段,对工控漏洞挖掘、入侵检测、防御等相关的技术还处于技术积累阶段;
(2)工控系统使用的软、硬件设施涉及的种类多、技术实现复杂且价格昂贵。想要对工控安全开展全面的研究,这不仅要求从事工控安全产业的厂商具有雄厚技术基础,而且还需要有大量的资金支持。
(3)工控行业涉及领域极其广泛,包括石油化工、电力、水利、交通、军工以及各种制造行业,这就决定很少有工控安全厂商能够将业务覆盖到如此多的行业中去。各大工控安全厂商通常都是深耕在一到两个行业中开展相关的工控安全业务。
3 工控安全防御技术
常见的工业控制系统安全防护技术主要包括入侵检测技术、漏洞扫描与挖掘技术、工业防火墙技术、工业网闸等。
(1)工业防火墙
工业防火墙技术[6]和传统的防火墙技术有很大区别。通常工业系统中使用的很多工业协议都是专门建立在TCP/IP协议之上的应用层协议,因此在工业控制系统中需要专门的防火墙技术。此外,工业防火墙必须具有对大多数工业协议如Modbus TCP、OPC、PROFNET等的深度解析能力,并且能够支持对异常报文的过滤、阻断、报警等各类功能。
(2)入侵检测技术
入侵检测技术[7]是一种主动的安全防护技术,通过对工控系统的通信数据进行监听,并分离出异常的系统通信行为,在攻击者实施攻击前进行拦截或者通知其他安全设备进行联动,从而保护整个工控系统的安全。
(3)漏洞扫描与挖掘技术
工控系统漏洞扫描技术[8]是指通过扫描及时发现可以利用的工控系统漏洞的一种技术。漏洞扫描技术可以帮助系统管理员及时发现系统中潜在的安全威胁,并快速排除这些安全问题。漏洞扫描技术可分为基于网络的漏洞扫描技术和基于主机的漏洞扫描技术。两种漏洞扫描技术都有一个共同的特点,即通过非破坏性、主动的方法检测系统漏洞。
漏洞挖掘技术是指通过特定手段发掘系统漏洞的一种技术。和漏洞扫描技术不同的是漏洞挖掘技术发掘的是未知的漏洞。工控漏洞挖掘有动态测试和静态分析两种技术:动态测试技术是指在运行状态下采用模糊测试[9]、双向测试和风暴测试等手段进行的漏洞挖掘办法;静态测试[10]是指在非运行状态下进行的漏洞挖掘技术,如静态代码审计、二进制比对及逆向分析等。
(4)工业网闸
工业网闸应用在两个不存在通信链路的网络之间,对需要传输的数据进行无协议摆渡。工业网闸从逻辑上隔离、阻断了对工控网具有潜在攻击可能的一切网络连接,使外部攻击者无法直接入侵、攻击或破坏内网,保障了内部主机的安全。
[1]K Stouffer,J Falco,K Scarfone[R]. NIST Special publication,2008:82.
[2]Wei Gao, Thomas Morris, Bradley Reaves. On SCADA Control System Command and Response Injection and Intrusion Detection[C]// ECrime Researchers Summit(ECrime). IEEE, 2010.
[3]Pollet J. Using cyber vulnerability testing techniques to expose undocumented security vulnerabilities in DCS and SCADA equipment[J]. 2006.
[4]魏祺. 工业控制系统信息安全研究综述[J]. 通信电源技术,2019(5).
[5]陶耀东,李宁,曾广圣. 工业控制系统安全综述[J]. 计算机工程与应用,2016(52):18.
[6]华镕. 工业控制网络中的防火墙[J]. 自动化博览,2018(4):58-60.
[7]赖英旭,刘增辉,蔡晓田,等. 工业控制系统入侵检测研究综述[J]. 通信学报,2017(2).
[8]孙易安,胡仁豪. 工业控制系统漏洞扫描与挖掘技术研究[J]. 网络空间安全,2017(1):75-77.
[9]陈衍铃,王正. 模糊测试研究进展[J]. 计算机应用与软件(7):297-299+301.
[10]张林,曾庆凯. 软件安全漏洞的静态检测技术[J]. 计算机工程(12):163-165.