你对工业设备典型攻击方法了解多少?
时间:2020-05-22 作者:安帝科技
传统WEB安全大家都很熟悉了,比如常见的SQL、XSS、上传、命令执行等等。那么针对工业控制器的攻击,除了非授权访问、控制命令重放和拒绝服务等,你还知道哪些攻击方法呢?
随着“互联网+制造”的工业4.0概念的提出,独立、隔离的传统工控领域迎来了新的大数据互联时代——工业互联网。与此同时,工控安全的问题也逐渐被大家关注。进而衍生出了很多的新攻击姿势,比如:工控Socket代理、工控蠕虫、工控逻辑炸弹、工控勒索软件、工控无线电、工控Payload分发等等。
今天我们就来介绍一下这几种方法,以使大家对工业控制系统的攻击方法有一个全面的了解,同时也希望同业人员多提意见和建议,相互促进,相互学习,为加强我国工业互联的安全建设添砖加瓦。
工控Socket代理
工控SOCKET代理是我们首次提出并成功验证的攻击方法,攻击框架已公开在github上,并被多人引用和二次开发。Github地址:https://github.com/w3h/isf
下面我们就简单介绍一下工控SOCKET代理的实现思路,详情请移步http://www.icsmaster.org/archives/ics/690
代理相信大家已经很熟悉了,那能不能通过暴露在互联网上的工控设备作为跳板攻击内网呢?答案是肯定的。
上图是工业控制网络示意图,内网有很多台PLC,在与外网连接的路径上部署了一道防火墙,以避免PLC暴露在外网。但有个别的PLC会通过端口映射的形式与外网连接,且只开放了固定的端口。比如图中的PLC A,它的某个端口可以被外网访问的到,但是其他的PLC没有做端口映射,也就不能被直接访问。
这时候,如果我们能将一段特殊的程序注入到PLC A当中,让其成为一个代理服务器,并且通过反向连接的方式连接我们的攻击主机。这样我们就和PLC A相当在一个网络中了,那当然就能访问内网中其它设备(或系统)。
来来来,一起膜拜一下我们的大牛攻击展示图:
工控蠕虫
工控蠕虫攻击是一种不依赖于计算机,只通过西门子的PLC设备进行攻击和传播的工控蠕虫病毒,可以绕过当前的网络安全防御系统。
首先,攻击者通过攻击目标PLC设备,向目标PLC设备中写入该蠕虫病毒,然后通过西门子通信端口102尝试建立连接,如果连接建立成功,则检查目标PLC是否已被感染。如连接未建立成功,或目标PLC已被感染,则选择新IP重新尝试建立连接。如目标PLC未被感染,则停止目标PLC,下装病毒程序,最后重新启动目标PLC。该病毒最大的特点就是在不影响PLC设备的正常工作流程下执行传播和其它控制等操作。
详细介绍见:http://www.icsmaster.org/archives/ics/500
工控逻辑炸弹
在工业控制系统中,可编程逻辑控制器(PLC)通常被用于与传感器和执行器之间直接交互,并用于自动控制。PLC的软件运行在两个不同的层上,固件层(即OS)和控制逻辑层(通过处理传感器数值,以确定控制行为)。
梯形逻辑炸弹(LLB)是指通过梯形图(或其他IEC 61131-3兼容语言)编写的恶意软件。该恶意软件将攻击代码者注入到目标PLC上的现有控制逻辑中,改变控制动作或者等待特定的触发信号来激活恶意行为。攻击者可以通过LLB篡改合法的传感器读数等一系列恶意操作。
通过物理升级固件的方法受固件证书校验的原因,带有恶意代码的固件因不能使用原有的证书,而自带的证书又不能被正确识别,所以物理更换固件的方式不可行。
虽然通过数字签名更新PLC固件的方法行不通,但是在PLC上执行的实际逻辑却不受这种措施的保护,而在将新的逻辑下载到PLC之前缺少安全检查和认证是造成这种局面的主要原因。
详细介绍见:http://www.icsmaster.org/archives/ics/541
工控勒索病毒
在这里http://www.icsmaster.org/archives/ics/503详细地介绍了由佐治亚理工学院网络安全专家开发的第一个针对可编程逻辑控制器(PLC)的勒索软件LogicLocker,利用施耐德Modicon M241设备的原始API接口,扫描工控系统内部网络的已知安全漏洞设备,通过感染和绕过等方式突破安全机制,锁定设备合法用户,并在程序中设置对物理和人身安全形成威胁的逻辑炸弹,作为赎金勒索之用。
我们通过研究发现,该类勒索病毒还有不少,比较有名的有:ClearEnergy和Scythe,其中ClearEnergy可以影响众多厂商设备,如:施耐德电气、AB、通用电气(GE)以及其它厂商。与ClearEnergy 攻击可编程逻辑控制器(PLC)方式不同的是,Scythe是通过对SCADA设备进行攻击,该攻击依赖于固件验证绕过漏洞,可以利用该漏洞将恶意软件替换为合法固件。
工控无线电
2017年CyberX发现的这种攻击技术依赖PLC及其发出的射频信号。研究人员选择在西门子S7-1200 PLC进行试验,但专家认为这种攻击可能也能在其它厂商的PLC上实施。CyberX所发现的数据提取方法并没有利用PCL中任何的安全漏洞以及设计缺陷,这项技术也不涉及设备本身的射频功能。相反,设备所发出的射频信号是设备向PLC内存反复写入数据所产生的副产品。
研究人员对这种系统所发出的无线电波进行了分析,并发现当数据在写入设备内存时电波频率会发生改变。如果攻击者能够修改这种频率,他们就能够按位来提取数据了。其中,一种频率代表“0”,另一种频率代表“1”。而这些信号可以通过附近所设置的天线来捕捉,并使用软件定义的无线电来解码数据。
在测试过程中,CyberX的研究人员成功从大约一米的距离之外通过现成的天线以每秒钟1位的速率提取出了数据。同时,研究人员认为如果使用高功率天线的话,这个距离还可以更远,而且再对信号处理算法进行改进的话,数据的传输速率还可以进一步提升。
工控Payload分发
工控payload分发是一种将payload注入到工控设备中,然后通过使目标机访问来执行攻击脚本的方式,攻击步骤如下:
1、攻击者从互联网上寻找一个具有足够的空间来存储payload的PLC。有几十KB内存的Modbus设备是很容易找到的。
2、攻击者将payload上传到PLC的内存。
3、攻击者用dropper感染一个主机,然后利用stager与Modbus进行“交流”,从PLC中下载并执行该stage。
采用PLC保持寄存器存储Payload的优点如下:
1、由于使用了第三方PLC,所以具有很好的匿名性,跟踪的难度非常大。无需将payload上传到服务器。
2、由于payload存放在PLC的内存中,所以加大了取证分析的难度。此外,一旦payload被取出,其内容可以被轻松地覆盖(甚至stager自身就能做到这一点)。
3、当前传统信息安全的防御体系由于不识别工控协议,导致被绕过,具有天然的隐蔽性。