March 7, 2022 Update
A correction has been applied to this blog, further analysis of the wiper malware revealed that the wiper leverages an implementation of the Mersenne Twister pseudorandom number generator (PRNG) and not ISAAC PRNG as originally reported. This blog has been updated to changing references from ISAAC PRNG to Mersenne Twister PRNG.

On February 24, 2022, ESET reported another destructive wiper detected at a Ukrainian government organization dubbed as IsaacWiper. This is the third sample of malware IBM Security X-Force has analyzed which has been reportedly targeting systems belonging to Ukrainian organizations.  IBM Security X-Force obtained a sample of the IsaacWiper malware and has provided the following technical analysis, indicators of compromise and detections.

IsaacWiper Analysis

IsaacWiper is a destructive C++ malware that has been reported as being used in targeted campaigns against Ukraine organizations. The original filename of the analyzed sample is “Cleaner.dll” and contains a compile date of February 25, 2022, 15:48:07 UTC.

Upon execution, the function Start() is executed which begins by creating a log file within %ProgramData%. Following the creation of the log file, the wiper enumerates all physical drives on the target system by calling DeviceIoControl() with the control code IOCTL_STORAGE_GET_DEVICE_ NUMBER. IsaacWiper checks the resulting physical drive list for devices with type 7 (FILE_DEVICE_DISK)  to identify disk volumes and physical drives.  With a list of disk objects, IsaacWiper leverages IOCTL_DISK_GET_DRIVE_GEOMETRY_EX and GetDiskFreeSpaceExW() to obtain the size and available free space of each disk.

Logfile %ProgramData%\log.txt generated by the IsaacWiper sample analyzed by IBM Security X-Force:

getting drives...
physical drives:
-- system physical drive 0: PhysicalDrive0
logical drives:
-- system logical drive: C:
-- logical drive: D:
start erasing system physical drive...
system physical drive -- FAILED
start erasing system logical drive C:

To begin the wiping activity, IsaacWiper leverages CreateFileW() and DeviceIoControl() with control code FSCTL_LOCK_VOLUME to lock the drive. With the drive locked, the wiper function first targets the PhysicalDrive by generating data created with a Mersenne Twister pseudorandom number generator (PRNG) and overwriting the first 0x100000 bytes of the physical drive with the PRNG data.

After overwriting the PhysicalDrive, the malware starts overwriting drives and files. If the wiper can’t open a file, the file is renamed to a temporary file containing “Tmf” and a random four-character string  (example:Tmf3360.tmp) and overwritten with Mersenne Twister PRNG data.

If a volume can’t be accessed, the wiper creates a hidden temporary directory and writes a file to it at the root of the volume (ex: %SystemDrive%\Tmd1234.tmp\Tmf5432.tmp). The temporary file Tmf5432.tmp is then filled with random data until the volume is out of space.

Mersenne Twister pseudorandom number generator (PRNG) data generation in the IsaacWiper sample analyzed by IBM Security X-Force.


IBM Security X-Force has developed the following Yara signature to help identify instances of the IsaacWiper malware:

import "pe"
rule XFTI_IsaacWiper : IsaacWiper
author = "IBM X-Force Threat Intelligence Malware Team"
description = "Detects the IsaacWiper destructive malware based the debug messages and imports."
threat_type = "Malware"
rule_category = "Malware Family"
usage = "Hunting and Identification"
hash = "13037b749aa4b1eda538fda26d6ac41c8f7b1d02d83f47b0d187dd645154e033"
yara_version = "4.0.2"
date_created = "3 Mar 22"
date_updated = ""
reference = ""
$log_s6 = "getting drives" ascii wide nocase
$log_s7 = "start erasing physical drives" ascii wide nocase
$log_s8 = "start erasing logical drive" ascii wide nocase
$log_s9 = "start erasing system physical drive" ascii wide nocase
$log_s10 = "system physical drive" ascii wide nocase
$log_s11 = "start erasing system logical drive" ascii wide nocase
3 of ($log*) and (pe.dll_name == "Cleaner.dll" or
(pe.imports("kernel32.dll", "GetTickCount") and
pe.imports("kernel32.dll", "DeviceIoControl")))

Indicators of Compromise

File System:

Tmd<4 char>.tmp
Tmf<4 char>.tmp


Notable Strings:

getting drives...
physical drives:
-- system physical drive
-- physical drive
logical drives:
-- system logical drive:
-- logical drive:
start erasing physical drives...
physical drive
-- start erasing logical drive
start erasing system physical drive...
system physical drive -- FAILED
start erasing system logical drive
[email protected]


At this time, X-Force recommends organizations consider implementing the indicators listed in this report into their security operations. Additionally, global businesses should seek to establish sound insight into their respective networks, supply chains, third parties and partnerships that are based in, or serve in, region institutions. It is also advised that organizations open lines of communication between relevant information sharing entities to ensure the receipt and exchange of actionable indicators.

If you have questions and want a deeper discussion about the malware and prevention techniques, you can schedule a briefing here. Get the latest updates as more information develops on the IBM Security X-Force Exchange and the IBM PSIRT blog.

If you are experiencing cybersecurity issues or an incident, contact X-Force to help: US hotline 1-888-241-9812 | Global hotline (+001) 312-212-8034.

More cybersecurity threat resources are available here.

More from Malware

Ex-Conti and FIN7 Actors Collaborate with New Backdoor

15 min read -   April 27, 2023 Update This article is being republished with modifications from the original that was published on April 14, 2023, to change the name of the family of malware from Domino to Minodo. This is being done to avoid any possible confusion with the HCL Domino brand. The family of malware that is described in this article is unrelated to, does not impact, nor uses HCL Domino or any of its components in any way. The malware is…

15 min read

When the Absence of Noise Becomes Signal: Defensive Considerations for Lazarus FudModule

7 min read - In February 2023, X-Force posted a blog entitled “Direct Kernel Object Manipulation (DKOM) Attacks on ETW Providers” that details the capabilities of a sample attributed to the Lazarus group leveraged to impair visibility of the malware’s operations. This blog will not rehash analysis of the Lazarus malware sample or Event Tracing for Windows (ETW) as that has been previously covered in the X-Force blog post. This blog will focus on highlighting the opportunities for detection of the FudModule within the…

7 min read

Kronos Malware Reemerges with Increased Functionality

6 min read - The Evolution of Kronos Malware The Kronos malware is believed to have originated from the leaked source code of the Zeus malware, which was sold on the Russian underground in 2011. Kronos continued to evolve and a new variant of Kronos emerged in 2014 and was reportedly sold on the darknet for approximately $7,000. Kronos is typically used to download other malware and has historically been used by threat actors to deliver different types of malware to victims. After remaining…

6 min read

A View Into Web(View) Attacks in Android

9 min read - James Kilner contributed to the technical editing of this blog. Nethanella Messer, Segev Fogel, Or Ben Nun and Liran Tiebloom contributed to the blog. Although in the PC realm it is common to see financial malware used in web attacks to commit fraud, in Android-based financial malware this is a new trend. Traditionally, financial malware in Android uses overlay techniques to steal victims’ credentials. In 2022, IBM Security Trusteer researchers discovered a new trend in financial mobile malware that targets…

9 min read