编者按
网络安全公司Dragos于7月23日发布题为《工控系统恶意软件FrostyGoop对联网运营技术系统的影响》的报告,曝光乌克兰利沃夫市一家市政区域能源公司1月遭受网络攻击,此次攻击使用了新的恶意软件变种FrostyGoop,导致600多栋公寓楼的供暖中断两天。
报告反映,根据乌克兰安全局下属的网络安全态势中心(CSSC)分享的信息,2024年1月22日深夜至1月23日,攻击者对乌克兰利沃夫市的一家市政区域能源公司进行了破坏性攻击,导致600余栋公寓楼供暖中断近2天;调查发现,攻击者可能于2023年4月17日利用Mikrotik路由器外部未确定的漏洞访问了受害者网络,2023年4月20日和4月26日部署了一个具有与ReGeorg类似的隧道功能的Webshell,2023年11月30日和12月14日检索了安全账户管理器(SAM)注册表配置单元的内容并从系统中获取了用户凭据,2024年1月22日发起了与莫斯科IP地址的第二层隧道协议(L2TP)连接;受害网络资产包括一台Mikrotik路由器、4台管理服务器以及相关区域供热系统控制器,网络资产的分段不充分为此次攻击提供了便利;攻击者通过硬编码网络路由从攻击者主机直接向区域供热系统控制器发送了Modbus命令,通过降级控制器上的固件版本关闭了监控功能,利用控制器测量不准确和系统故障造成供暖中断。
报告称,“霜冻粘液”(FrostyGoop)是第九个工业控制系统(ICS)专用恶意软件,也是首个使用Modbus通信影响运营技术的工控系统专用恶意软件;FrostyGoop使用Golang编写,针对Windows系统编译,使用Modbus协议通过502端口直接与工控系统交互;主要功能包括接受可选的命令行执行参数、使用单独的配置文件来指定目标IP地址和Modbus命令、通过Modbus协议与ICS设备通信、发送Modbus命令来读取或修改ICS设备上的数据、将日志输出到控制台或JSON文件;接受的参数包括目标设备的IP地址、在目标设备执行命令的“模式”选项、目标设备上用于发送命令的Modbus寄存器地址、JSON配置文件名、保存日志输出的指定文件名;可实现三个Modbus命令,包括读取Modbus保持寄存器(或连续的保持寄存器块)中的当前值、将值写入保持寄存器以及将值写入一组连续的寄存器。
报告认为,FrostyGoop对多个行业的关键基础设施构成了严重威胁,可能对运营技术网络安全造成更广泛影响;该恶意软件的功能可以广泛应用,具有破坏和危害基本服务和系统的广泛潜力,对工控系统设备的完整性和功能构成了重大风险,可能会对工业运营和公共安全产生深远影响;此次攻击涉及暴露在互联网上的控制器和网络分段不足,充分体现出网络安全漏洞可能对现实世界产生的影响,凸显了充分的安全控制的必要性,以及实施持续运营技术网络安全监控和工控系统协议感知分析的紧迫性;关键基础设施部门的机构和防御人员必须优先评估和保护其工控系统网络,包括限制对Modbus设备的访问并进行彻底的网络评估;相关机构应实施SANS协会的5项关键控制措施以实现世界级运营技术网络安全,包括工控系统事件响应、可防御架构、工控系统网络可视性和监控、安全远程访问以及基于风险的漏洞管理。
奇安网情局编译有关情况,供读者参考。
![网络安全公司报告深度分析乌克兰供暖中断网络攻击事件 网络安全公司报告深度分析乌克兰供暖中断网络攻击事件](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2024/07/0-1721818232.png)
网络安全公司Dragos于7月23日发布的最新报告显示,针对广泛使用的Modbus工业通信协议的恶意软件导致乌克兰1月份超过600栋公寓楼连续两天停暖。
Dragos将该恶意软件命名为“霜冻粘液”(FrostyGoop),该恶意软件使用了Modbus,使得攻击者进一步攻击工业控制系统(ICS)。Dragos表示,当乌克兰安全局下属的网络安全态势中心(CSSC)分享了与针对利沃夫市一家市政能源公司的攻击相关的信息时,它能够确定FrostyGoop是此次停暖的罪魁祸首。
Dragos表示,FrostyGoop是第一个使用Modbus协议对运营技术(OT)造成物理破坏的ICS恶意软件。
目前尚不清楚是谁创建了该恶意软件。Dragos 并未将FrostyGoop归因于某个特定的威胁行为者。该恶意软件是使用Go和其他开源软件库编写的。Dragos目前正在追踪该恶意软件的创建者,编号为TAT2024-24。该公司认为FrostyGoop是第九个用于破坏或攻击的ICS恶意软件。
虽然它并不是特别复杂,但专家警告称,FrostyGoop表明攻击者继续关注曾经不为人知的系统和协议,包括那些维持电力和水等关键基础设施正常运行的系统和协议。
据信,攻击者在袭击发生前10个月就已通过Microtik路由器的漏洞侵入市政能源供应商的网络。随后,攻击者在当年余下的时间里执行了各种任务来准备攻击,包括获取能源系统的用户凭证。在袭击发生前几个小时,攻击者已从莫斯科的IP地址连接到能源系统的网络。
此次攻击发生在乌克兰1月份遭受大规模网络攻击之际,攻击导致该国最大的石油和天然气公司、国家邮政服务等实体出现问题。
Dragos公司技术总监兼首席对手猎人马克·格雷厄姆表示,“我认为这在很大程度上是一种心理战,当动能武器可能不是最佳选择时,可以通过网络手段进行。”
乌克兰安全局未回应置评请求。
唯一已知的对乌克兰关键基础设施造成如此影响的黑客组织是“沙虫”(Sandworm),由俄罗斯联邦武装力量总参谋部情报总局军事单位运营。该组织因多次破坏乌克兰电网而臭名昭著,最近一次是在2022年10月入侵了一个变电站。
针对敏感工业控制网络的恶意软件并不常见。最近的一个是“白日梦”(Pipedream),专家们担心它可能是ICS版的 Cobalt Strike,后者是一种合法的威胁模拟工具,已被恶意攻击者利用。Pipedream是一套极其复杂的工具,而FrostyGoop 则略有不同。
马克·格雷厄姆称,“这是一个简单的工具。”然而,即使该工具简单易用,也并不意味着其危险性会降低。马克·格雷厄姆警告称,低成本攻击越来越容易影响工业系统,无论这些攻击是由政府支持的黑客还是受经济驱动的网络犯罪分子实施的。
马克·格雷厄姆称,“你可能没有部署所有最好的恶意软件,但你想知道,如果你需要操作,你可以随时进入,并且有能力在某个地方的架子上执行此操作。许多对手现在意识到他们也需要这种能力,就像我们看到许多国家不一定投资于自己的恶意软件开发,而是这些私营部门行为者的客户一样。”
附网络安全公司Dragos报告:
![网络安全公司报告深度分析乌克兰供暖中断网络攻击事件 网络安全公司报告深度分析乌克兰供暖中断网络攻击事件](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2024/07/1-1721818236.png)
工控系统恶意软件FrostyGoop
对联网运营技术系统的影响
一、概要
“霜冻粘液”(FrostyGoop)是第九个工业控制系统(ICS)专用恶意软件。它是第一个使用Modbus TCP通信来实现对运营技术(OT)影响的ICS专用恶意软件。“白日梦”(PIPEDREAM)是2022年发现的ICS恶意软件,在其组件之一中使用Modbus通信进行枚举。
Dragos于2024年4月发现了FrostyGoop。它可以使用Modbus直接与ICS交互,Modbus是全球所有工业部门和组织的标准ICS协议。此外,乌克兰安全局下属的网络安全态势中心(CSSC)与Dragos分享了有关乌克兰利沃夫一家地区能源公司遭受破坏性网络攻击的详细信息,该攻击导致客户停暖两天。Dragos评估称,FrostyGoop参与了此次攻击。相关的FrostyGoop配置文件包含ENCO控制设备的IP地址,因此Dragos有信心地评估称,FrostyGoop被用于攻击向互联网开放TCP端口502的ENCO控制器。
鉴于Modbus设备在全球范围内的广泛使用,这种威胁的广泛适用性凸显了对ICS网络可视性和Modbus流量监控的迫切需求。检测和标记偏离正常行为的行为以及识别利用Modbus协议的攻击模式和行为至关重要。这需要根据最新的威胁情报开发针对Modbus系统的漏洞、攻击媒介和恶意软件的检测。
二、主要发现
-
FrostyGoop是第九个针对工业控制系统(ICS)的恶意软件。它是第一个使用Modbus通信来影响运营技术(OT)的ICS恶意软件。
-
2024年4月,Dragos发现了多个FrostyGoop二进制文件。FrostyGoop是用Golang编写的ICS专用恶意软件,它使用Modbus TCP通过端口502直接与工业控制系统(ICS)交互。它是针对Windows系统编译的,在发现该恶意软件时,防病毒供应商并未将其检测为恶意软件。
-
FrostyGoop可以读取和写入包含输入、输出和配置数据的寄存器的ICS设备。它接受可选的命令行执行参数,使用单独的配置文件指定目标IP地址和Modbus命令,并将输出记录到控制台和/或JSON文件。
-
乌克兰安全局下属的网络安全态势中心(CSSC)的一名高级安全研究人员向Dragos透露了有关针对乌克兰利沃夫市一家市政区域能源公司的网络攻击的详细信息。在零度以下的气温下,攻击中断了600多栋公寓楼的供暖服务电力供应。攻击者向ENCO控制器发送Modbus命令,导致测量不准确和系统故障。修复工作耗时近两天。
-
调查显示,攻击者可能通过面向外部的Mikrotik路由器中的未确定漏洞访问了受害者网络。网络资产(包括Mikrotik路由器、4台管理服务器和区域供热系统控制器)未充分分段,为攻击提供了便利。
-
FrostyGoo能够通过Modbus TCP与ICS设备进行通信,威胁到多个行业的关键基础设施。鉴于Modbus协议在工业环境中的普遍性,该恶意软件可能会通过与传统和现代系统进行交互,对所有工业领域造成破坏。
-
乌克兰利沃夫事件凸显了充分的安全控制的必要性,包括OT原生监控。防病毒供应商缺乏检测能力,这凸显了实施持续OT网络安全监控和ICS协议感知分析的紧迫性,以便向运营部门通报潜在风险。
-
Dragos建议组织实施SANS协会5项关键控制措施,以实现世界级OT网络安全。这些措施包括ICS事件响应、可防御架构、ICS网络可视性和监控、安全远程访问以及基于风险的漏洞管理。
三、分析ICS恶意软件FrostyGoop
2024年4月,Dragos在对可疑文件进行例行分类时发现了多个FrostyGoop二进制文件。FrostyGoop是一种用Golang编写的ICS专用恶意软件,可以使用Modbus TCP通过端口502直接与工业控制系统(ICS)交互。根据VirusTotal的说法,防病毒供应商并未将FrostyGoop文件检测为恶意软件。FrostyGoop二进制文件是针对Windows系统编译的。该恶意软件可以读取和写入设备保持寄存器。保持寄存器是包含输入、输出和配置数据的读/写寄存器。
在发现该恶意软件时,Dragos以低等信心评估认为所发现的ICS恶意软件FrostyGoop被用于测试目的。然而,当确认存在攻击时,这一评估发生了变化,如本报告后面所述。Dragos发现了一个相关配置文件,其中包含多个Modbus命令,用于从目标ICS设备以及属于ENCO控制设备的IP地址读取数据。Dragos以中等信心评估认为FrostyGoop可以影响通过Modbus TCP通信的其他设备;该恶意软件的功能并非特定于ENCO控制设备。
什么是Modbus协议?
Modbus是一种客户端/服务器通信协议,最初于1979年为Modicon可编程逻辑控制器设计,但现在已被其他设备广泛使用。它是一种开放协议,与硬件无关,因此常用于可编程逻辑控制器(PLC)、分散式控制系统(DCS)、控制器、传感器、执行器、现场设备和接口间的通信。
Modbus协议定义了一种消息结构,无论控制器通过哪种类型的网络进行通信,它都可以识别和使用这种消息结构。它描述了控制器用于请求访问另一台设备的过程、它如何响应来自其他设备的请求以及如何检测和报告错误。该协议为消息字段的布局和内容建立了标准格式。
该协议概述了每个控制器如何识别其设备地址、识别发给它的消息、决定必要的操作以及从消息中提取任何数据或其他信息。如果需要响应,控制器将使用Modbus协议创建并传输回复消息。
ICS恶意软件FrostyGoop功能
-
接受可选的命令行执行参数。
-
使用单独的配置文件来指定目标IP地址和Modbus命令。
-
通过Modbus TCP协议与ICS设备通信。
-
发送Modbus命令来读取或修改ICS设备上的数据。
-
将日志输出到控制台或JSON文件。
可选的命令行执行参数
FrostyGoop检查可执行文件是否使用任何必需的命令行参数运行。如果未提供命令行参数,二进制文件将退出执行。具体参数因样本而异,但功能保持不变。启动TCP连接和向受害ICS设备发送Modbus命令所需的信息可以指定为命令行参数,也可以包含在单独的JSON配置文件中。FrostyGoop接受的参数包括以下数据:
-
指定要通信的目标设备的IP地址
-
与在ICS设备上执行的Modbus命令相关的“模式”选项(读取保持寄存器、写入单个保持寄存器、写入多个保持寄存器)
-
目标ICS设备上用于发送Modbus命令的Modbus寄存器地址
-
一个JSON配置文件名;FrostyGoop接受两个不同的配置文件:
* 包含受害设备信息(如IP地址、Modbus命令和Modbus寄存器地址)的配置文件
* 包含开始与受害设备进行Modbus TCP通信的特定时间以及延迟执行Modbus命令的各种长度的配置文件
-
指定文件名以保存日志输出
配置文件
FrostyGoop接受JSON格式的配置文件,其中包含用于在目标设备上执行Modbus命令的信息。恶意软件读取文件、解析JSON数据、连接到文件中的IP地址,并将Modbus TCP命令发送到配置文件中指定的保存寄存器地址。
Dragos发现了一个名为“task_test.json”的配置文件样本。样本配置文件中的IP地址属于ENCO控制设备。ENCO控制设备通常用于“区域供热、热水和通风系统中的过程控制”,以监测温度、压力和绝缘等传感器参数。
配置文件中的其他字段如下所述。
![网络安全公司报告深度分析乌克兰供暖中断网络攻击事件 网络安全公司报告深度分析乌克兰供暖中断网络攻击事件](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2024/07/8-1721818239.png)
Modbus网络流量
FrostyGoop通过Modbus TCP端口502与目标IP地址建立通信。可以在恶意软件执行期间使用参数指定IP地址,也可以将其包含在配置JSON文件中。建立连接后,FrostyGoop会向设备发送Modbus命令。在FrostyGoop发送命令并收到目标设备的响应后,二进制文件会关闭连接并退出执行。
FrostyGoop二进制文件使用从公开的Github存储库检索的GoModbus库。
FrostyGoop实现了三个Modbus命令:
-
命令代码3‘读取保持寄存器’,用于读取Modbus保持寄存器(或连续的保持寄存器块)中的当前值
-
命令代码6‘写入单个寄存器’,用于将值写入保持寄存器
-
命令代码16‘写入多个保持寄存器’,用于将值写入一组连续的寄存器
下图显示了FrostyGoop和目标设备间的Modbus TCP网络流量示例。在该示例中,FrostyGoop向设备发送了4个命令:Modbus功能代码3‘读取保持寄存器’两次、功能代码6‘写入单个寄存器’和功能代码16‘写入多个寄存器’。
![网络安全公司报告深度分析乌克兰供暖中断网络攻击事件 网络安全公司报告深度分析乌克兰供暖中断网络攻击事件](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2024/07/7-1721818240.png)
日志记录功能
FrostyGoop二进制文件将Modbus TCP与目标IP地址的通信输出记录到Windows控制台和JSON文件中。FrostyGoop在执行时打开一个控制台窗口。如果在执行二进制文件时指定了日志记录参数,则输出将记录到JSON文件中。以下是Modbus TCP与设备通信期间控制台窗口的输出示例。一旦二进制文件准备好开始与目标设备通信,它们就会将本地时间和日期、开始通信时的目标IP地址以及字符串“start”记录到控制台窗口。然后,当FrostyGoop发送命令时,它会记录保持寄存器、寄存器数量、根据设备对每个命令的响应而定的加号或减号以及响应所用的时间。如果设备的响应包含异常,FrostyGoop会记录一个减号。设备向恶意软件发送异常的一个例子是,如果保持寄存器不存在。
![网络安全公司报告深度分析乌克兰供暖中断网络攻击事件 网络安全公司报告深度分析乌克兰供暖中断网络攻击事件](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2024/07/3-1721818242.png)
四、2024年影响乌克兰利沃夫社区的
运营技术(OT)网络攻击
乌克兰安全局下属的网络安全态势中心(CSSC)向Dragos分享了2024年1月发生的网络攻击的详细信息。2024年1月22日深夜至1月23日,攻击者对乌克兰利沃夫市的一家市政区域能源公司进行了破坏性攻击。攻击发生时,该公司为利沃夫大都市区600多栋公寓楼供热,为用户提供集中供暖。事故的修复工作耗时近两天,在此期间,平民不得不忍受零度以下的低温。
在攻击调查过程中,我们发现攻击者可能于2023年4月17日利用Mikrotik路由器外部未确定的漏洞访问了受害者网络。2023年4月20日和2023年4月26日,攻击者部署了一个具有与ReGeorg类似的隧道功能的Webshell,主要通过Tor IP地址访问。调查显示,2023年11月30日和2023年12月14日,攻击者检索了安全账户管理器(SAM)注册表配置单元的内容,从系统中获取了用户凭据。2024年1月22日,攻击者发起了与莫斯科IP地址的第二层隧道协议(L2TP)连接。
受害网络资产包括一台Mikrotik路由器、4台管理服务器以及相关区域供热系统控制器,在网络中没有充分分段。调查期间的取证检查显示,攻击者通过硬编码网络路由从攻击者主机直接向区域供热系统控制器发送Modbus命令。
受影响的供暖系统控制器是ENCO控制器。攻击者将控制器上的固件从版本51和52降级到50,该版本缺乏受害设施所采用的监控功能,导致视野丧失。攻击者并未试图摧毁控制器。相反,攻击者使控制器报告不准确的测量值,导致系统运行不正确,并导致客户无法供暖。
Dragos评估认为,FrostyGoop(Dragos最近报告的一款ICS相关恶意软件)被用于促进此次攻击。FrostyGoop功能通常使用Modbus协议,这意味着它可能会影响许多设备。相关的FrostyGoop配置文件(“task_test.json”)包含一个属于互联网上公开的ENCO控制设备的IP地址,这让Dragos以中等信心评估认为,在此次攻击前,FrostyGoop被用于针对TCP端口502可访问互联网的一个或多个ENCO控制器。
五、评估对OT网络安全的更广泛影响
ICS恶意软件FrostyGoop及其功能的发现引发了人们对其对OT网络安全的更广泛影响的严重担忧。该恶意软件使用Modbus TCP通过端口502专门针对ICS,并且有可能直接与各种ICS设备交互,对多个行业的关键基础设施构成了严重威胁。
主要发现表明,FrostyGoop的功能可以广泛应用。Modbus嵌入在传统和现代系统以及几乎所有工业领域中,这表明它具有破坏和危害基本服务和系统的广泛潜力。
其中一个主要问题是FrostyGoop能够通过Modbus TCP协议与ICS设备通信,从而能够发送命令来读取或修改这些设备上的数据。这对ICS设备的完整性和功能构成了重大风险,可能会对工业运营和公共安全产生深远影响。此次攻击涉及暴露在互联网上的控制器和网络分段不足,凸显了不实施基本网络安全控制的风险以及这样做的重要性。目前,全球有超过46000台暴露在互联网上的ICS设备通过Modbus进行通信。
考虑到这些发展,关键基础设施部门的组织和防御者必须优先评估和保护其ICS网络。这包括限制对Modbus设备的访问并进行彻底的网络评估,以确保它们不会暴露在互联网上。
Dragos持续分析FrostyGoop文件并致力于积极监控情况,这凸显了对动态威胁形势采取协调应对措施的必要性。警惕性网络安全监控、主动性防御措施和协作性信息共享对于减轻ICS特定恶意软件和其他威胁的广泛影响至关重要。
六、结论
ICS恶意软件FrostyGoop的发现和分析凸显了OT环境面临的重大风险。FrostyGoop通过Modbus TCP与ICS设备交互的能力以及防病毒供应商未检测到的状态凸显了对强大的OT网络安全措施的迫切需求。乌克兰利沃夫市区域能源公司遭受的网络攻击清楚地提醒人们此类漏洞可能对现实世界产生影响,强调了充分的安全控制和持续的OT网络安全监控的必要性。组织必须优先实施全面的网络安全框架,以保护关键基础设施免受未来类似威胁。
网络国防知识库
产业发展前哨站
开源情报信息源
![网络安全公司报告深度分析乌克兰供暖中断网络攻击事件 网络安全公司报告深度分析乌克兰供暖中断网络攻击事件](https://ctfiot.oss-cn-beijing.aliyuncs.com/uploads/2024/07/3-1721818243.jpeg)
奇安网情局
原文始发于微信公众号(奇安网情局):网络安全公司报告深度分析乌克兰供暖中断网络攻击事件