猫头鹰
信安舆情早知道

解析Crash Override : 当下电网系统面临的安全威胁(下)

IEC 104 模块

主要特征

读取目标(可能是RTU)的配置文件,采取行动;

  • 杀死受害者主机上合法的主进程;
  • 伪造一个新的主进程;
  • 进入下列四种模式之一:
  • 序列模式:连续设置RTU IOAs的值为“打开”;
  • 范围模式:(1)询问每个RTU 的有效IOAs;(2)切换每个IOA的状态(打开或关闭)
  • 移动模式:尚未明确
  • 持续模式:尚未明确/尚未完全实现

IEC104 协议的传输类型,如下图所示:

CRASHOVERRIDE中IEC 104模块的执行流程,如下图所示:

细节

CRASHOVERRIDE 中IEC 104模块以“MASTER”(“主控”)的角色完整的实现了IEC 104通讯规约的作用。

名词解释:IEC104规约把IEC101的应用服务数据单元(ASDU)用网络规约TCP/IP进行传输的标准,该标准为远动信息的网络传输提供了通信规约依据。电网系统利用IEC104规约控制一个断路器的数据传输过程。变电站和主控之间利用基于TCP/IP的IEC104规约进行数据通信。主控的选择命令下发后,变电站进行选择确认,然后主控的执行令下发,当变电所验证执行后,回应主控执行确认令。最后当断路器的变位信号产生后,变电所的自发上送变位信息。整个通信过程中,都是利用IEC104规约的I格式报文传送信息。

IEC 104 规约的原始作用,相当于创建了一个瑞士军刀,用于变电站完成自动化操作,同时也提供了定制性的功能,恶意软件操作员利用的函数受配置文件选项的影响。本报告概述了目前分析到的选项,不过需要指明,随着健壮性协议的实现,扩张和增强功能可以直接完成。

IEC 104模块的设计与擦除模块不同,可能经过了开发人员的二次开发。没有包含主要执行指令的擦除函数,取而代之的是解析配置文件的函数,然而会启动一个包含 IEC 104主控的线程,配置文件包含多个条目,详情如下所示:

为了实现对目标的影响,配置文件是至关重要的一环,因为设备的目标规格必须由操作员在配置文件中提供,模块才能运行。我们没有观察到自动化枚举网络进而影响RTUs的情景。

每个输入生成一个线程在线跟踪对ICS设备的影响,一旦IEC 104 主控线程启动,第一个动作就是试图杀死作为主进程的通信服务进程。一旦模块使通信服务进程停止了,一个带有目标IP核目的端口号的套接字会打开,将数据传送给从属车吧并接收返回的消息。

根据配置文件中定义的模式,该模块可以完成:

  • 设定具体的值;
  • 枚举目标设备上的IOAs;
  • 持续性的设置IOA “打开”或“关闭”;
  • 不断切换IOA的状态(“打开”或“关闭”)。

这个模块不包含交互功能。

RTUs 和PLCs依照简单的规范,进行输入和输出。每个离散的输入和输出都被绑定到一个内存地址。这些实现的地址被称为线圈、寄存器或IEC 104:信息对象地址(IOAs)。IOAs分为好几类,每个类别有不同的值,比如布尔值或无符号整数值,104模块能够合理的理解如何枚举和发现IOAs去操作断路器。

IEC 101 模块

这个模块在此报告出版的时候尚不可用。ESET 分析认为它的功能与IEC 104模块相当,除了串口通讯的功能。然而,Dragos能够确认该模块是存在的。

IEC 61850 模块

这个模块在此报告出版的时候尚不可用,ESET分析认为一旦该模块被执行,将利用一个配置文件来识别目标,如果没有配置文件,它会通过枚举本地网络来识别潜在的目标。它会与目标进行通信,以确定目标设备是否控制断路器开关。它可以改变某些变量(没有进一步的消息)的状态,同时生成操作日志。然而,Dragos能够确认该模块是存在的。

OPC DA模块

这个模块在此报告出版的时候尚不可用,ESET分析认为模块不需要配置,它会枚举所有OPC服务器及其相关项目,并寻找与包含字符串CTL的ABB相关的子集,然后两次写0x01进入项目用以覆盖设备对应的状态切换的边界值。然而,Dragos能够确认该模块是存在的。

SIPROTEC DoS模块

这个模块在此报告出版的时候尚不可用,ESET分析认为这个模块发送UDP数据包到5000短裤,利用CVE-2015-5374 漏洞造成SIPROTEC数字继电器陷入无反应状态。Dragos 无法验证该模块的存在。

结论

综上所述,ELECTRUM的能力主要包含一下几方面:第一,开发能源可以快速地将新协议整合到总体框架中。其次ELECTRUM可以很容易的利用擅长工控系统漏洞利用的外部开发团队。一些攻击者可能使用“两级”的方式来实现能力的发展:一个核心开发团队,编写整体框架;另一个团队熟悉给定的控制系统的相关知识。平台团队将接收控制系统模块并在平台中添加逻辑以适应它们,IEC 104模块就演示了这种方法。考虑到这种“两级”的开发方式,很有可能编写Crash功能的人员并没有参与IEC 104 master 代码部分的编写。两个开发团队可能一起工作以决定一个日志文件格式,由主要的Crash函数消耗,并在每个IEC 104模块线程中执行。

威胁和影响范围

本报告将介绍真实的CRASHOVERRIDE攻击和影响的情况,那些潜在的假设和扩展情景被视为是无法预测的,我们这里将不做讨论。

攻击选项:切断变电所的电源

之前提到过,CRASHOVERRIDE需要有一个或多个目标的RTUs的配置文件,这个配置文件允许配置几种类型的活动选项,其中一个可配置选项允许的操作是“序列”(“ sequence”)。

使用序列命令轮询目标设备以获得相应的地址,一旦检测到位于已知地址子集的设备,就可以套住这个值。然后命令开始一个无限循环,继续将地址设置为这个值,从而有效地“打开”闭合的断路器。如果系统操作员试图在他们的HMI上发出一个”关闭”断路器的命令,序列循环将继续重新“打开”断路器。这个回路能保持断路器的“打开”进而有效地切断变电站的线路,防止系统操作员对断路器进行管理以及使线路恢复用电的操作。

断开线路或切断变电站能产生的实际影响取决于系统动态、电力流和其他一些变量。在某些情况下,它可能不会立即产生影响,而在另外一些情况下,可能会使用户陷入电力中断的状态。需要注意的是,电网操作包括故障模式,操作一般可以恢复,毕竟,这就是为什么人们会设置“循环”/“回路”去监控和维护系统的原因。

从恢复的角度来看,远程工作人员将失去对断路器的有效控制,需要派人员到变电站进行操作。如果CRASHOVERRIDE回路操作一直在持续,工作人员可能会切断通信作为故障排除和恢复行动的方案。切断通信会使得变电站处于手动操作状态,此时需要物理操作,这可能会导致几个小时的停电。

攻击选项:制造强迫性的孤岛事件

Dragos目前正在调查另一个更具破坏性的攻击选项,这个在ESET针对CRASHOVERRIDE的描述中也有提到。之前,攻击者必须有一个或多个目标信息的RTUs配置文件。此配置文件可以在使用范围执行一个循环命令进而可以连续不断的切换断路器的状态:“打开”或“关闭”。改变断路器的状态将调用自动保护操作将变电站隔离(通常称为“孤岛”),这是电网运营过程中有意识的自我保护能力。

实际上,这种断路器跳动导致变电站离线的情况是由于系统的自动化保护方案而触发的,这样做从某种层面而言会对电网系统科学规范的定义造成一定的困扰,例如频率和相位如何相互作用。考虑到保护继电器及其运行情况的有效性,这种自我保护机制会控制住影响,但也可能导致系统的不稳定性。如果多个变电站受到攻击,可能导致许多小孤岛事件,电网操作突发事件变得更为关键。假设多个变电器站点的受到攻击,可能会导致几天的停电。

放大攻击

通过连续地操作断路器强迫变电站离线称为孤岛,本身是很有意义的。然而,CRASHOVERRIDE 有潜力来放大该攻击。两个独立的CRASHOVERRIDE模块提供了这种可能。

使用OPC创建可视化拒绝(Denial of Visibility

ESET 分析认为OPC 模块可以暴力篡改显示值。OPC. exe将向目标系统发送0x01状态,这个值的含义是“主变量超出极限”(“Primary Variable Out of Limits” ),这样做会误导系统运营人员对继电器的保护现状的理解。

攻击者这样做造成的后果包括:各种系统根据错误的信息执行操作,或者向系统管理员报告不正确的信息。

系统操作员处理故障问题时,这种可视化拒绝(“Denial of Visibility”)将扩大误解和混乱,因为他们看到的信息是虚假的,比如系统视图显示断路器的状态是“关闭”,但实际上它们是“打开”的。

使用CVE-2015-5374阻碍继电器的保护措施

通过创建拒绝服务攻击(DoS),放大攻击将抵消部分或全部继电器的自我保护系统,这一类攻击的后果更加严重。ESET 宣称其已经发现了利用 CVE-2015-5374对西门子SIPROTEC继电器发起拒绝服务攻击的案例。西门子在2015年7月发布过一个补丁,相信这个时期利用CVE-2015-5374可以对继电器功能造成完整的DoS攻击,而不仅仅是网络通信模块。Dragos有独立的证据证明该模块存在,但无法证实。

通过禁用继电器的保护机制可疑扩大孤岛事件的影响,如果大规模的进行,则可能引发更大的影响,导致多个变电站和线路从电网中孤立出去。2016年12月,攻击乌克兰基辅电网系统的目标站点使用了西门子的设备,所以西门子的SIPROTEC 继电器被选为攻击目标。同样的策略也被用在数字继电器设备上,尽管利用的漏洞不相同,不过可能对电网操作产生类似的影响。不过,数字继电器有很多种类型,各自有不同的配置。放大攻击很难做到规模适当,而且需要对手投入重大资源。

防御建议

做好基础防御工作总是适当的,它能够显著的帮助ICS进入防御位置,在这里不再累述。ICS 安全分析师试图提供更多具体的、定制的防御CRASHOVERRIDE的方法,概述如下:

  • 电力公司安全团队应该清楚的了解IEC 104 和IEC 61850 协议的适用场景和使用方法。对于北美电力公司而言则应把DNP3 协议添加到名单上,以防恶意软件向美国系统拓展。特别要留意新增协议对环境中建立的基线的影响,与此同时,寻找那些新近利用了这些协议的系统,尤其是要识别出那些使用这些协议产生新的网络流量的系统。
  • 同上,理解OPC 的实现原理及使用方式,这个协议广泛存在于各个部门。在4个针对ICS定制的恶意软件中,CRASHOVERRIDE是第二个利用了OPC功能的恶意软件。CRASHOVERRIDE使用OPC时会出现流量异常,因为它会扫描网络内的所有设备,进而导致流量增加。
  • 强大的备份工程。备份内容包括:项目逻辑文件、IED配置文件,另外ICS 应用程序安装应当离线备份,并经过测试,这样做将有助于降低擦除功能的影响。
  • 为攻击事件做好事故应急响应计划,并进行实战演练,利益相关者和人员应覆盖工程、操作、IT和安全方面。事故应急响应方案应包括在电力中断阶段,手工操作进行修复时,应当恢复SCADA的环境并收集适当的取证证据。
  • 使用YARA规则和其他入侵指标来检测可能存在的感染(IOCs)。YARA规则比其他IOCs的可信度更高,应特别注意对windows IT系统的检测尤其是HMIs。通过行为分析来识别网络上的通信,将获得更精准的检测能力,识别类似的威胁。

虽然有些防御策略和结构在某些情况下是有意义的,但是有些防御方式并不适合用于应对CRASHOVERRIDE攻击:

  • 输电和配电公司不应该依靠其他协议(如DNP3)作为防护机制。完整的 CRASHOVERRIDE框架可能包含其他未公开的模块(如DNP3模块),而且,对于攻击者而言,将此功能添加到现有框架中并不需要耗费大量的工作。
  • Air-gapped网络、单向防火墙、杀毒软件等被动防御措施和架构改进都不适用于CRASHOVERRIDE的解决方案。任何数量的安全控制都不能阻断一个坚定的人类对手。防御者需要亲自上阵。

指标

Yara规则

GitHub地址:https://github.com/dragosinc/CRASHOVERRIDE

上篇链接

 http://www.mottoin.com/102935.html

*参考来源:Dragos,转载请注明来自MottoIN

转载请注明来自MottoIN,未经允许不得转载!MottoIN » 解析Crash Override : 当下电网系统面临的安全威胁(下)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们