支点(Pivoting)
支点(Pivoting)是一项标准技术,用来实现从机器到机器的渗透测试。随着企业网络大多数能够访问因特网,它是合乎逻辑的起点,用来渗透到过程控制域的网络中。利用支点攻击可以入侵到SCADA系统中的历史数据站(Historian)。
历史数据站与企业网的通信主要有:
(1) 历史数据
(2) 每日产品总数
(3) 新产品订单
(4) 按需计算值
历史数据站采用基于Windows的服务器,入侵了历史数据站后,可以做的事情如下:
(1) 掩盖过去欠佳的攻击
(2) 摧毁公司的健康、安全记录
(3) 修改工厂的状态报表
(4) 以此开始支点攻击下一目标
HMI作为工厂过程处理的眼睛,如果攻入这台机器,可以使得工厂运行处于盲人状态,即操作员无法知道工厂运行的实际情况。HMI还可以像控制器写“设定值”(SetPoint),“设定值”(SetPoint)可以直接映射到控制器的输出上,或者擦除内存,这些内存将被逻辑处理器用来计算。遭入侵的HMI可以通过将某些安全装置设置成旁路状态或者通过向控制器中写入伪造的“设定值”(SetPoint)来毁坏设备。另外HMI还用来确认报警,这在识别和降低关键问题的过程中是至关重要的。
HMI与其他机器的通信主要有:
(1) 历史数据
(2) 网络状态
(3) OPC
(4) 域服务
HMI站采用基于Windows的工作站,入侵了HMI站后,可以做的事情如下:
(1) 写“设定值”
(2) 篡改监控画面,实现欺骗操作员
注意:对每一个HMI的篡改必须同步,可能需要IPC通信来实现。
(3) 以此开始支点攻击下一目标
在某些架构中,应用服务器是作为现场控制总线和HMI间的缓冲。由于PLC显然无法承受来自HMI的大量数据请求,应用服务器便将每一个PLC中的关键数据缓存在自己的数据库中,供HMI检索。这样一来,使得控制总线上的数据流量更为有效和确定,从而使得流程流畅的运行。由于应用服务器的位置,发生了单点故障后,显示工业流程的监控画面就会发生变化,因为终端的数据都是从应用服务器处读取的。因此,在一个炼油厂中,攻击一台应用服务器要比攻击每个HMI高效率的多,攻击应用服务器就会导致所有的操作员用的HMI的过程显示画面发生变化。
应用服务器与其他机器的通信主要有:
(1) 写“设定值”
(2) 读取I/O值
(3) 报警通知
(4) 控制网络诊断
应用服务器采用基于Windows的服务器,入侵了应用服务器后,可以做的事情如下:
(1) 篡改显示现场设备运行状态的画面
a) 可以篡改实时数据和历史数据来实现
(2) 阻止同步现场数据
a) 可以通过简单篡改数据库中的数据值来实现
(3) 以此开始支点攻击下一目标
工程师站是作为核心存储库,存储了用来配置PLC的逻辑信息。工程师通过工程师站来对控制网络上的通信和逻辑进行诊断和调整。工程师站有相应的工具来将最新的代码下载到控制器中,另外,当主设备发生故障时,工程师站还可以作为最后可用的HMI来使用。攻击一个工程师站是非常危险的,因为工程师站上有工具能够完全修改控制器中的内容,包括强行修改输入和输出信号。工程师站中当然还包括PLC的逻辑代码,这些代码可以给试图攻击PLC的攻击者提供有价值的信息。
应用服务器采用基于Windows的服务器或工作站,入侵了应用服务器后,可以做的事情如下:
(1) 篡改PLC的真实逻辑
(2) 向PLC中下载在线更新
a) 虽然不能让工厂处理过程停止,但是可以巧妙的改变他
(3) 删除已经设置的安全逻辑
(4) 盗取PLC的源代码
(5) 以此开始支点攻击下一目标
由于PLC是最主要的硬件,它直接控制现场过程,破坏PLC可能是灾难性的。PLC是控制网络中最受保护的,不见的是安全的原因,而是PLC如此脆弱却必须持续的运行,使得让工厂的流程连续的运行。对于PLC,即使是DOS这样简单的攻击都会导致整个流程中断甚至更糟。
PLC操作主要有:
(1) 对PLC的逻辑更新
(2) 网络重置
(3) 控制器重置
(4) 完全可视化的过程
HMI站采用基于VxWorks或者Linux(包含BusyBox)或者是老的crusty RTOS,
入侵了PLC站后,可以做的事情如下:
(1) 调整在线运行的逻辑
(2) 写任意内存
a) 输入表
b) 输出表
上述5步的攻击步骤太复杂了,可以采用一步到位法,通过无线的方式进行入侵。
(1)工业现场很多基于Windows的计算机都没有更新到最新版本
(2)很多的控制器设计的很不安全
相关文章: