APP下载

工业控制系统关键组件安全风险综述

2022-06-24唐士杰袁方李俊丁勇王会勇

网络与信息安全学报 2022年3期
关键词:工控固件攻击者

唐士杰,袁方,李俊,丁勇,王会勇

(1. 桂林电子科技大学计算机与信息安全学院,广西 桂林 541004;2. 桂林电子科技大学电子工程与自动化学院,广西 桂林 541004; 3. 外交部通信总台,北京 100016;4. 国家工业信息安全发展研究中心,北京 100040; 5. 桂林电子科技大学广西密码学与信息安全重点实验室,广西 桂林 541004;6. 鹏城实验室新型网络研究部,广东 深圳 518055; 7. 桂林电子科技大学数学与计算科学学院,广西 桂林 541004)

0 引言

随着工业4.0的全面推进,越来越多的信息技术和通信技术被集成到现代工业控制(简称“工控”)系统(ICS,industrial control system)中。工控系统从单机走向互联,从封闭走向开放,从自动化走向智能化,为网络安全威胁向其加速渗透提供了条件[1]。《2019—2021年中国工控市场预测与展望数据》[2]表明,发现2019—2021年,中国工控市场保持年均12%以上的快速增长。到2021年,市场规模达到2 600亿元。在工控市场激增的同时,我国工控设备暴露数量明显上升。另外,工控系统需求的提升促进了数据采集与监视控制(SCADA,supervisory control and data acquisition)系统、控制器、高精度传感器等组件功能结构的更新变革。物联网、云计算和5G等新技术在工控系统中得到快速发展与应用,引入了新的安全风险,也意味工控安全将迎接更为严峻的挑战。

在文献[3]中,Babu等概述了工控系统的新趋势:在工控的主要领域,从传统的机电系统逐步转换到基于网络的数字系统,数字集成系统因其具有实时、可靠等特点,在工业和制造业中发挥着关键作用。Ayodeji等[4]也提到:“数字产品引入工控系统,以取代老化和过时的模拟控制系统。数字系统的共享兼容性使IT设备被大量用于ICS。然而,共享设备暴露了传统信息物理系统控制中常见的不透明性。”

ICS已从集中控制结构转变为当前的分布式控制结构,许多计算和信息传输功能已逐渐分散,从中央节点扩展到边缘节点。ICS中的每个节点(如传感器、控制器或执行器)都可以配备物联网模块,从而具有计算和信息传输的能力[5]。分布式控制一般采用冗余控制器体系结构,这是保证系统稳定性的一种实用方法,但这种体系结构扩大了系统攻击面,降低了对正在进行的网络攻击做出响应的敏感性[6]。

工业4.0是以智能制造为主导的第四代工业革命,它将信息物理系统、物联网、云计算、工业集成、企业体系结构、面向服务的体系结构(SOA,service-oriented architecture)、业务流程管理、工业信息集成等技术结合应用,推动了制造业向智能化转型[7]。物联网云服务也正融入关键基础设施[8],新技术带来新的安全理念的同时,带来了新的安全问题。例如,云计算为ICS提供服务,包括数据传输、存储、数据处理及分析,这引起了人们对云环境数据安全性是否可信的担忧。物联网系统中设备、通信协议的异构性,以及系统中节点的规模和数量,使物联网系统的安全性比传统网络更具挑战性。

近年来,很多学者从不同角度对工控系统的安全问题进行了归纳、总结。Asghar等[9]简要说明了ICS中存在漏洞和威胁,重点论述了现有解决方案,并对其分类。Upadhyay等[10]以标准漏洞数据库中报告的真实事件为例,描述了各种类型的潜在 SCADA 漏洞。Nazir等[11]对模拟SCADA攻击进行了分类说明,但其大部分参考文献是2015年以前的。Yadav等[12]对2016年前影响较大的SCADA真实攻击事件进行了分析,将攻击分为5类,即恶意软件、非网络攻击、未经授权的远程访问、服务中断和未知。Alladi等[13]分析了近20年ICS的重大攻击案例,描述了案例中的攻击目标、攻击描述、结果及解决方案。冯涛等[14]对工业以太网协议的脆弱性进行了分析,并对主要防护技术进行论述。Sajid等[8]对基于云辅助互联网的工业SCADA系统的安全挑战进行了阐述,并提出了10项建议来保护SCADA系统。

上述文献主要阐述工控网络安全的漏洞、脆弱性以及防御方法,缺乏对ICS关键组件的攻击方法的总结归纳。针对上述问题,本文分析了工控系统中存在的威胁,对关键工控组件攻击方法进行了分析和分类。

1 工控系统

工控系统基本架构可分为3个层次,如图1所示[15]。

图1 工控系统基本架构Figure 1 Basic architecture of industrial control system

1) 公司网络层:管理者可以远程访问监控计算机或人机界面(HMI,human machine interface)。

2) 逻辑控制层:常见的系统有数据采集与监视控制系统和分布式控制系统(DCS,distributed control system)。该层用于监控生产状态,并利用HMI实现人机交互,其核心组件如下。

① SCADA控制中心:由主站单元、数据库服务器、应用程序服务器、工程师工作站、生产调度工作站、诊断服务器等组件组成,用于管理、协调和控制工控系统。

② 人机界面:一种图形用户界面系统,能显示ICS环境中传感器收集的设备状态和历史数据,配置、变更控制算法和参数并将其部署到控制器,监控整个ICS。

3) 物理控制层:由控制器和现场仪表组成。这层设备主要包括以下组件。

① 可编程逻辑控制器(PLC,programmable logic controller):一种用于自动化控制的微控制器,它能监视现场设备的状态,可以根据工程师创建的控制逻辑,实现对生产过程的自动控制。

② 远程终端单元(RTU,remote terminal unit):能将远程传感器和执行器连接到中央系统,但通常不支持控制回路。与PLC相比,RTU不仅具有PLC的基本功能,更适用于在远距离通信和恶劣温湿度环境下工作。

③ 仪表和执行器:直接测量和执行控制命令的组件。

工控系统的通信至关重要。工业通信网络,特别是监控网络,大部分使用专有工控协议来交换信息和管理设备,具有快速响应和较少网络故障的特性[16-17]。常用的通信协议有Modbus、DNP3、Foundation Fieldbus、Profibus等。

2 工控系统安全问题

工控系统是由工控组件构成的,几乎所有的组件可能遭受网络攻击。Gonzalez 等[18]对由277个供应商开发的988个针对工控系统的漏洞咨询报告进行了深入分析。结果显示,人机界面、SCADA软件和PLC是受影响最大的组件。黄家辉等[19]根据漏洞的危害性对各个因素进行了分级,如表1所示。表中的大、中、小分别代表如果组件被利用,对工控系统产生的影响大小(严重、一般、较小)。从表1可以看出,PLC、RTU和服务器/数据库等组件在遭受到攻击时,对工控系统危害大。因此,本文详细讨论关键工控组件的安全问题。

表1 漏洞危害性打分Table 1 Score of vulnerability harmfulness

2.1 工控设备存在的安全问题

2.1.1 SCADA控制中心

控制中心的主机大多是通用的计算机,并使用通用操作系统,从而为SCADA中心带来了多种安全风险。首先,微软公司在2014 年已经停止对Windows XP 提供升级服务,但Windows XP 的使用比例依然超过40%;Windows 7在2020年停止升级服务,但它的使用比例占据首位[20]。即使采用了最新的操作系统,从可用性考虑,很多企业在使用过程中也较少使用补丁和安全更新,这意味着大多操作系统存在潜在漏洞风险。其次,控制中心的软件组件缺乏保护,很多主机未安装杀毒软件或安装了杀毒软件但使用过程中较少更新病毒库。杀毒软件升级更新可能与应用软件不兼容,导致出现应用软件“误杀”或冲突的情况。另外,随意使用不安全的移动设备,容易导致主机染上病毒,从而导致应用软件被病毒篡改或恶意卸载。

SCADA软件产品也可能存在代码质量问题导致缺乏安全性。一些SCADA代码评审指出,SCADA系统的软件设计和实现通常不遵循安全的软件开发生命周期。专有应用程序中的不安全函数调用,尤其是OPC动态链接库(DLL)中的不安全函数调用,容易使SCADA系统受到攻击[10]。SCADA软件产品维护不善也会导致安全风险出现。补丁通常是在发现漏洞后发布的,新补丁与漏洞发布之间可能存在时间间隔。同时,很多工控用户不愿意打补丁,这归因于补丁修补程序失败率较高、有些补丁会由于未经适当测试引入新的未知漏洞或其他风险、打补丁的过程需要停机操作等。这使未打补丁的软件成为系统最大的漏洞之一。SCADA软件趋于采用通用、标准的商用货架产品(COTS,commercial off-the-shelf)软件作为构成系统软件的基础,是使SCADA系统不安全的又一诱因[21]。基于COTS的设计可能更便宜并可以减少设计时间,但会损害产品的整体安全性。而且,当出现新的漏洞时,通常很难在SCADA系统中修补此软件[22]。

新一代的人机界面是基于Windows的操作系统,可配备触摸屏、ActiveX、数据库和远程访问功能[23]。HMI用户可能使用默认密码和弱密码,攻击者可以通过查阅用户指南、猜测、字典攻击或暴力攻击等方式破解;HMI相关软件中可能存在漏洞,包括为便于调试而故意留下的后门,以及不良编程产生的无意漏洞[24-25];通过Web浏览器连接可随时随地访问系统,攻击者可以通过应用程序未经授权访问控制中心[26],从而带来SQL注入、目标遍历等其他与Web相关的风险。

2.1.2 控制器

控制器是基于微处理器的专用工控设备,可以对其进行编程来自动监视和控制现场设备及过程。厂商在设计控制器时考虑的安全性,更多是对受监视过程变化的实时响应以及在环境中工作的能力[27],很少会考虑抵御网络攻击的设计,如身份验证机制、数据加密等。即使有些PLC有安全功能,但它们通常会被忽略或禁用,因为安全性通常与操作不一致[28]。大多数PLC可以通过以太网连接到ICS,并间接连接到互联网。这大大增加了PLC被攻击的风险。在使用过程中,控制器的CPU和内存资源限制、较长的生命周期以及严格的停机时间要求,使得很难在现场修补现有设备,也几乎不可能安装任何类型的端点保护[29]。

控制器的固件存在安全风险。控制器基于专有操作系统设计,有些修补程序仅仅适用于原始设备的生产商,其安全升级一般由生产商修补[10],在远程更新时,容易遭受攻击。有些供应商为方便用户自行更新,在其网站上发布了固件更新的数据,固件更新时,有些控制器仅仅在客户端进行验证和加密,攻击者可以采用软件逆向工程和协议逆向工程绕过它[6],加剧了安全隐患。

固件在更新操作时面临的威胁如下[30-31]。

1) 逆向工程:如果攻击者能够获取固件映像或相应的二进制文件,可对固件的操作进行逆向工程,以获取敏感信息。

2) 固件修改:攻击者在固件中修改其内容,以便执行未经授权的操作。

3) 获得访问授权:某些设备在与外部设备通信时需要授权。如果攻击者可以获得该授权,则能够对目标设备进行不同类型的攻击。

4) 安装未经授权的固件:恶意方或具有恶意目的的合法方会尝试将未经授权的固件安装到设备上。一旦在设备上安装了未经授权的映像,攻击者便有可能进行其他攻击。

5) 未经授权的设备:非法设备可能伪装成合法设备并取得真实固件的复件。

控制器的可编程区也是攻击者关注的目标之一。为获得对物理过程的控制权,攻击者可能会伪造、篡改PLC的控制逻辑。此类攻击涉及的主要漏洞是PLC协议中缺少身份验证措施[32-33]。控制器的控制逻辑在上载、下载操作时很少通过身份验证,或者仅在上载、下载的一个方向上支持身份验证。攻击者可以通过对PLC的物理访问或通过网络来利用此漏洞,并将恶意逻辑下载到PLC上。结构和设计不够完善的梯形图逻辑代码也会增加漏洞的风险。这方面的漏洞有:使用重复的指令、使用硬编码值、缺乏详尽的诊断和警报消息、未使用的标签或操作数、程序模式等[34]。

2.1.3 现场设备

现场设备通常是功能和资源有限的较低级别的组件。随着嵌入式技术的快速发展,智能设备逐渐增多,使现场设备也能进行本地存储和少量的数据处理。攻击者开始关注对低级设备的攻击,这可能会对物理工业系统造成直接损害,并且难以发现[6]。对现场设备进行防护的最大困难之一是资源限制:现场设备通常没有足够的内存和资源来执行安全功能,存在物理直接暴露或远程非法访问的威胁;此外,现场设备可以运行数年而无须重新启动,会造成碎片积累,从而导致设备存在缓冲区溢出问题。还有一个问题是关键组件缺乏冗余,如发电机或不间断电源(UPS)缺乏备用电源[22]。

2.2 工控网络

传统的ICS网络与互联网是完全隔离的,其底层专有通信协议在设计之初以功能为主要目的进行设计,协议缺乏内置的安全性设计[35],如缺乏认证机制、过时的授权服务、没有权限区分、弱口令、不必要的端口与服务、明文传输数据等。Modbus协议是在工控系统中应用较多的一种专有协议。该协议采用轮询方式查询数据,每个请求之间会有一个小的时间间隔,从而为劫持通信留下一个很小的但可用的时间窗口。此外,它没有用于身份验证、授权和加密的内置机制,使攻击者有可能分析出Modbus消息中来自物理过程的关键信息[36]。Biham等[37]指出西门子PLC S7-1200使用的P2协议(S7协议版本2)在下载消息时不受完整性保护,且不对运行对象加密。作者模拟了TIA与S7-1200之间的通信,以纯文本形式发送运行对象,攻击者在分析运行对象的结构后,确定其指令和操作数,能很容易地修改现有的运行对象来构建具有某些功能的控制程序。此外,其他的协议存在类似的安全性问题。

在现代工控系统中,随着全球互联网技术的发展,工控协议趋于开放和透明。基于TCP/IP或UDP/IP技术的工控协议陆续推出并成功应用。施耐德公司推出了基于TCP/IP以太网的Modbus TCP。它是第一家采用TCP/IP以太网并用于工业自动化领域的标准协议,其TCP端口是502。除此之外,还有PROFINET、OPC UA、Ethernet/IP、POWERLINK和HART/IP等协议,还有些设备使用现有的IP网络(包括Internet)进行通信[38]。这些新的变化,使ICS组件以及通信协议遭受外部黑客攻击的风险比传统IT系统高[39]。

数据加密和身份认证是传统互联网络采用的保护数据完整性和机密性的有效手段。为了保护ICS免受网络攻击,一些学者尝试将其引入工控系统[40-42]。加密技术的引入,极大地减少了重放和窃听攻击[43]。智能电网中的大多数电子设备有望具有轻量级的加密功能[44]。

目前针对密码学在工控系统中的应用研究仍处于起步阶段[42]。加密传输应用于工控系统还有很多问题没有得到很好的解决。

1) 实时响应问题。ICS是硬实时系统[45],在特定时间范围内没有发出控制信号或完成某项操作,可能会导致生产安全方面的重大损失。

2) 有限的计算能力。工控系统中控制器及现场智能设备的内存和计算能力有限,而加解密算法的实现需要比较大的开销。

3) 系统稳定性问题。Wei等[46]通过实验说明消息加密和解密导致的额外时延可能会导致智能电网的电压崩溃概率变为原来的10倍。这说明加解密算法可能带来不小的负面影响,甚至严重的后果。

4) 系统可维护性问题。加密会大大增加故障排除和恢复的成本,与未加密的网络相比,未加密网络中的问题(如通信故障、重传、设备故障等)可以更快、更轻松地被识别[47]。

无线技术在控制系统中的应用越来越多。工业无线通信是数字化转型的关键要素,但也可能带来一些挑战。传统的Wi-Fi(802.11)可用于在工程便携式计算机、移动HMI、PLC等之间建立连接。但如果配置不正确(即安全性和传输范围),它们可能会在现场站点的物理范围之外引发额外的风险[48]。无线传输极易受到来自各种来源的干扰和影响,如电磁辐射、热噪声、快速移动的设备等,这会导致传输错误。

随着工业互联网的快速发展,云计算为工控系统带来了很多好处。基于公共、私有或混合的云服务,使使用者可以在任何时间和任何地点方便地访问ICS操作数据[49],简化了工业管理的流程,提高企业的经济效益。但是,云计算的大规模发展也带来了许多问题。国家互联网应急中心在2020年上半年数据分析报告中指出[50]:我国根云、航天云网、OneNET、COSMOPlat、奥普云、机智云等大型工业云平台持续遭受来自境外的网络攻击,平均攻击次数达到114次/日,同比上升27%。工业云平台承载着大量接入设备、业务系统,以及企业、个人信息等重要数据,使其成为网络攻击的重点目标。这使ICS面临如下新的安全问题[8,51]。

1) 云通信的加入使SCADA系统更加开放,在通信过程中可能存在数据嗅探、数据泄露、数据修改、数据丢失或数据欺骗。

2) SCADA系统和云之间的网络连接可能会打开ICS的后门,攻击者可以利用这些后门进行攻击。

3) 运行在云上的SCADA系统应用程序很容易被攻击者搜索和滥用。

4) 云和外部个别服务提供商都有自己的安全漏洞。

3 工控系统攻击分类

3.1 SCADA控制中心

控制中心的工程师工作站可将控制程序下载到PLC 中执行控制命令。因此,工程师工作站是部署恶意活动的主要目标。Biham等[37]创建了恶意工作站,并伪装成工程师工作站,实现了对PLC远程启动/停止攻击和程序下载攻击。作者构建了两种恶意工作站。

1) “流氓”工作站:利用伪造的工作站,自行构建或读取原有的S7数据包,修改后发送给PLC,执行PLC的启动/停止攻击。

2) 高级“流氓”站:利用现有工作站,采用中间人攻击,用代理工作站接管现有工作站,并从中接收会话密钥;能独立修改下载消息所包含控制逻辑的两个副本(源代码和二进制代码);能够按工程师期望的方式维护源程序,同时对PLC进行编程以运行工程师永远不会看到的恶意二进制文件。

Zhang[52]设计了两种针对工程师工作站的攻击方案,其攻击路径如图2所示。一种是数据泄露。攻击者通过网络钓鱼攻击,在工程师工作站与外部恶意服务器之间建立服务器−客户端协议,从工程师工作站窃取关键信息。另一种是恶意数据注入攻击。如图2中E所示,攻击者将虚假数据注入工程师工作站和数据存储器,以覆盖攻击者的踪迹。其错误注入攻击步骤如表2所示。

图2 对工程师工作站的攻击场景Figure 2 Attack scenario on engineer workstation

表2 错误注入攻击步骤Table 2 False data injection attack steps

HMI也是常见攻击目标之一。HMI容易遭受密码窃取攻击[3]。大多数HMI存在没有账号和密码管理措施、用户账号权限分配不当、密码采用弱密码或初始密码或长期保持不变等问题。

针对HMI的隐形欺骗攻击也较为常见。攻击者利用虚假信息,让操作员将错误的情况视为真实情况。Kleinmann等[53]提出了一种基于语义网络的攻击,攻击工具的架构如图3所示。在劫持HMI和PLC之间的通信通道后,攻击者仅替换消息内容,而不注入、删除、扩展或压缩消息,同时使HMI呈现虚假的工业过程视图,从而欺骗操作员采取不适当和有害的手动操作。但由于被攻击者替换的消息的大小、时间及命令序列等都是100%合法的信息,攻击是完全隐身的,很难检测到此类攻击。Hu等[54]也做了相似的研究。

图3 攻击工具的架构Figure 3 The architecture of attack tool

3.2 PLC

可编程逻辑控制器是工控系统中使用最广的一种控制器。对PLC的攻击会影响物理过程,为工控系统带来灾难性的后果。对PLC的常见攻击有如下几种。

1) 固件修改攻击(firmware modification attack):固件是嵌入式设备的底层软件,PLC固件为系统输入和物理输出之间提供了软件驱动的接口[55]。现在很多PLC控制器具有固件更新的功能,可以在无须对硬件进行物理变动的情况下,使用软件更新包来修补漏洞或升级功能。攻击者可以利用这一更新过程,通过逆向工程获取固件更新包,然后利用重启系统的控制器漏洞,获取PLC的访问权限,再通过远程或本地重启固件更新将恶意代码注入,可执行未经授权的操作。

Basnight等[55]介绍了一种通用的固件分析方法,通过实验演示了如何更新修改固件版本,说明了对PLC进行固件修改攻击的可行性。Garcia等[56]通过修改PLC固件,实现了对PLC输入输出的控制。Ma等[6]验证了分布式系统中冗余控制器体系结构的缺陷,对控制器成功进行了隐形攻击,其攻击过程如下。敌手首先对备用控制器B发起固件修改攻击。攻击备用控制器不会引起控制系统状态的任何变化,因此不会引起管理员或其他监控系统的注意。接着,敌手攻击主控制器A,产生系统故障的假象,激活切换机制。然后,敌手对主控制器A发起固件修改攻击并注入恶意代码,再次激活切换机制。在经过两次切换控制器后,攻击者能够成功控制主控制器。

2) 有效负载攻击(payload attack):PLC中的控制程序称为有效负载。通过修改或替换PLC的有效负载,可以获得对执行器的控制权,破坏生产过程,可能导致工控系统中断、设备损坏等严重的事故。

Govil等[33]讨论了梯形逻辑炸弹(LLB, ladder logic bomb),即以梯形逻辑编写的恶意软件,描述了三类LLB:拒绝服务LLB、用于处理传感器读数和命令的LLB、用于秘密数据记录的LLB。由于在将新逻辑下载到PLC之前缺乏安全性检查和身份验证,攻击者可将这类恶意软件插入PLC的现有控制逻辑中,然后持续更改行为,或者等待特定的触发信号来激活恶意行为。

Yoo等[32]提出了两种新的控制逻辑注入攻击。① 数据执行攻击。如图4所示,攻击分为两步:首先,攻击者将恶意控制逻辑代码传输到目标PLC的数据块,因其不在代码块的地址范围内,因此不受签名的限制;其次,攻击者修改指向恶意控制逻辑代码基址的指针,从而将PLC的系统控制流重定向到恶意逻辑,并迫使PLC执行攻击者的逻辑。② 碎片和噪声填充攻击。该攻击通过在控制逻辑包中附加一系列填充字节来破坏深度包检查。这两种攻击在不中断数据包的传输过程也不修改PLC固件的情况下,操纵控制逻辑数据包,隐秘地将逻辑传输到PLC。

图4 对协议头检测的数据执行攻击Figure 4 Data execution attack on protocol header inspection

Li等[57]通过仿真实验证明错误的顺序逻辑攻击会导致严重的过程中断或设备损坏。实施此类攻击的基本要求如下:物理过程是周期性的,多个控制组件彼此关联;控制操作有严格的顺序要求且控制命令有数量限制;攻击者可以获得足够的知识和背景信息(如系统拓扑),并能够更改网络控制系统中工厂与控制器之间交换的数据等。为了成功实施该类攻击,至少要解决3个问题。首先,攻击者需要渗透目标系统以收集所需信息,如系统结构、现场设备的配置和参数。其次,攻击者需要了解组件中使用的专有数据,以构建恶意有效负载。最后,需要将恶意有效负载部署到最终目标。这些挑战使在实践中难以成功实施此类攻击。

有些学者通过将工程软件与原始(未感染)控制逻辑结合使用,采用中间人攻击的方式隐藏恶意修改。Kalle等[58]设计了一种对PLC控制逻辑实施远程攻击的方法(CLIK)。攻击过程如图5所示,共分为4个步骤。① 利用零日漏洞破坏PLC的安全措施,从目标PLC窃取原始控制逻辑。② 将窃取的控制逻辑的二进制文件反编译为其高级源代码。③ 通过基于规则的自动化方法感染源代码,将代码编译为二进制表示,再传回PLC以感染控制逻辑。④ 使用虚拟PLC向控制中心的工程软件提供虚假信息。当工程软件尝试从PLC获取控制逻辑时,虚拟PLC会截取该请求,然后使用捕获的流量发送原始控制逻辑进行响应。虚拟PLC从工程软件的角度模拟未感染的真实PLC的行为。作者在52个控制逻辑程序上进行测试,结果表明CLIK能成功地处理不同的逻辑程序。平均而言,CLIK不到1 min即可完成攻击周期并感染目标控制逻辑。

图5 控制逻辑感染攻击链CLIK的高级总览Figure 5 High-level overview of CLIK, a control logic infection attack

Senthivel 等[59]在PLC和运行PLC编程软件的工作站之间实施了中间人操作。当梯形逻辑程序被从编程软件下载到PLC时,攻击者将原来的梯形逻辑的一部分替换为受感染的逻辑。当工程师试图将(感染的)程序从PLC上传到编程软件时,攻击者将拦截流量并用原始逻辑替换感染的部分。因此,该软件显示正常的程序,以达到欺骗工程师的目的,如图6所示。

图6 DEO攻击1-从工程软件中隐藏受感染的梯形图逻辑Figure 6 DEO attack 1-hiding infected ladder logic(running in a target PLC) form the engineering software

3) 引脚控制攻击(pin control attack)[60]:该攻击在不修改PLC逻辑指令或固件的前提下,滥用控制器的引脚控制功能,来操作物理过程。引脚控制主要由引脚多路复用和引脚配置两方面组成。攻击者通过更改引脚寄存器修改引脚的多路复用功能,通过将引脚连接到另一个外围设备,来阻止控制器与外围设备的通信,并对其进行物理损坏。攻击者也可以通过引脚配置攻击,将引脚模式从输入更改为输出,反之亦然,以控制合法进程从该引脚写入或读取信息。由于引脚配置的更改不会产生中断,在运行时复用或重新配置引脚时,系统会像往常一样继续其任务,但输入和输出可能会产生意想不到的结果。

4) 虚假数据注入(FDI,false data injection)攻击:可以分为两类:一类是攻击者已经知道PLC中的一些关键控制点,并恶意修改其值,从而导致控制混乱,如强制对寄存器地址执行写操作,以覆盖寄存器的当前值;另一类是攻击者向PLC注入虚假的传感器测量数据,使PLC根据虚假测量数据启用不适当的控制操作。

Gönen等[61]通过内部人员对Schneider M241 PLC进行错误数据注入攻击。如果内部人员获取了寻址映射,就可以读取寄存器地址的状态,并向内存地址发送新值以更改这些地址的值。对PLC设备进行FDI攻击的步骤如图7所示。

图7 对PLC设备进行FDI攻击的步骤Figure 7 Steps of FDI attack on PLC equipment

Roomi等[62]开发了一种可模拟攻击的网络范围,如图8所示:通过直接篡改受感染设备(继电器、频率监视器和温度传感器等)的数据或返回值,将其存储在FDI攻击配置中,攻击者可以将伪造的数据动态地注入PLC,来模拟FDI攻击。但cyber range的模拟是轮回进行的,平均每个回合需要4.2 s,无法提供瞬态或实时行为,但仍可以模拟预先编程的FDI攻击。

图8 FDI网络范围示意Figure 8 Schematic view of FDI cyber range

5) 蠕虫病毒攻击:Spenneberg 等[63]基于SIMATIC S7-1200演示了PLC蠕虫攻击的可行性。只需引入受感染的PLC,即可使该蠕虫在工控网络中传播。蠕虫感染目标PLC的执行步骤如图9所示。首先,蠕虫启动与可能目标的连接。一旦建立了连接,蠕虫先检查目标是否已经被感染。如果未检测到感染,蠕虫将停止执行已安装的程序,并传输自己的代码。然后,再次启动目标PLC。该蠕虫仅使用PLC,不需要任何PC或服务器即可传播,且在重启和断电后仍然存在。这些特性使其很难被追踪。

图9 蠕虫的工作顺序Figure 9 Execution sequence of the worm

针对PLC攻击的分类如表3所示。

表3 针对PLC攻击的分类Table 3 Classification on attacks towards PLC

3.3 现场设备

传感器数值替换攻击(sensor spoofing attack):一种是直接替换,即攻击者用恶意传感器替换一个或多个传感器,攻击者可以操纵传感器读数,将虚假数值反馈到系统;另一种是间接替换,即将来自另一个进程的传感器测量值代替目标传感器的测量值。

故意电磁干扰(IEMI,intentional electro-magnetic interference)攻击:通过有意地引入噪声,干扰系统的正常运行,或者向常用的电子系统中注入虚假数据,使攻击者具有独立控制电子系统的能力。Selvaraj等[64]证明了可以使用低功率 IEMI影响传感器/驱动系统输出的直流或平均电压,从而允许对模拟和数字系统进行任意虚假数据注入。

缓冲区溢出攻击(buffer overflow attack):攻击者可以通过拒绝服务攻击创建溢出。当数据超出分配的内存空间时,数据的完整性将被破坏。

3.4 工控网络攻击

工控网络信息安全的基本属性包括可用性、完整性和机密性。可用性是保证ICS正常运行的重要条件,意外中断是不可接受的。在ICS中,可用性及完整性通常比机密性更重要。本文根据攻击破坏工控网络信息安全的基本属性对攻击进行分类。

3.4.1 可用性攻击

可用性攻击旨在恶意占用网络资源或干扰网络数据,从而导致数据延时到达或传输中断。常见的可用性攻击有:DoS(denial of service)攻击[65]、勒索软件攻击(ransomware attack)[15,66]、干扰攻击(jamming attack)[67]等。

1) DoS攻击:DoS攻击指耗尽被攻击对象的资源,以阻止授权个人或实体访问某些资源(如设备、网络等)。此类攻击容易导致系统在有效时间范围内难以执行控制任务。针对ICS的DoS攻击可能旨在破坏SCADA主设备与从设备之间的通信,这可能导致SCADA主设备失去对本地控制系统和执行器的控制[68]。针对控制器的DoS攻击,可能会耗尽控制器的计算、存储和网络资源,干扰控制器及时发出控制命令。

2) 勒索软件攻击:勒索软件是一种恶意软件,使用加密等手段劫持工控系统中的重要资源和服务,致使受攻击的对象无法访问。然后攻击者向受害者索要金钱以换取被锁定的数据。基于云的文件共享技术使用广泛,云上勒索软件攻击可以在一次攻击中加密无数文件,意味着它的传播速度更快、危害更大。

勒索软件攻击可以分为两类[66-69]。锁定勒索软件攻击(locker ransomware attack):这种类型的勒索软件会阻止受害者访问他自己的设备,即在支付赎金之前,不允许用户访问他的系统或设备。Zhang等[70]构造一种勒索软件ICS-BROCK,其攻击步骤如下:通过漏洞检测发现易受攻击的工作站,并尝试感染它和PLC的上位机,然后将逻辑炸弹写入PLC并锁定,被锁定的PLC需要解锁密钥才能正常工作。该方法能用较少的信息完成勒索攻击,更接近真实的攻击场景。加密勒索软件攻击(crypto ransomware attack):此类攻击会搜索用户的有用数据并对其进行加密,除加密文件之外,用户可以不受限制地访问并操作系统。Zimba等[15]对多阶段加密勒索软件攻击进行了建模。通过静态恶意软件分析说明,勒索软件可采用不同的技术,在不同的网络分区传播和攻击关键基础设施。

3) 干扰攻击:由于无线媒体的开放性,无线通信容易受到无线电干扰的攻击。当恶意设备发出高功率干扰信号时,其附近的所有无线设备可能无法通信[71]。Adepu等[67]在安全水处理(SWAT,secure water treatment)实验台上实现了对工控系统的网络干扰攻击。作者通过使用可配置的射频设备、通用软件无线电外设(USRP,universal software radio peripheral)来阻塞通信信道,实现了干扰攻击。

3.4.2 完整性攻击

完整性攻击试图在从源头传输到目的地的过程中插入、更改或删除数据,从而破坏数据交换和决策。常见的完整性攻击有:重放攻击(replay attack)[53,72]、节点复制攻击(node replication attack)[73]等。

1) 重放攻击:攻击者可以在不篡改任何数据的情况下,将另一时段从网络上窃听的数据包发送出去,达到欺骗系统的目的。由于工控系统中传输的数据包没有时间戳,只要数据格式正确,很难判断数据包的真假[74]。

重放攻击是PLC中典型的攻击方式之一,攻击包括3个步骤[75]:① 启动Wireshark,捕获数据包;② 过滤掉不属于流量命令中的指令包;③ 通过取得命令包的格式对PLC进行重放攻击。HMI也是重放攻击的常见目标。在劫持HMI和PLC之间的通信通道后,攻击者可以仅替换消息内容,使HMI呈现历史数据视图从而欺骗操作员[53]。

2) 节点复制攻击:在无线工业网络中,通常会复制一些真实节点,以增强节点的处理能力。但攻击者可以使用捕获的真实节点中的信息来创建恶意节点。

文献[73]利用NIST开放数据集进行汽车装配环境下复制攻击的仿真实验。攻击者首先劫持合法节点,并提取其ID、密钥、控制信息、数据信息等有关的敏感信息。随后,攻击者根据提取的信息来复制节点,并部署在工业无线网络中。然后,复制的节点可以充当合法节点与其他节点进行数据交互。当无线网络中存在大量复制节点时,它们可以通过连续发送访问请求始终占据通信通道来发起拒绝服务攻击。攻击者还可通过在网络中广播恶意信息,以注入恶意数据或更改合法节点的传输信息,来破坏数据的完整性。

3.4.3 机密性攻击

机密性攻击指未经授权的实体嗅探、网络数据窃取或流量分析。常见的机密性攻击有:窃听攻击(eavesdropping attack)[76]、中间人攻击(man-in-the-middle attack)[77-78]、位置欺骗攻击(location spoofing attack)[79]等。

窃听攻击:窃听攻击是一种被动攻击,攻击者可以嗅探网络通信通道,以捕获网络通信上正在发送和接收的信息。窃听攻击不会导致工控系统产生不正常的现象,因此很难被检测到。

中间人攻击:攻击者进入两台设备之间的对话,并在交换数据和控制消息的同时让两端认为他们正在与对方直接对话。中间人攻击有主动和被动两种攻击方式[80]。被动方式是监控控制器通信流量并获取数据。主动方式是通过篡改数据和命令,干扰系统的正常运行。Urbina等[77]展示了如何在ICS现场总线网络中,采用中间人攻击从被窃听的信息中获取传感器读数,并伪造传感器和执行器命令。此外,作者讨论了设置中间人攻击存在的一些挑战以及如何克服这些挑战。

位置欺骗攻击:通过伪造无线电信号,一方面,攻击者可以误导定位到一个错误的结果,这将对依赖于位置信息的工业系统造成威胁[79];另一方面,攻击者若伪装成具有高访问权限的位置,则可能非法访问机密资源。

针对工控网络攻击的分类如表4所示。

表4 针对工控网络攻击的分类Table 4 Classification on attacks towards industrial control net

4 未来攻击趋势

未来针对工控系统攻击的主要发展趋势主要如下。

(1)针对工控攻击的门槛降低

攻击者发动ICS攻击变得越来越容易,这归因于越来越多的工具或示例可供使用,从而降低了入侵者所需知识和技能的门槛[81]。信息技术(IT)和运营技术(OT)领域的融合将成为常态,入侵者甚至可以绕开工控底层专业知识,采用常规手段组合式攻击来直接攻击控制系统。

(2)针对设备的攻击有所上升

工控设备使用年限较长,软硬件存在安全漏洞、设备缺乏认证和授权管理、数据加密和完整性检查欠缺等问题。工控设备所处的环境安全、设备安全和管理安全任何一方面遭受攻击,可能对整个工控系统造成巨大的损坏。特别是随着智能设备大规模部署,互联互通已成为必然趋势,工控安全问题也会随着连接性的增长而增加。

(3)勒索软件攻击日渐频繁

近几年,针对工控系统的勒索软件攻击逐渐上涨,其原因可能有以下两个方面:一方面,经济利益是吸引攻击者使用该类攻击的首要因素,黑客组织采用钓鱼邮件、软件捆绑、鱼叉式攻击等方式向企业发起勒索攻击,索要高昂的赎金;另一方面,数字货币的出现及使用,如比特币,可使攻击者轻松获得非法报酬,而不必但心真实身份的暴露,有利于匿名“安全”支付[82-83]。这可能是勒索软件攻击在数字货币出现之后越发流行的原因之一。

(4)高级可持续威胁攻击日趋严重

高级可持续威胁攻击仍将是最复杂和最棘手的工控攻击之一,它采用多种攻击方式来渗透和分析目标,具有极强的隐蔽性和持久性,使防御者难以检测和防御。APT攻击的目的性很强,对石油、化工、电力、核能等国家关键基础设施的安全构成严重威胁。

(5)针对企业上云的安全问题日益突出

工业和信息化部印发了《推动企业上云实施指南(2018—2020年)》,并表示上云比例和应用深度显著提升,使云计算在企业中广泛普及。随着企业上云的普及,攻击者利用云计算资源攻击企业或云服务提供商也会增多,如分布式拒绝服务攻击、网络钓鱼活动、恶意托管、数据盗取等。

5 结束语

工控系统是电力、交通、石化等国家关键基础设施的重要组成部分。对工控系统的攻击,会扰乱系统的运行,对工业生产的经济效益产生很大影响,甚至造成人员伤亡。本文对工控系统中关键组件面临的安全问题和攻击方法相关文献进行了综述:首先介绍了ICS的基本概念;然后对关键工控组件的安全问题进行了分析,重点从控制中心、PLC、现场设备、工控网络,对现有文献的攻击方法进行分类、总结;最后,指出了未来工控攻击的发展趋势。

猜你喜欢

工控固件攻击者
工控编程编译工具应用现状分析及展望
基于贝叶斯博弈的防御资源调配模型研究
工控系统脆弱性分析研究
基于蜜罐的工控网络安全防护技术研究进展
尼康旗舰Z9升级新固件延长高速连拍时间
基于国产化IT 基础设施的通用固件安全模型研究
正面迎接批判
正面迎接批判
英特尔发布免费固件引擎
提取ROM固件中的APP