Dragos FrostyGoop ICS Malware Intel Brief 0724 r2
Dragos FrostyGoop ICS Malware Intel Brief 0724 r2
Dragos FrostyGoop ICS Malware Intel Brief 0724 r2
DRAGOS, INC
JULY 2024
TABLE OF CONTENTS
Summary 01
Key Findings 01
Analyzing the FrostyGoop ICS Malware 02
What Is the Modbus Protocol?
FrostyGoop ICS Malware Capabilities
Optional Command Line Execution Arguments
Configuration File
Modbus TCP Network Traffic
Logging Capabilities
Dragos discovered FrostyGoop in April 2024. It can interact directly with ICS using Modbus TCP, a standard ICS
protocol across all industrial sectors and organizations worldwide. Additionally, the Cyber Security Situation Center
(CSSC), a part of the Security Service of Ukraine (Служба безпеки України), shared details with Dragos about a
disruptive cyber attack on a district energy company in Ukraine, which resulted in a two-day loss of heating to
customers. Dragos assesses that FrostyGoop was used in this attack. An associated FrostyGoop configuration file
contained the IP address of an ENCO control device, leading Dragos to assess with moderate confidence that
FrostyGoop was used to target ENCO controllers with TCP port 502 open to the internet.
Given the widespread use of Modbus devices globally, the broad applicability of this threat underscores the urgent
need for ICS network visibility and monitoring of Modbus TCP traffic. Detecting and flagging deviations from normal
behavior and identifying attack patterns and behaviors that exploit the Modbus TCP protocol is crucial. This
necessitates the development of detections from the latest threat intelligence on vulnerabilities, attack vectors, and
malware targeting Modbus systems.
Key Findings
• FrostyGoop is the ninth industrial control system (ICS) specific malware. It is the first ICS-specific malware that
uses Modbus TCP communications to achieve an impact on operational technology (OT).
• In April 2024, Dragos discovered multiple FrostyGoop binaries. FrostyGoop is ICS-specific malware written in
Golang that directly interacts with industrial control systems (ICS) using Modbus TCP over port 502. It is
compiled for Windows systems, and at the time of the discovery, antivirus vendors did not detect it as
malicious.
• FrostyGoop can read and write to an ICS device holding registers containing inputs, outputs, and configuration
data. It accepts optional command line execution arguments, uses separate configuration files to specify target
IP addresses and Modbus commands, and logs output to a console and/or a JSON file.
• The Cyber Security Situation Center (CSSC), a part of the Security Service of Ukraine (Служба безпеки України),
shared details with Dragos relating to a cyber attack that targeted a municipal district energy company in
Ukraine. During sub-zero temperatures, the attack disrupted the power supply to heating services to over 600
apartment buildings. The adversaries sent Modbus commands to ENCO controllers, causing inaccurate
measurements and system malfunctions. Remediation took almost two days.
• The investigation revealed that the adversaries possibly gained access to the victim network through an
undetermined vulnerability in an externally facing router. The network assets, including the router,
management servers, and district heating system controllers, were not adequately segmented, facilitating
the attack.
At the time of discovery, Dragos assessed with low confidence that the FrostyGoop ICS malware discovered was
used for testing purposes. However, this assessment changed when an attack was confirmed, as detailed later in this
report. Dragos discovered an associated configuration file containing multiple Modbus commands to read data from
a target ICS device and an IP address belonging to an ENCO control device. Dragos assessed with moderate
confidence that FrostyGoop can impact other devices communicating over Modbus TCP; the malware’s functionality
is not specific to ENCO control devices. Analysis of FrostyGoop files is ongoing for Dragos WorldView Threat
Intelligence subscribers.
1
Modbus Protocol Reference – Control Solutions Minnesota
Configuration File
FrostyGoop accepts a JSON-formatted configuration file containing information used to execute Modbus commands
on a target device. The malware reads the file, parses the JSON data, connects to the IP address from the file, and
sends Modbus TCP commands to holding register addresses specified in the configuration file.
Dragos discovered a sample of the configuration file named ‘task_test.json.’ The IP address in the sample
configuration file belongs to an ENCO control device. ENCO control devices are typically used “for process control in
2
Modicon Mobus Protocol Reference Guide - Modbus
Field Description
Modbus Command Code (i.e. ‘3’ for Read Holding Registers, ‘6’ for Write Single Holding Register,
Code
and ‘16’ for Write Multiple Holding Registers)
Value Integer used to modify the Holding Register (used for Modbus ‘write holding register’ commands)
CONFIGURATION FIELDS
FrostyGoop binaries use a Go Modbus library retrieved from a publicly available Github repository.4
The figure below displays an example of Modbus TCP network traffic between FrostyGoop and a target device. In
the example, FrostyGoop sends four commands to the device: Modbus function code 3 ‘Read Holding Registers’
twice, function code 6 ‘Write Single Register’, and function code 16 ‘Write Multiple Registers.’
3
ENCO Control Configuration Instruction – Axis Industries
4
Modbus Go Library – Github.com
5
Modbus Application Protocol Specification – modbus.com
6
Modbus Application Protocol Specification – modbus.com
7
Modbus Application Protocol Specification – modbus.com
Logging Capabilities
The FrostyGoop binaries log output from the Modbus TCP communications with the target IP address to a Windows
console and a JSON file. FrostyGoop opens a console window upon execution. If the argument for logging is specified
when executing the binary, then the output is logged to a JSON file. Below is an example of output to the console
window during Modbus TCP communications with a device. Once the binaries are ready to begin communications
with the target device, they log the local time and date, the target IP address when starting communications, and the
string ‘start’ to the console window. Then, when FrostyGoop sends commands, it logs the holding register, the
number of registers, a plus or minus depending on the response from the device for each command, and the time it
took for a response. FrostyGoop logs a minus sign if the response from the device contains an exception. An example
of when a device would send an exception to the malware would be if the holding register does not exist.
[runtime.yoexit:asm_amd64.s:1598][1NFO] (1/1)
start
[main.TaskList.executeCommand:main.yo:370][1NFO]
(1/1) address: 53370 count: 5 + : 0s
[main.TaskList.executeCommand:main.yo:370][1NFO]
(1/1) address: 53760 count: 10 + : 15.625ms
[main.TaskList.executeCommand:main.yo:370][1NFO]
(1/1) address: 53882 value: 0 + : 0s
[main.TaskList.executeCommand:main.yo:370][1NFO]
(1/1) address: 54272 count: 10 + : 15.625ms
[runtime.main:proc.yo:250][1NFO] Time delta : 2m3.5390625s
During the attack investigation, a discovery was made that adversaries possibly gained access to the victim network
months earlier by exploiting an undetermined vulnerability in an externally facing router. Subsequently, the
adversaries deployed a webshell with tunnel capabilities similar to ReGeorg8, which was accessed predominantly via
Tor IP addresses. The investigation revealed that the adversaries retrieved the contents of the Security Account
Manager (SAM) registry hive, obtaining user credentials from the system. In January 2024, adversaries initiated L2TP
(Layer Two Tunnelling Protocol) connections to Moscow-based IP addresses.
The victim network assets, which consisted of a router, management servers, and the district heating system
controllers, were not adequately segmented within the network. A forensic examination during the investigation
showed that the adversaries sent Modbus commands directly to the district heating system controllers from
adversary hosts, facilitated by hardcoded network routes.
The affected heating system controllers were ENCO Controllers. The adversaries downgraded the firmware on the
controllers, deploying a version that lacks monitoring capabilities employed at the victim facility, resulting in the Loss
of View. The adversaries did not attempt to destroy the controllers. Instead, the adversaries caused the controllers to
report inaccurate measurements, resulting in the incorrect operation of the system and the loss of heating to
customers.
Dragos assesses that FrostyGoop, an ICS-related malware recently reported by Dragos, was used to facilitate this
attack. FrostyGoop functionality uses the Modbus TCP protocol generically, meaning it could affect many devices.
The associated FrostyGoop configuration file (“task_test.json”) contained an IP address belonging to an ENCO
control device exposed on the Internet, which leads Dragos to assess with medium confidence that before this
attack, FrostyGoop was used to target one or more ENCO controllers where TCP port 502 was Internet accessible.
We want to express our gratitude to the Cyber Security Situation Center (CSSC), a part of the Security
Service of Ukraine (Служба безпеки України), for its continued commitment to collaborative intelligence
sharing and for allowing us to report on the disruptive OT incident impacting communities in Ukraine.
8
sensepost/reGeorg - Github
The key findings suggest that FrostyGoop capabilities can be applied broadly. Modbus is embedded in legacy and
modern systems and nearly all industrial sectors, indicating a wide-ranging potential for disrupting and
compromising essential services and systems.
One of the major concerns is FrostyGoop's ability to communicate with ICS devices via the Modbus TCP protocol,
enabling it to send commands to read or modify data on these devices. This represents a significant risk to the
integrity and functionality of ICS devices, with potentially far-reaching consequences for industrial operations and
public safety. The attack’s involvement of internet-exposed controllers and insufficient network segmentation
highlights the risks of not implementing basic cybersecurity controls and the importance of doing so. Currently, over
46,000 internet-exposed ICS devices communicate over Modbus TCP around the world.
Considering these developments, organizations, and defenders within critical infrastructure sectors must prioritize
assessing and protecting their ICS networks. This includes restricting access to Modbus devices and conducting
thorough network assessments to ensure they are not exposed to the Internet.
Dragos’s ongoing analysis of FrostyGoop files and commitment to actively monitor the situation highlights the need
for a coordinated response to a dynamic threat landscape. Vigilant network security monitoring, proactive defense
measures, and collaborative information sharing will be crucial in mitigating the broad impact of ICS-specific
malware, among other threats.
The Dragos Platform detects FrostyGoop with threat detections already in place. Still, it is recommended that
customers always deploy the latest Knowledge Pack (KP), including IOCs specific to this threat. For Dragos OT
Watch11 customers, our team has conducted searches for signs of this activity on your behalf – consider a lack of
9
Dragos Worldview – Dragos.com
10
Dragos Platform – Dragos.com
11
Advanced Threat Hunting for Industrial Environments – Dragos.com
Knowledge
SID/Rule Analytic Name Description
Pack
3cc434cd-5086-
Modbus Write Observed Modbus traffic with a write function code seen for the
454c-bbd4- KP-2022-009
for First Time first time to a specific host.
6142b01a4623
d323014b-abee-
New ModbusTCP Monitors for new devices using the ModbusTCP
461b-a12f- KP-2020-11
Detection protocol and generates events when activity is seen
641b8796070f
Summary Guidance
1. Identify impacted assets: Access your Asset Inventory and search for ENCO control servers and devices
communicating over Modbus.
12
Dragos Neighborhood Keeper - dragos.com
3. Perform a retrospective search for potential malicious behavior across your SiteStore forensics for signs
of past activity involving this malware.
The Dragos Platform has advanced OT-native threat detection mechanisms to identify abnormal connections and
communications over Modbus. It also incorporates threat-based behavioral analytics that are fine-tuned to recognize
attack patterns and behaviors that exploit the Modbus protocol. By continuously analyzing network traffic and
system interactions, the Dragos Platform can identify and enable a response to suspicious activities indicative of a
Modbus-related attack, ensuring robust protection against both known and emerging threats.
Dragos WorldView threat intelligence further enhances situational awareness by providing in-the-moment insights
into the threat landscape. This intelligence includes data on the latest vulnerabilities, attack vectors, and malware
targeting Modbus systems, empowering security teams to proactively hunt for malicious activities and potential
malware within the environment. This situational awareness allows organizations to stay ahead of threats, rapidly
identify indicators of compromise, and respond effectively to detected incidents. Dragos Platform customers can use
the information in Dragos Worldview reports to start manual hunts for potential malicious activity in their
environments.
2. DEFENSIBLE ARCHITECTURE
This attack highlights the lack of adequate network segmentation and the presence of internet-exposed
controllers. To combat threats like FrostyGoop, a defensible architecture must be implemented, prioritizing the
segmentation of network assets. This includes establishing industrial demilitarized zones (DMZs), enforcing
strict access controls between the corporate IT network and OT environments, and using physical or virtual
Conclusion
The discovery and analysis of the FrostyGoop ICS malware underscore the significant risks posed to OT
environments. FrostyGoop’s capabilities to interact with ICS devices via Modbus TCP and its undetected status by
antivirus vendors highlight the critical need for robust OT cybersecurity measures. The cyber attack on the municipal
district energy company in Ukraine, is a stark reminder of the potential real-world impacts of such vulnerabilities,
emphasizing the necessity for adequate security controls and continuous OT network security monitoring.
Organizations must prioritize the implementation of comprehensive cybersecurity frameworks to safeguard critical
infrastructure from similar threats in the future.
a
COMMUNITY
DEFENSE
DRAGOS
PLATFORM
OT THREAT OT EXPERT
INTELLIGENCE SERVICES
Request a Demo
Copyright ©2024 Dragos, Inc. | All Rights Reserved. | Last updated July 2024