查看原文
其他

工控系统安全2——PLC攻击种类研究

徐 震 周晓军 中国保密协会科学技术分会 2018-12-17

PLC(Programmable Logic Controller,可编程逻辑控制器)是关键基础设施中的基础控制设备,其安全性涉及到整个控制系统的稳定运行。但是,随着两化融合的不断加深以及工业4.0的推进,工业控制系统在提高信息化水平的同时,其信息安全问题也日益突出。PLC遭受黑客攻击的途径也日益翻新,各种木马和病毒变体数量不断攀升,威胁工业控制系统的安全稳定运行和人员生命财产安全。上篇我们介绍了常见的几种PCL遭受的攻击路径,本篇再给大家介绍PCL遭受攻击的3个种类,进一步警醒大家:工业控制系统安全防护任重道远。


PLC遭受攻击的种类

PLC遭受攻击的种类按照攻击难易程度可以分为干扰性攻击、组态攻击和固件攻击。

三类攻击的描述如下表所示: 


表1 攻击的分类、描述及危害


01

干扰性攻击

干扰性攻击主要用于耗尽PLC的资源,比如网络带宽、CPU计算资源等,从而使得PLC对正常的请求无法及时作出回应。华北电力大学举办的工控大赛上,初级攻击层次使用的就是DDoS(Distributed Denial of Service,分布式拒绝服务)的方式,使得PLC的通信模块拒绝服务,导致用户界面显示异常。另外也可以利用PLC通信缺乏认证和加密的缺陷,直接修改PLC的控制点位的数据,但是由于PLC自身的扫描周期比较短,因此,达到此种攻击需要攻击者使用的攻击机性能比较强大,发包速度比较快。而且这种攻击在停止后,一般PLC能恢复正常的运转。

Newman等[2]指出,在监狱中用来控制牢房和监狱大门的PLC可以远程打开或者锁死。一旦PLC被攻陷,就可以操作PLC控制的所有设施的物理状态:抑制发送给PLC或者由PLC发出的告警信息。McLaughlin等[3]开发了一款PLC攻击软件,对PLC的通信和控制过程进行分析,并生成动态的PLC通信载荷。不去修改PLC的组态,但是会对PLC的正常运行造成极大的危害,比如:打开变电站中的所有断路器。Abbasi等[4]开发出一款无法被检测到的PLC Rootkit,可能会比Stuxnet更加危险,因为Stuxnet的设计目标在于指向Windows架构之上的应用软件,而PLC Rootkit立足于更加底层的系统。该恶意软件会干扰PLC运行时与逻辑同I/O外设之间的连接(如图1),驻留在PLC组件的动态内存之中,且操纵相关的I/O及PLC流程(如图2),同时影响PLC进行通信交互以及处理物理流程控制的I/O模块。


图1  PLC RootKit攻击过程

图2  I/O 针脚复用攻击示意图


Tzokatziou等[5]指出,可以通过HID(human interface devices)对PLC的正常运行实施干扰。利用ABB PM564 PLC通信协议无加密、无认证的特性,使用Codesys系统和PLC建立通信并分析数据包指令,人为构造数据包,达到任意启停PLC的目的。

目前出现了专门针对PLC的勒索软件[5],也就是对工业控制系统进行加密,只有在支付一定数额的赎金之后才能获取解密密钥。这种攻击对PLC的组态并未破坏,但是在遭受攻击期间无法正常工作。


02

组态攻击

组态攻击是对PLC的组态进行攻击,破坏PLC的控制逻辑,从而达到精准实施攻击的目标。Kclik等[6]开发了PLCinject工具,可以对PLC注入篡改后的组态,使得PLC的逻辑执行跳转到攻击者指定的功能块上。它利用PLC编程语言STL编写端口扫描器和SOCKS代理,首先下载PLC组态OB1,在组态开始执行前加入CALL指令,调用恶意功能块FC666,启动SNMP扫描器,然后运行以下5步骤:

(1)获取本地IP地址和子网

(2)计算IP地址

(3)建立UDP连接

(4)发送SNMP请求数据包

(5)接收SNMP回复数据包

(6)将回复数据包保存在DB中

(7)停止扫描,断开UDP连接


组态注入过程如图3所示:

图3  PLC组态注入过程


Langner等[2] 利用编译后的十四字节序列,注入到原来PLC合法的组态OB1之前,设置终止条件,随时都可以终止PLC的运行。14字节的代码如下所示:

7E 63 00 0C 38 07 11 12 25 00 39 A0 05 00

McLaughlin等[13]通过连接到Internet的PLC,分析PLC的逻辑控制,并自动生成恶意代码,编译后注入PLC,从而更改PLC的组态。

但是组态攻击要达到比较准确的目标,往往需要对PLC的组态进行分析,找到攻击点的准确定位。典型的如Stuxnet[6]。


03

固件攻击

原来的攻击都针对于PLC的上层系统,比如针对人机交互界面(HMI)和网络通信协议(比如Modbus协议)。即使是攻击手段较为复杂的Stuxnet,也是针对Siemens PLC的编程软件,而不是底层的现场设备代码。

在PLC架构中,固件充当了操作系统的角色,提供了诸多服务,比如通过web服务器远程访问、远程固件升级等。这些功能给终端用户的操作提供了极大的便利,但是同时也给攻击者以可乘之机,如图4所示[7]。


图4  PLC组态、固件、硬件模型

针对PLC的固件攻击是目前最为隐蔽的攻击方式,实现起来比较复杂,一般分三步进行:

(1)对PLC的固件进行反汇编,确定各个参数的寄存器地址,匹配已知的设备功能;

(2)注入恶意指令、修改跳转指令或者修改寄存器地址,且一般不影响上层组态软件的稳定性;

(3)对固件进行重新打包并重新下载到PLC中。

Schuett等[7]首先通过逆向工程,分析PLC的固件映像的指令集,找到固件的存储区域和执行路径,然后修改固件中的服务和控制指令,从而实施远程攻击:设定时间终止PLC运行、收到控制信号终止PLC运行、对固件做永久修改使得操作员无法重新使用PLC。PLC固件的一个缺陷就是信任其内在的固件验证过程,这个过程依赖于CRC校验机制。CRC校验可以用来验证固件是否受到破坏,但是无法检测到恶意篡改。图5显示了对固件诊断例程的修改。


图5  对PLC固件诊断例程修改过程


Beresford等[1]实现了针对Siemens Simatic S7 PLC的固件攻击。Garcia等[8]详细介绍了针对PLC的固件攻击全过程,利用内嵌的固件升级机制、在线代码注入等达到固件攻击的目的。具体的攻击过程如图6所示:

图6  PLC固件双向攻击过程


通过双向修改实现攻击过程,修改PLC的控制指令,从而摧毁物理世界;同时修改传感器的测量值,使得操作员看到“合理”的数值,从而达到隐藏攻击,避开检测的目标。

综上所述


PLC的安全态势不容乐观,针对PLC的攻击路径比较多,而且攻击层次在逐渐深入,做好PLC的安全防护任重道远。

参考文献

[1]Beresford D. Exploiting siemens simatic s7 plcs[J]. Black Hat USA, 2011, 16(2): 723-733.

[2]Newman T, Rad T, ELCnetworks L L C, et al. SCADA & PLC vulnerabilities in correctional facilities[J]. Core Security, 2011.

[3]McLaughlin S E. On Dynamic Malware Payloads Aimed at Programmable Logic Controllers[C]//HotSec. 2011.

[4]Abbasi A, Hashemi M. Ghost in the PLC: Designing an Undetectable Programmable Logic Controller Rootkit via Pin Control Attack[J]. 2016.

[5]Formby D, Durbha S, Beyah R. Out of control: Ransomware for industrial control systems[J]. 2017.

[6]Klick J, Lau S, Marzin D, et al. Internet-facing PLCs-a new back orifice[J]. Blackhat USA, 2015.

[7]Schuett C, Butts J, Dunlap S. An evaluation of modi-fication attacks on programmable logic controllers[J]. International Journal of Critical Infrastructure Protec-tion, 2014, 7(1): 61-68.

[8]Garcia L, Zonouz S, Dong W, et al. Detecting PLC control corruption via on-device runtime verifica-tion[C]// Resilience Week. IEEE, 2016:67-72.


中国保密协会

科学技术分会

长按扫码关注我们

作者:徐   震  周晓军

责编:蔡北平

往期精彩文章TOP5回顾

美国攻击窃密能力背后的顶层架构

美国网络安全体系架构简介

起底突破物理隔离的USB设备攻击窃密技术

请注意:扬声器、耳机也能窃密了!——Mosquito攻击技术

兰德公司对网络空间安全防御的建议

近期精彩文章回顾

工控系统安全—PLC攻击路径研究

关于软件定义网络SDN的安全话题

你了解牛气冲天的SLAM技术吗?

人工智能时代的身份认证

你的邮件安全吗? ——电子邮件威胁与防御剖析


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存