乌克兰阻止了试图攻击其电网的俄罗斯黑客

乌克兰阻止了试图攻击其电网的俄罗斯黑客

乌克兰计算机应急响应小组公告详情:

Sandworm Group (UAC-0082) 使用恶意程序 INDUSTROYER2 和 CADDYWIPER (CERT-UA # 4435) 对乌克兰能源设施进行网络攻击

一般信息

乌克兰 CERT-UA 政府计算机应急响应小组已采取紧急措施,以应对与针对乌克兰能源设施的针对性攻击有关的信息安全事件。

攻击者的想法涉及拆除攻击对象的几个基础设施元素,即:

  • 高压变电站 – 使用恶意程序 INDUSTROYER2;此外,每个可执行文件都包含一组静态指定的各个变电站的唯一参数(文件编译日期:23.03.2022);
  • 运行 Windows 操作系统的电子计算机(计算机)(用户计算机、服务器以及自动化工作站 ACS TP) – 使用恶意软件破坏程序 CADDYWIPER;在解密和运行后者时,提供了加载器 ARGUEPATCH 和 Silk TAILJUMP 的使用;
  • 运行 Linux 操作系统的服务器设备 – 使用恶意破坏性脚本 ORCSHRED、SOLOSHRED、AWFULSHRED;
  • 有源网络设备。

CADDYWIPER 的集中分发和启动是通过组策略机制 (GPO) 实现的。POWERGAP PowerShell 脚本用于添加从域控制器下载文件析构函数组件并在计算机上创建计划任务的组策略。

通过创建 SSH 隧道链来提供在局域网段之间水平移动的能力。IMPACKET 用于远程执行命令。

据了解,受害组织遭受了两波攻击。最初的侵害发生在不迟于 2022 年 2 月。变电站的断开和公司基础设施的退役计划于 2022 年 4 月 8 日星期五晚上进行。同时,到目前为止,恶意计划的实施已被阻止。

为了识别其他乌克兰组织中类似威胁的迹象,向有限数量的国际合作伙伴和乌克兰能源公司提供了具有 TLP: AMBER 访问级别的操作信息,包括恶意软件样本、侵害指标和 Yara 规则。

特别感谢 Microsoft 和 ESET。

乌克兰阻止了试图攻击其电网的俄罗斯黑客

侵害指标

文件:

fbe32784c073e341fc57d175a913905c 43d07f28b7b699f43abd4f695596c15a90d772bfbd6029c8ee7bc5859c2b0861 sc.sh (OrcShred)
73561d9a331c1d8a334ec48dfd94db99 bcdf0bd8142a4828c61e775686c9892d89893ed0f5093bdc70bde3e48d04ab99 wobf.sh (AwfulShred)
97ad7f3ed815c0528b070941be903d07 87ca2b130a8ec91d0c9c0366b419a0fce3cb6a935523d900918e634564b88028 wsol.sh (SoloShred)
9ec8468dd4a81b0b35c499b31e67375e cda9310715b7a12f47b7c134260d5ff9200c147fc1d05f030e507e57e3582327 {zrada.exe, peremoga.exe, watt.exe} (ArguePatch)
1938380a81a23b8b1100de8403b583a7 1724a0a3c9c73f4d8891f988b5035effce8d897ed42336a92e2c9bc7d9ee7f5a pa.pay (TailJump)
b63b9929b8f214c4e8dcff7956c87277 fc0e6f2effbfa287217b8930ab55b7a77bb86dbd923c0e8150551627138c9caa caddywiper.bin (CaddyWiper)
3229e8c4150b5e43f836643ec9428865 7062403bccacc7c0b84d27987b204777f6078319c3f4caa361581825c1a94e87 108_100.exe (2022-03-23) (Industroyer2)

病毒文件

C:\Users\peremoga.exe JRIBDFIMCQAKVBBP C:\Users\pa1.pay
reg save HKLM\SYSTEM C:\Users\Public\sys.reg /y
reg save HKLM\SECURITY C:\Users\Public\sec.reg /y
reg save HKLM\SAM C:\Users\Public\sam.reg /y
\\%DOMAIN%\sysvol\%DOMAIN%\Policies\%GPO ID%\Machine\zrada.exe
\\%DOMAIN%\sysvol\%DOMAIN%\Policies\%GPO ID%\Machine\pa.pay
C:\Windows\System32\rundll32.exe C:\windows\System32\comsvcs.dll MiniDump %PID% C:\Users\Public\mem.dmp full
C:\Windows\Temp\link.ps1
C:\Users\peremoga.exe
C:\Users\pa1.pay
C:\Dell\vatt.exe
C:\Dell\pa.pay
C:\Dell\108_100.exe
C:\tmp\cdel.exe

网络地址

91.245.255[.]243
195.230.23[.]19

分析图片

乌克兰阻止了试图攻击其电网的俄罗斯黑客

from

ESET研究员分析报告:

执行摘要

该博文分析了针对乌克兰能源供应商的网络攻击。

关键点:

  • ESET 研究人员与 CERT-UA 合作分析针对乌克兰能源公司的攻击
  • 破坏性行动原定于 2022 年 4 月 8 日进行,但artifacts表明攻击已计划至少两周
  • 该攻击使用支持 ICS 的恶意软件和用于 Windows、Linux 和 Solaris 操作系统的常规磁盘擦除器
  • 我们高度自信地评估攻击者使用了新版本的 Industroyer 恶意软件,该恶意软件于 2016 年用于切断乌克兰的电力供应
  • 我们高度自信地评估,APT 组织 Sandworm 应对此次新攻击负责

Industroyer2:重装 Industroyer

ESET 研究人员对影响乌克兰一家能源供应商的网络事件做出了回应。我们与CERT-UA密切合作,以修复和保护这一关键基础设施网络。

此次合作发现了一种新的Industroyer恶意软件变种,我们与 CERT-UA 一起命名为 Industroyer2——请参阅此处的 CERT-UA 出版物。Industroyer 是一种臭名昭著的恶意软件,2016 年 Sandworm APT 组织使用它来切断乌克兰的电力。

在这种情况下,Sandworm 攻击者试图针对乌克兰的高压变电站部署 Industroyer2 恶意软件。

除了 Industroyer2,Sandworm 还使用了几个破坏性恶意软件系列,包括 CaddyWiper、ORCSHRED、SOLOSHRED 和 AWFULSHRED。我们在 2022 年 3 月 14 日首次发现 CaddyWiper,当时它被用来对付一家乌克兰银行——请参阅我们关于 CaddyWiper 的 Twitter 帖子2022-04-08 14:58 再次使用了 CaddyWiper 的变体来对付前面提到的乌克兰能源供应商。

在这一点上,我们不知道攻击者是如何入侵最初的受害者的,也不知道他们是如何从 IT 网络转移到工业控制系统 (ICS) 网络的。图 1 显示了该攻击中使用的不同恶意软件的概览。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 1. 攻击中部署的恶意软件概览

图 2 总结了事件链。

  • 2022-02-24:当前俄罗斯入侵乌克兰的开始
  • 2022-03-14:针对乌克兰银行部署 CaddyWiper
  • 2022-04-01:针对乌克兰政府实体部署 CaddyWiper
  • 2022-04-08 14:58 UTC:在一些 Windows 机器上部署 CaddyWiper,在能源供应商部署 Linux 和 Solaris 破坏性恶意软件
  • 2022-04-08 15:02:22 UTC:沙虫操作员创建计划任务以启动 Industroyer2
  • 2022-04-08 16:10 UTC: 计划执行 Industroyer2 以切断乌克兰地区的电力供应
  • 2022-04-08 16:20 UTC: 在同一台机器上按计划执行 CaddyWiper 以擦除 Industroyer2 痕迹

图 2. 事件时间表

2017 年,ESET 研究人员透露,我们命名为 Industroyer 的恶意软件导致了2016 年 12 月影响乌克兰首都基辅的停电。

正如我们的白皮书Win32/Industroyer:工业控制系统的新威胁中详述的那样,它能够与电力系统中常见的工业控制系统进行交互。这包括 IEC-101、IEC-104、IEC 61850 和 OPC DA 设备。

当时,我们说“如果不使用特定的、有针对性的工业环境中使用的专用设备,任何人似乎都不太可能编写和测试此类恶意软件”。美国政府在 2020 年证实了这一点,当时主要情报局 (GRU) 俄罗斯军事单位 74455 的六名军官因在包括 Industroyer 和 NotPetya 在内的多次网络攻击中所扮演的角色而被起诉参阅司法官上的起诉书和我们的Sandworm 运营的历史概览

最近发现的恶意软件是 Industroyer 的新变种,因此得名 Industroyer2。

Industroyer2

Industroyer2 部署为名为108_100.exe的单个 Windows 可执行文件,并在 2022 年 4 月 8 日 16:10:00 UTC 使用计划任务执行。根据 PE 时间戳,它于 2022 年 3 月 23 日编译,表明攻击者已经计划了两个多星期的攻击。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 3. 时间戳和编译器信息

Industroyer2 仅实现 IEC-104(又名IEC 60870-5-104)协议来与工业设备通信。这包括用于变电站的保护继电器。这与 2016 Industroyer 变体略有不同,后者是一个完全模块化的平台,具有多种 ICS 协议的有效负载。

Industroyer2 与 Industroyer 的有效负载104.dll有许多代码相似之处。我们高度自信地评估新变体是使用相同的源代码构建的。

Industroyer2 是高度可配置的。它包含在其主体中硬编码的详细配置,驱动恶意软件操作。这与 Industroyer 不同,将配置存储在单独的.INI文件中。因此,攻击者需要为每个新的受害者或环境重新编译 Industroyer2。但是,鉴于 Industroyer* 恶意软件系列仅部署了两次,每个版本之间存在 5 年的间隔,这可能不是 Sandworm 运营商的限制。

新的配置格式存储为字符串,然后提供给恶意软件的 IEC-104 通信例程。Industroyer2 能够同时与多个设备进行通信。具体来说,分析的样本包含八个不同的设备 IP 地址——参见图 4。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 4. Industroyer2 示例中的硬编码配置

配置包含在通过 IEC-104 协议进行通信期间使用的值,例如 ASDU(应用服务数据单元)地址、信息对象地址 (IOA)、超时等。

在连接到目标设备之前,恶意软件会终止标准日常操作中使用的合法进程。除此之外,它通过将 .MZ 添加到文件名来重命名此应用程序。这样做是为了防止这个合法进程的自动重新启动。

分析仍在进行中,以确定对每个设备采取的确切操作。我们相信该组件能够控制特定的 ICS 系统以切断电源。

Industroyer2 可以生成日志文件或将其进度输出到控制台窗口。然而,该恶意软件并没有像以前的版本那样编写有意义的文本消息,而是编写了各种错误代码——见图 5。我们认为这是 Sandworm 开发人员为阻碍分析而进行的混淆尝试。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 5. Industroyer2 恶意软件产生的输出(IP 地址由 ESET 编辑)

CaddyWiper

为了配合在 ICS 网络中部署 Industroyer2,攻击者部署了新版本的 CaddyWiper 破坏性恶意软件。我们认为它旨在减缓恢复过程并阻止能源公司的运营商重新获得对 ICS 控制台的控制权。它还部署在执行 Industroyer2 的机器上,可能会掩盖他们的踪迹。

CaddyWiper 的第一个版本是乌克兰的 ESET 研究人员于 2022 年 3 月 14 日在银行网络中部署时发现的。它是通过组策略对象 (GPO) 部署的,表明攻击者事先已经控制了目标的网络。擦除器从连接的驱动器中擦除用户数据和分区信息,使系统无法运行且无法恢复。

新的 CaddyWiper 装载链

在能源供应商的网络中,攻击者部署了一个新版本的 CaddyWiper,它使用了一个新的加载器,被 CERT-UA 命名为 ARGUEPATCH。ARGUEPATCH 是Hex-Rays IDA Pro 软件合法组件的补丁版本,特别是远程 IDA 调试器服务器win32_remote.exe。IDA Pro 不打算在 ICS 环境中使用,因为它的主要目的是用于软件逆向工程,包括恶意软件分析。我们不知道为什么攻击者选择木马化这个软件;它可能是对防御者的巨魔

ARGUEPATCH 由计划任务执行,该任务计划在 2022-04-08 14:58 UTC 在一台机器上启动一次,并在 16:20 UTC 在部署 Industroyer2 的机器上启动一次。

修补后的二进制文件从文件加载加密的 shellcode 并使用密钥对其进行解密,两者都在命令行上提供。单字节 XOR 密钥是从输入密钥派生的,用于解密 shellcode。

解密后的 shellcode 是稍加修改的 CaddyWiper 版本。图 6 和图 7 提供了它们的主要例程的比较。请注意,它们不会擦除域控制器,而是将C:\Users\和磁盘从D:\擦除到[:\。擦除例程也几乎相同:它用 0 填充所有文件

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 6. CaddyWiper 第一个示例的主程序。
乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 7. 能源供应商部署的 CaddyWiper 示例的主要例程

最后,CaddyWiper使用IOCTL_DISK_SET_DRIVE_LAYOUT_EX和从\\PHYSICALDRIVE9到\\PHYSICALDRIVE0的所有磁盘的归零InputBuffer调用DeviceIoControl 。这会擦除驱动器分区的扩展信息:主引导记录 (MBR) 或 GUID 分区表 (GPT)。这会使机器无法启动。

活动目录枚举

除了 CaddyWiper 之外,在能源供应商网络和早前被入侵的银行中都发现了一个 PowerShell 脚本。

此脚本使用 Active Directory 服务接口 (ADSI) 枚举组策略对象 (GPO)。图 8 中显示的脚本几乎与 Medium 博客文章中提供的片段相同。

我们认为攻击者通过 GPO 部署了 CaddyWiper,并使用脚本检查了该 GPO 的存在。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 8. 枚举 GPO 的 PowerShell 脚本(美化)

Linux 和 Solaris 破坏性恶意软件(ORCSHRED、SOLOSHRED、AWFULSHRED)

在目标能源公司的网络上还发现了针对运行 Linux 和 Solaris 的系统的其他破坏性恶意软件。这种攻击有两个主要组成部分:蠕虫和擦除器。后者有两种变体,一种用于每个目标操作系统。所有恶意软件都在 Bash 中实现。

蠕虫

攻击者启动的第一个组件是蠕虫,其文件名为sc.sh。此 Bash 脚本首先添加一个计划任务(cron 作业)以在 UTC 下午 2:58 启动擦除器组件(假设系统处于本地时区,UTC+3),除非它是使用“所有者”参数启动的。这可能是避免用于启动蠕虫自动破坏的初始系统的一种方法。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 9. 设置 cron 作业以在下午 5:58 启动擦除器。
根据安装的操作系统选择正确的CaddyWiper。

然后,该脚本通过查看ip route或ifconfig -a的结果遍历系统可访问的网络。它始终假定它收集的每个 IP 地址都可以访问 C 类网络 (/24)。它将尝试使用 SSH 到 TCP 端口 22、2468、24687 和 522 连接到这些网络中的所有主机。一旦找到可访问的 SSH 服务器,它就会尝试使用恶意脚本提供的列表中的凭据。我们认为攻击者在攻击之前拥有凭据,以使擦除器得以传播。

如果系统尚未受到威胁,恶意软件将被复制到新目标,并启动蠕虫。蠕虫使用owner参数启动,因此擦除器计划在 UTC 下午 2:58 启动并销毁所有数据。如果这些系统设置为本地时区,则破坏必须在系统受到 CaddyWiper 破坏的同时开始。

Linux 擦除器

擦除器的 Linux 变体被轻微混淆:变量和函数名称已被替换为无意义的 8 个字母单词。大多数文字值也被文件开头的变量替换。

乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 10. 混淆脚本除外(空白优化)
乌克兰阻止了试图攻击其电网的俄罗斯黑客
图 11. 通过重命名函数和变量并使用字面量对上述内容进行反混淆

最终,Linux 擦除器通过使用shred (如果可用)或简单地dd(使用if=/dev/random )来破坏连接到系统的磁盘的全部内容。如果连接了多个磁盘,则会并行完成数据删除以加快处理速度。

根据大小,可能需要数小时才能完全擦除整个磁盘。为了使系统更快地无法运行,它首先尝试停止和禁用 HTTP 和 SSH 服务。使用systemctl disable 禁用这两个服务。为了确保服务不会重新启用,负责加载服务的systemd单元文件将从磁盘中删除。

/boot、/home和/var/log中的文件也会在销毁完整驱动器之前被删除。这会使系统更快地无法运行,删除用户数据并可能删除有罪的日志。

恶意脚本的最后一个动作是使用SysRq强制启动重启。由于所有驱动器都是随机填充的,因此不会启动任何操作系统。

Solaris擦除器

与 Linux 擦除器不同,Solaris 变体没有被混淆。

与 Linux 变体一样,恶意脚本会遍历所有服务以停止和禁用它们,如果它们包含关键字ssh、http、apache以及额外的 ora_或oracle。这些服务很可能被用于控制 ICS 系统的应用程序使用。清除它们将阻止能源公司的运营商重新控制变电站并回滚 Industroyer2 的行动。

它根据可用的内容使用systemctl或svcadm 。后者很可能是因为 Solaris 没有运行systemd。

文件销毁从删除数据库开始。它使用shred然后rm删除以ORA开头的环境变量中包含的所有文件和目录。Oracle 数据库使用以下变量来定义数据库文件和软件的位置:ORACLE_BASE、ORACLE_HOME和ORACLE_PATH。请注意,shred确保无法进行数据恢复(无需备份)。

与 Linux 变体一样,/boot、/home和/var/log中的文件会被优先删除。

然后脚本遍历连接到系统的磁盘,在/dev/dsk/中找到。它忽略切片(分区)并且仅在完整磁盘上工作。对于它们中的每一个,恶意脚本都会使用shred覆盖全部内容。为了最大限度地减少执行擦除所需的时间,所有磁盘都被并行擦除。

最后,脚本自毁。

结论

乌克兰再次成为针对其关键基础设施的网络攻击的中心。这场新的 Industroyer 活动紧随针对乌克兰各个行业的多波雨刷浪潮。ESET 研究人员将继续监控威胁形势,以更好地保护组织免受这些类型的破坏性攻击。

非常感谢@_CERT_UA,他与我们一起处理这个案例并提供了样本。您可以在此处阅读他们关于此活动的建议。如果对我们在 WeLiveSecurity 上发布的研究有任何疑问,请发送电子邮件至[email protected] 与我们联系。

ESET Research 现在还提供私人 APT 情报报告和数据馈送。有关此服务的任何查询,请访问ESET 威胁情报页面。

侵害指标

SHA-1文件名ESET 检测名称描述
FD9C17C35A68FC505235E20C6E50C622AED8DEA0108_100.exeWin32/Industroyer.BIndustroyer2
6FA04992C0624C7AA3CA80DA6A30E6DE91226A16zrada.exeWin32/Agent.AECGArguePatch
9CE1491CE69809F92AE1FE8D4C0783BD1D11FBE7pa.payN/ATailJump
(加密的 CaddyWiper)
0090CB4DE31D2D3BCA55FD4A36859921B5FC5DAElink.ps1PowerShell/HackTool.Agent.AH枚举 GPO 的脚本
D27D0B9BB57B2BAB881E0EFB97C740B7E81405DFsc.shLinux/Agent.PC trojanOrcShred(Linux 蠕虫)
3CDBC19BC4F12D8D00B81380F7A2504D08074C15wobf.shLinux/KillFiles.C trojanAwfulShred(Linux 擦除器)
8FC7646FA14667D07E3110FE754F61A78CFDE6BCwsol.shLinux/KillFiles.B trojanSoloShred
(Solaris 擦除器)

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注