攻击ICS中PLC的IEC-61131逻辑引擎
一、摘要
可编程逻辑控制器(PLC)配备了用IEC-61131语言编写的控制逻辑(如梯形图和结构化文本),定义了PLC应如何控制物理过程。本文提出了一种新的控制逻辑攻击维度,其目标是PLC的控制逻辑引擎(负责运行控制逻辑)。通过利用PLC固有的功能(如程序模式和启动/停止引擎),网络攻击可以成功禁用IEC-61131控制逻辑引擎。我们利用MITRE ATT&CK知识库,在工业环境中使用的真实PLC上,开发了两个关于控制逻辑引擎攻击(干扰或损害控制逻辑引擎正常功能的攻击)的新案例研究:
(1)Schweitzer工程实验室(SEL)的实时自动化控制器(SEL-3505 RTAC),配备加密流量和设备级访问控制等安全功能
(2)传统PLC,如施耐德电气的Modicon M221、艾伦·布拉德利的MicroLogix 1400和1100,没有安全功能。
我们的贡献有三方面:
(1)我们已经引入了一种新的攻击向量,它以PLC中IEC-61131控制逻辑引擎为目标,以停止物理过程。
(2)我们成功地利用MITRE ATT&CK知识库开发并演示了对四个真实PLC的控制引擎攻击。
(3)我们评估了控制引擎攻击连接物理过程的有效性,即一个变电站、一个4层电梯和一条传送带,以演示停止物理过程的实际影响。
二、介绍
(一)PLC攻击类型
现有的控制逻辑攻击要么针对PLC上运行的控制逻辑代码(也称为控制逻辑注入攻击),要么破坏PLC固件以操纵控制逻辑执行。我们的攻击是新的,它们针对的是控制逻辑引擎,而不是目标PLC中的控制逻辑代码,而无需修改PLC固件。表1显示了对PLC的不同攻击的比较。
(二)MITRE ATT&CK攻击
本文中的两个案例研究利用了来自MITRE ATT&CK知识库的以下攻击。表2总结了MITRE ATT&CK知识库中用于演示PLC控制逻辑引擎攻击的攻击子集。
(1)控制操作(T0831),攻击者可以在工业环境中操纵物理过程控制。
(2)可用性丧失(T0826),攻击者可以破坏某些组件,以阻止运营商交付产品或服务。
(3)拒绝查看(T0815),攻击者可以中断或阻止操作员查看ICS环境的状态。
(4)拒绝控制(T0813),攻击者可以暂时阻止操作员与流程控制交互。
(5)中间人(T0830),ICS网络中的攻击者可以拦截、修改或丢弃工程工作站和PLC之间交换的数据包。
(6)网络嗅探(T0842),ICS网络中的攻击者可以尝试嗅探网络流量,以获取有关其目标的信息。
(7)未经授权的命令消息(T0855),攻击者可能向工业控制系统设备发送未经授权的命令消息,使其无法正常工作。
三、威胁建模
我们假设对手在ICS网络中,可以与目标控制器通信以发起控制逻辑引擎攻击。攻击者可以使用真实世界的IT攻击(如受感染的U盘或易受攻击的Web服务器)渗透ICS网络并禁用控制器运行控制逻辑,IT攻击超出了本文的范围。在ICS网络中,我们