COSMICENERGY:一款专为红队攻防开发的新型OT恶意软件
2023-6-4 18:3:58 Author: www.freebuf.com(查看原文) 阅读量:12 收藏

尽管IT 方面的情况令人担忧,但OT 方面的情况更加不稳定。OT 产品的数量,尤其是物联网(IoT)产品企业使用量猛增,相关漏洞相应攀升。此外,许多以前气隙式OT 系统现在已连接到网络并暴露在没有足够保护措施的外部威胁之下。

在过去几年中,国家支持的攻击者一直在提高攻击电网等关键基础设施以造成严重破坏的能力。日前,Mandiant威胁研究人员发现了旨在破坏电网的、与俄罗斯相关的新型恶意软件,名为 COSMICENERGY。

这种恶意软件与之前针对电网的攻击中使用的恶意软件有相似之处,包括2016 年在乌克兰基辅发生的“Industroyer”事件。COSMICENERGY通过与 IEC 60870-5-104 (IEC-104) 标准设备(例如远程终端单元)交互来中断电力。这些设备通常用于欧洲、中东和亚洲的输电和配电业务。

报告核心观点

1.知名网络安全公司Mandiant 发现了一种专门针对新型操作技术 (OT) / 工业控制系统 (ICS) 的恶意软件,并将之命名为 COSMICENERGY。

2.COSMICENERGY 的独特之处在于,承包商可能已将其开发为红队工具,用于模拟由俄罗斯网络安全公司 Rostelecom-Solar 主持的电力中断演习。

3.COSMICENERGY 与其他使用 Python 开发、打包、使用开源库,实现 OT 协议的 OT 恶意软件家族在技术上有显着相似之处。

4.虽然 COSMICENERGY 的功能与之前的 OT 恶意软件系列没有显着差异,但它的发现突出了 OT 威胁领域的几个显著发展。

  • 新的 OT 恶意软件的发现会对受影响的组织构成直接威胁,因此往往难以被发现;
  • 恶意软件主要利用 OT 环境的不安全设计特征,这些特征不太可能很快得到补救;
  • COSMICENERGY 的发现表明,进攻性 OT 威胁活动的进入门槛正在降低;
  • OT 防御者和资产所有者应针对 COSMICENERGY 采取缓解措施,持续监测此类安全威胁,部署相应的安全措施。

COSMICENERGY概述

近日,知名网络安全公司Mandiant 发现了一种专门针对新型操作技术 (OT) / 工业控制系统 (ICS) 的恶意软件,并将之命名为 COSMICENERGY。2021年12月,该恶意软件由俄罗斯某企业上传至公共恶意软件扫描实用程序。

该恶意软件可以与远程终端单元 (RTU) 和其他操作技术 (OT) 设备交互,从而实现中断电力的目的。这些设备通过专门的 IEC 60870-5-104 (IEC-104) 协议进行通信,被用于电气工程和电力自动化,通常用于欧洲、中东的输配电业务,

COSMICENERGY 是一款专门针对 OT 恶意软件,它能够造成网络物理影响,但却很少被发现或披露。COSMICENERGY 的独特之处在于,承包商可能已将其开发为红队工具,用于模拟由俄罗斯网络安全公司 Rostelecom-Solar 主持的电力中断演习。

对该恶意软件及其功能的分析表明,它的功能可与之前的安全事件和恶意软件(例如INDUSTROYER和INDUSTROYER.V2)中使用的功能相媲美,这两种恶意软件都是过去部署的恶意软件变体,通过 IEC-104 协议来影响电力传输和分配。

COSMICENERGY 的发现表明,随着攻击者利用先前攻击中的知识开发新的恶意软件,开发攻击性 OT 功能的门槛正在降低。鉴于威胁行为者使用红队工具和公共开发框架在野外进行有针对性的攻击活动,研究人员认为 COSMICENERGY 对受影响的电网资产构成了严重的威胁。因此,符合 IEC-104 标准的设备的 OT 资产所有者应采取行动,提高安全措施,降低COSMICENERGY 野外部署的威胁。

COSMICENERGY 恶意软件分析

COSMICENERGY 的能力和整体攻击策略似乎让人想起2016 年的 INDUSTROYER 恶意软件攻击事件。该事件发出 IEC-104 ON/OFF 命令与 RTU 设备交互,并且根据一项分析,可能利用 MSSQL 服务器作为管道系统来访问 OT系统。利用此访问权限,攻击者可以发送远程命令来影响电力线开关和断路器的启动,从而导致电力中断。

如图1所示:

图 1:COSMICENERGY 执行链

COSMICENERGY 通过PIEHOP 和 LIGHTWORK两个衍生组件实现这一目标。

PIEHOP技术分析

PIEHOP 是一种用 Python 编写并与 PyInstaller 打包在一起的入侵工具,能够连接到用户提供的远程 MSSQL 服务器,以上传文件并向 RTU 发出远程命令。PIEHOP 利用 LIGHTWORK 向远程系统发出 IEC-104 命令“ON”或“OFF”,然后在发出命令后立即删除可执行文件。安全人员获得的 PIEHOP 样本包含编程逻辑错误,使其无法成功执行其 IEC-104 控制功能,但安全人员相信这些小错误可以轻松纠正。

PIEHOP 期望通过另一个 Python 文件调用其主要函数,提供参数control=True或upload=True. 因此它至少需要以下参数:、 和oik,user如果使用调用,还必须提供:pwdcontrol=Trueiec104

图 2:PIEHOP 命令行示例

在分析的样本中,PIEHOP 的入口点 c018c54eff8fd0b9be50b5d419d80f21 (r3_iec104_control.py) 调用 PIEHOP 的主函数,提供参数control=True。 文件 c018c54eff8fd0b9be50b5d419d80f21 (r3_iec104_control.py) 导入“iec104_mssql_lib”模块,该模块作为 adfa40d44a58e1bc909abca444f7f616 (iec104_mssql_lib.pyc) 包含在提取的内容中:

图 3:PIEHOP 反编译入口点

PIEHOP主要通过2b86adb6afdfa9216ef8ec2ff4fd2558 (iec104_mssql_lib.py) 来实现功能,包含许多开发人员为包含的代码提供的注释。值得注意的是,主要功能包含逻辑缺陷,导致它只能连接到 MSSQL 服务器并上传OT_T855_IEC104_GR.exe(LIGHTWORK) 到它,然后立即尝试清理自身。

  1. 如果使用upload=Trueonly 调用 main 函数,它将只执行其清理例程并立即终止。
  2. 如果仅使用 main 函数调用control=True,它将采用用于upload=True 的路径,连接到 MSSQL 服务器并上传OT_T855_IEC104_GR.exe。
  3. 如果将 和upload=True都control=True提供给主函数,它将立即失败,因为它试图使用尚未解析的命令行参数。

如果实施正确,PIEHOP 可以连接到用户提供的远程 MSSQL 服务器以上传 LIGHTWORK 并发出专门针对 RTU 的远程命令,然后删除自身。PIEHOP 利用 LIGHTWORK 在远程系统上执行 IEC-104 命令“ON”或“OFF”,并在发出命令后立即删除可执行文件。

图 4:PIEHOP 主函数

LIGHTWORK技术分析

LIGHTWORK 是一种用 C++ 编写的中断工具,它利用 IEC-104 传输协议,并通过 TCP 修改 RTU 的状态。它制作可配置的 IEC-104 应用服务数据单元 (ASDU) 消息,以将 RTU 信息对象地址 (IOA) 的状态更改为 ON 或 OFF。此示例与 PIEHOP 协同工作,后者可设置执行。LIGHTWORK 采用以下位置命令行参数:

<ip_address> <port> <command> [either ON (1) or OFF (0)]

图 5:LIGHTWORK 命令行示例

执行后,LIGHTWORK 首先向指定的目标站发送“C_IC_NA_1 – 站询问命令”,以检索目标站的状态。接下来,它又向每个硬编码 IOA 发送“C_SC_NA_1 – 单个命令”以修改目标站 IOA 的状态(OFF 或 ON)。最后,它向目标站发送单个“C_CS_NA_1 – 时钟同步命令”,使远程站时钟与发出命令的设备的时钟同步。

图 6:NetworkMiner - LIGHTWORK IEC-104 流量

如果执行成功,LIGHTWORK 会为操作员提供以下命令行输出:

图 7:LIGHTWORK 使用输出

从上述说明可以确认,COSMICENERGY 缺乏发现功能,这意味着要成功执行攻击,恶意软件操作员需要执行一些内部侦察以获取环境信息。例如 MSSQL 服务器 IP 地址、MSSQL 凭据和目标 IEC-104 设备 IP 地址等。安全人员获得的 LIGHTWORK 样本包括八个硬编码的 IEC-104 信息对象地址 (IOA),这些地址通常与设备上的输入或输出数据元素相关,并且可能对应于 RTU 或继电器配置中的电源线开关或断路器。但是,IOA 映射通常因制造商、设备甚至环境而异,出于这个原因,如果不进一步了解目标资产,是无法了解攻击者想要发动的特殊攻击。

COSMICENERGY 可能与俄罗斯电力电力应急演练有关

在对COSMICENERGY 的分析过程中,安全人员在代码中发现了一条注释,表明该示例使用了一个与名为“Solar Polygon”的项目相关联的模块(图 8)。随即安全人员又搜索了独特的字符串,并确定了与俄罗斯网络安全公司 Rostelecom-Solar 开发的网络范围(又名多边形)的单个匹配项。该公司于 2019 年获得政府补贴,开始培训网络安全专家并进行电力中断和应急处理反应练习。

图 8:PIEHOP 评论中提到“Solar Polygon”

尽管没有足够的证据来确定 COSMICENERGY 的来源或目的,但安全人员认为该恶意软件可能是由 Rostelecom-Solar 或关联方开发的,用于重建针对能源电网资产的真实攻击场景。该恶意软件可能用于支持演习,例如 Rostelecom-Solar 在 2021 年与俄罗斯能源部合作举办的演习,或在 2022 年为圣彼得堡国际经济论坛(SPIEF) 举办的演习。

鉴于缺乏确凿证据,安全人员认为,也有可能是其他参与者(无论是否获得许可)重复使用与网络靶场相关的代码来开发此恶意软件。攻击者定期调整和使用红队工具(例如商业和公开可用的开发框架)来对现实世界进行攻击,例如 TEMP.Veles 在TRITON 攻击期间使用 METERPRETER 。还有许多民族、国家行为体利用承包商发展进攻能力。种种迹象表明,COSMICENERGY 的开发是基于恶意,至少它可以用于黑客野外攻击。

COSMICENERGY 与现有 OT 恶意软件有相似之处

尽管 COSMICENERGY 与之前观察到的任何恶意软件系列没有直接重叠,但其功能与之前的事件和恶意软件中使用的功能相当。安全人员发现最重要的相似之处在于 INDUSTROYER 和 INDUSTROYER.V2,它们过去都是部署在电力传输和分配的恶意软件变体。

COSMICENERGY 还与其他使用 Python 开发、打包、使用开源库,实现 OT 协议的 OT 恶意软件家族在技术上有显着相似之处,包括IRONGATE、TRITON和INCONTROLLER。可通过 Mandiant Advantage 进一步分析这些相似性。

关于这些相似性,安全人员强调以下可能在未来的 OT 恶意软件中体现的趋势:

滥用不安全的协议:虽然面向 OT 的恶意软件系列可以针对特定目标环境专门构建,但可以利用不安全的 OT 协议来构建恶意软件,例如 LIGHTWORK 滥用 IEC-104 协议多次针对多个受害者。

使用开源库实现协议:使用开源项目的OT 协议的可用性,可能会降低尝试与OT设备交互准入门槛。但是专有 OT 协议可能会继续需要自定义协议实现。

使用 Python 开发和/打包恶意软件:最近使用 Python 开发或打包的 OT 恶意软件激增,安全人员预计攻击者会通过 PyInstaller (IRONGATE) 或 Py2Exe (TRITON) 等方法,继续编译或打包他们的 OT 恶意软件。

如何发现&预防COSMICENERGY

安全人员为处于风险中的组织提供以下发现方法,以对从工具集中实施的战术、技术和程序 (TTP) 来监测威胁:

1.建立基于主机的日志收集和聚合,并查看日志以获取 Python 脚本或未经授权的代码执行的证据。

2.识别并调查在 OT 系统或有权访问 OT 资源的系统上创建、传输和/或执行未经授权的 Python 打包可执行文件(例如 PyInstaller 或 Py2Exe)。

3.监控有权访问 OT 资源的系统,以创建合法的临时文件夹、文件、工件和外部库,作为打包 Python 脚本执行的证据。例如创建临时“_MEIPASS”PyInstaller 文件夹。

4.监控可访问 OT 系统和网络的 MSSQL 服务器以获取以下证据:

  • MSSQL 服务器和凭据的侦察和枚举活动。                                                                                                   
  • 与 MSSQL 服务器 (TCP/1433) 的未授权网络连接以及不规则或未授权的身份验证。
  • Windows shell 命令执行的 SQL 扩展存储过程的启用和使用:

图 9:PIEHOP SQL 命令

5.Certutil 命令用法:

  • “certutil -hashfile”
  • “certutil-解码”

6.base64 编码的可执行文件的传输、创建、暂存和解码。

附录:MITRE ATT&CK

T1140:去混淆/解码文件或信息

攻击者可能会使用混淆文件或信息来隐藏入侵以防止分析。因此安全人员需要单独的机制来解码或去混淆该信息,具体取决于如何使用它。这样做的方法包括恶意软件的内置功能或使用系统上存在的实用程序。

T0807:命令行界面

攻击者可能会利用命令行界面 (CLI) 与系统交互并执行命令。CLI 提供了一种与计算机系统交互的方式,并且是控制系统环境中许多类型的平台和设备的共同特征。攻击者还可能使用 CLI 安装和运行新软件,包括可能在操作过程中安装的恶意工具。

T0809:数据销毁

攻击者可能会在操作过程中执行数据销毁。他们可能会在目标系统上放置或创建恶意软件、工具或其他非本机文件以实现此目的,从而可能留下恶意活动的痕迹。但是,此类非本地文件和其他数据可能会在入侵过程中被删除,以保持较小的占用空间或作为入侵后清理过程的标准部分。

T0831:控制的操纵

攻击者可能会在工业环境中操纵物理过程控制。操纵控制的方法可以包括改变设定点值、标签或其他参数。对手可能会操纵控制系统设备或可能利用他们自己的设备,来与物理控制进程通信并指挥物理控制进程。操作的持续时间可能是暂时的或持续时间更长,这取决于操作员的检测。

T0855:未经授权的命令消息

攻击者可能会发送未经授权的命令消息来指示控制系统资产执行其预期功能之外的操作,或者在没有逻辑先决条件的情况下触发其预期功能。命令消息在 ICS 网络中用于向控制系统设备发出直接指令。如果攻击者可以向控制系统发送未经授权的命令消息,则它可以指示控制系统设备,执行设备操作正常范围之外的操作。对手可能会指示控制系统设备执行会导致影响的操作。

参考来源:https://www.mandiant.com/resources/blog/cosmicenergy-ot-malware-russian-response


文章来源: https://www.freebuf.com/articles/neopoints/368434.html
如有侵权请联系:admin#unsafe.sh