PLC攻击类型研究分析 – 作者:等待未来66大顺

引言

本文章结合作者在工控攻击以及协议分析方面的研究,对工控攻击类型进行分析。

当前接入互联网的PLC越来越多,暴露的攻击路径也越来越多,导致其更加容易遭受到攻击。本文主要对PLC的攻击进行简要的分析研究,为之后的安全防御措施的提出提供理论基础。

一、攻击类别

本文主要将针对PLC的攻击分为如下四种类型

扫描、探测攻击

DDos

payload inject

中间人攻击

二、攻击阐述

2.1 扫描、探测攻击

攻击目的:通过设备扫描的方式获取某一网段内PLC分布情况以及PLC的设备信息

威胁分析:该类型攻击调用的功能码威胁程度低,并不会影响PLC设备状态;攻击持续时间短,仅在攻击者发起扫描阶段有效

攻击种类:nmap扫描、shodan等物联网搜索引擎扫描以及第三方扫描脚本等

攻击示例:为更好理解该类攻击,我们针对PLC设备进行攻击复现,具体效果如下

1590743702_5ed0d2961ed0a.png!small

2.2 DDos攻击

攻击目的:耗尽PLC的资源,比如网络带宽、CPU计算资源等,从而使得PLC对正常的请求无法及时作出回应

威胁分析:攻击方式简单、粗暴,对技术要求低,容易实现,会破坏PLC的正常运行;持续时间长,占用PLC资源

攻击种类:功能码QueryFlooding、pingfloodDDos、synfloodDDos

攻击示例:下图为针对modbus协议的queryFlooding攻击,从图中可看出这一类攻击采用短期内发送大量的modbus读状态数据包

1590744316_5ed0d4fce7f89.png!small

2.3 payload注入攻击

攻击目的:注入代码或数据影响PLC的正常运行,甚至获取系统控制权

威胁分析:攻击方式较为复杂,对技术要求高,会破坏系统的控制逻辑

攻击种类:攻击种类本文主要阐述如下两种

1590826145_5ed214a17e045.png!small

控制逻辑攻击

其中控制逻辑攻击主要对PLC的控制逻辑代码进行控制,破坏控制逻辑。

攻击示例:PLC inject[1]、SABOT[3]、CLIK[4]

PLC inject

文献[1]中开发的PLC inject工具,对PLC注入篡改后的控制逻辑,使得PLC跳到攻击者指定的功能块。攻击过程如下:

1、下载PLC组态OB1,在组态开始执行前加入CALL指令,调用恶意功能块FC666;

2、启动SNMP扫描器,获取本地IP地址及子网;

3、计算IP地址,建立UDP连接;

4、发送/接收SNMP数据包;

5、保存回复数据包到DB中;

6、断开连接。

1590826650_5ed2169a2edbd.png!small

SABOT

在没有PLC如何与设备连接/工作的先验知识下对PLC发起payload注入攻击。攻击过程如下:

1、攻击者将对作业行为的理解写入规约,规约包括工厂设备声明及一系列时间逻辑属性;

2、SABOT从PLC中下载控制逻辑字节码,并反编译为逻辑模型;

3、使用模型检查设备与控制逻辑变量之间的映射;

4、将恶意代码映射成可在PLC上运行的实例

1590830945_5ed22761211f6.png!smallCLIK

自动在目标PLC中引入恶意逻辑。攻击过程如下:

1、攻陷PLC安全措施并偷取控制逻辑;

2、反编译下载的控制逻辑并注入恶意逻辑代码;

3、将受感染的二进制数据传回PLC;

4、隐藏恶意逻辑。

1590831197_5ed2285d7584b.png!small

上图展现了具体的攻击阶段,主要分为三个阶段,首先是窃取控制逻辑代码数据,并在窃取后进行反编译,最后注入恶意控制逻辑。

PLC blaster

对PLC进行蠕虫式攻击,在感染后可以自行传播,攻击过程如下:

1、尝试建立与S7PLC的连接;

2、若建立连接,检查其是否被感染;

3、若未建立连接或已被感染,尝试其他PLC;

4、若未被感染,停止PLC,下装PLC程序;

5、重启PLC

1590831361_5ed22901315fd.png!small1590831415_5ed229373a2df.png!small

蠕虫代码执行过程

固件攻击

其中固件攻击主要是破坏固件,PLC固件的一个缺陷是信任其内在的固件验证机制,导致异常的固件无法被检查,攻击过程如下:

1、下载固件,逆向分析固件,确定各个参数的寄存器地址,匹配已知的设备功能;

2、修改固件;

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

PLC的固件与控制逻辑的关系可从下图看出

1590843557_5ed258a5e89c0.png!small

威胁性分析:

PLC等嵌入式设备使用固件作为操作系统,使得PLC固件通常功能齐全,并提供各种服务,包括通过web服务器进行远程管理。

很多PLC允许远程固件更新,为攻击者提供了一种攻击路径。

固件偏向底层,遭受攻击危害较大。

固件获取:从供应商网站下载固件更新包,并从中提取固件映像;使用PLC主处理器的JTAG接口从PLC的存储器中提取固件映像

为更好理解固件攻击,我们展示出下图,从下图可以看出攻击者的攻击路径,攻击者在修改固件后,会产生对底层系统的恶意控制,会给操作人员错误的响应,产生类似于中间人攻击的效果。

1590845000_5ed25e4848b0b.png!small

而固件的种类可分为基本固件与闪存固件

1590845132_5ed25ecc866b0.png!small

中间人攻击

攻击目的:在上位机与下位机间对数据包进行修改,重放,欺骗系统管理者。

威胁分析:会干扰PLC的正常运行;错误的数据包也会导致管理人员作出错误决定,该攻击行为常伴随在APT攻击中

1590846882_5ed265a2acf4e.png!small

由于该类攻击具有欺骗性,常被用来隐藏PLC真实状态,震网病毒也使用了该类攻击。

总结

当前PLC漏洞较多,也面临着很多的攻击风险,为此本文对针对PLC的常用攻击类型进行了罗列,希望大家可以对PLC攻击有一个完善、初步的了解。不完善之处,还请多多谅解。

参考文献

[1]KlickJ, Lau S, Marzin D, et al. Internet-facing PLCs-a new back orifice[J]. BlackhatUSA, 2015.

[2]Spenneberg R, Brüggemann M, Schwartke H. Plc-blaster: A worm living solely inthe plc[J]. Black Hat Asia, Marina Bay Sands, Singapore, 2016.

[3]McLaughlin S, McDaniel P. SABOT:specification-based payload generation for programmable logic control-lers[C]//Proceedings of the 2012 ACMconference on Computer and communications security. ACM, 2012: 439-449.

[4]Kalle S, Ameen N, Yoo H, et al. CLIK on PLCs! AttackingControl Logic with Decompilation and Virtual PLC[C]//Binary AnalysisResearch (BAR) Workshop, Network and Distributed System Security Symposium(NDSS). 2019.

来源:freebuf.com 2020-07-02 21:46:03 by: 等待未来66大顺

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论