Приветствую, сегодня я расскажу про новый шифровальщик, который мне удалось обнаружить на просторах Интернета. Первые упоминания ClearWater появились ещё в январе 2026 года. Исследуя всемирную паутину, я ещё не находил ни одной нормальной статьи по этому вредоносу, поэтому решил сам написать такую. Данный шифровальщик не отличается какой-то технической сложностью или необычными приемами поэтому его обзор несёт больше информативный характер и предназначен для Malware и TI-аналитиков.

Общие сведения

Образец, который попался мне, распространялся в виде SFX-архива. Для получения содержимого архива, нужно просто вытащить его из PE-файла, найдя сам архив по сигнатуре 37 7A BC AF (начало 7z-архива). Внутри я обнаружил 2 файла: ClearWater_x64.exe и README.bmp.clear. bmp-файл в дальнейшем ставится на обои машины жертвы.

Содержимое архива
Содержимое архива

ClearWater написан на C++. Данные образец был скомпилирован под x86_64. Мне попался чистый сэмпл, без обфускации и со всеми именами функций (not stripped). ВПО не имеет никаких функций закрепления и коммуникации с C2, использует связку RSA и ChaCha20 для шифрования файлов. Для реализации крипто-функций используется библиотека sodium. Зашифрованные файлы имеют расширение .clear. Этапы исполнения:

  • запуск ВПО;

  • загрузка публичного RSA-ключа;

  • удаление теневых копий;

  • шифрование дисков;

  • шифрование SMB-шар;

  • изменение обоев;

  • добавление ransom note в автозагрузку.

    Фрагмент WinMain
    Фрагмент WinMain

Исполнение

ClearWater выполняет подготовительные действия перед началом шифрования. Он удаляет теневые копии и точки восстановления и получает привилегии отладки процесса.

Удаление теневых копий
Удаление теневых копий

Затем начинается процесс шифрования всех дисков и SMB-шар. При шифровании, файлы читаются кусками по 8 MB. Каждый блок шифруется алгоритмом ChaCha20. Если файл слишком большой (>20 GB) шифруются только первые 10 GB. Чтобы пользователь не смог получить ключ ChaCha20, он зашифрован с помощью публичного ключа RSA. После шифрования в конец файла добавляются:

  1. nonce (12 байт);

  2. специальная сигнатура: KEYM;

  3. RSA-зашифрованный ChaCha20 ключ (32 байта).

Фрагмент кода из функции шифрования файла encrypt_file
Фрагмент кода из функции шифрования файла encrypt_file

Затем файлу добавляется расширение .clear. ClearWater не шифрует txt-файлы. После шифрования директории, вредонос оставляет в ней ransom note. Затем происходит deface рабочей станции - на обои ставится ранее распакованное изображение:

Обои ClearWater
Обои ClearWater

Для коммуникации с жертвами используется .onion-домен. Он также указан в ransome note. Для каждой жертвы создаётся уникальный chatid, который предположительно используется как идентификатор.

Также была найдена функция kill_all_non_whitelisted_processes, которая завершает все процессы, не находящиеся в списке. В список входят процессы системы и процессы, связанные с виртуализацией. Эта функция в моём экземпляре ни откуда не вызывается.

Список процесс для функции kill_all_non_whitelisted_processes
Список процесс для функции kill_all_non_whitelisted_processes

Похожие образцы в дикой природе

В ходе исследования вредоноса было написано Yara-правило. С его помощью было найдено ещё несколько похожих экземпляров, обнаруженных ещё с октября прошлого года. В этих сэмплах фигурировала строка HybridCrypto, по которой можно идентифицировать данное ВПО. Полученные образцы очень похожи на исследуемый своим ходом исполнения и общей структурой кода.

Фрагмент кода одного из найденных сэмплов
Фрагмент кода одного из найденных сэмплов

В этих сэмплах моё внимание привлекла функция шифрования файлов, которая была почти идентична той, что найдена в оригинальном ClearWater, с точки зрения процесса исполнения. Во всех экземплярах используется 32-байтный симметричный ключ, 12-байтный nonce и 4-байтовая сигнатура (в случае HybridCrypto это WENC), которая записывается в конец файла вместе с зашифрованным ключом. Примечательно ещё и то, что в самом ClearWater фигурируют строчки, связанные с шифрованием AES-ключей, хотя в качестве основного алгоритма используется ChaCha20.

Функция шифрования в одном из старых сэмплов
Функция шифрования в одном из старых сэмплов

HybridCrypto также обладает функциями закрепления в системе и обходом UAC, использует в качестве основного алгоритма шифрования AES а ещё генерирует RSA ключи прямо на машине жертвы. Это означает, что он вряд ли использовался в реальных атаках.

Учитывая все сходства в функциях, почти одинаковый размер файлов, используемые библиотеки (libsodium), сходные алгоритмы шифрования и язык программирования, на котором написаны вредоносы, можно заключить, что ClearWater является улучшенной версией HybridCrypto.

Yara

rule win64_clear_water {
    meta:
        description = "Rule for detecting ClearWater ransomware"
    strings:
        $clearwater = "ClearWater Ransomware Starting" ascii
        $domain = "b6rgpykvtyqah4q5tii25ouevr5g3u2s7pqc24jdlyhrfms3itljtkqd.onion"
        $clear_ext = ".clear" ascii

        $rsa_log = "[RSA Encrypt]" ascii
        $rsa_blob = "RSAPUBLICBLOB" ascii
        $bcrypt = "BCryptEncrypt" ascii
        $bcrypt_import = "BCryptImportKeyPair" ascii

        $sodium = "sodium_init" ascii
        $chacha = "crypto_stream_chacha20" ascii
        $randombytes = "randombytes_buf" ascii

        $shadow = "vssadmin delete shadows" ascii
        $wmic_shadow = "shadowcopy delete" ascii
        $startup = "CurrentVersion\\Run" ascii
        $wallpaper = "SystemParametersInfo" ascii

        $pubkey = "public_key.pem" ascii
        $magic = { C7 45 10 4D 59 45 4B }

    condition:
        uint16(0) == 0x5A4D and
        filesize < 15MB and
        filesize > 1MB and
        ($clearwater or $domain or 6 of them)
}

Mitre

Этап

ID

Техника

Описание

Defense Evasion

T1027.013

Obfuscated Files or Information: Encrypted/Encoded File

SFX-архив

Execution

T1059

Command and Scripting Interpreter

В функции удаления теневых копий вызываются команды vssadmin / wmic

Execution

T1059.001

Command and Scripting Interpreter: PowerShell

ClearWater использует powershell для завершения процессов (kill_all_non_whitelisted_processes)

Defense Evasion

T1562.001

Impair Defenses

Удаление средств восстановления системы

Privilege Escalation

T1134

Access Token Manipulation

Включение SeDebugPrivilege через enable_debug_privilege

Discovery

T1083

File and Directory Discovery

Рекурсивный обход файловой системы через process_directory

Discovery

T1680

Local Storage Discovery

ClearWater определяет, какие диски есть в системе

Discovery

T1082

System Information Discovery

Определение количества CPU (hardware_concurrency)

Discovery

T1135

Network Share Discovery

Поиск сетевых ресурсов (process_all_network_resources)

Persistence

T1112

Modify Registry

ВПО добавляет в автозагрузку ransom note

Lateral Movement

T1021.002

SMB/Windows Admin Shares

Доступ к сетевым шарам

Impact

T1486

Data Encrypted for Impact

Шифрование файлов ChaCha20 + RSA (encrypt_file)

Impact

T1490

Inhibit System Recovery

Удаление shadow copies

Impact

T1491.001

Defacement

Изменение обоев (change_wallpaper_for_all_users)

Impact

T1489

Service Stop

ClearWater может завершать процессы