Большинство кибератак имеют финансовую мотивацию, однако в последнее время возросло число атак, цель которых — не обогащение, а нанесение ущерба жертве. Одним из инструментов таких атак являются вайперы (от англ. wiper) — программы, которые уничтожают данные без возможности восстановления. К наиболее известным вайперам, появившимся в 2022 году, относятся DoubleZero, IsaacWiper, HermeticWiper, CaddyWiper, WhisperGate, AcidRain, Industroyer2 и RuRansom.
Осенью 2022 года наши решения зафиксировали попытки ранее неизвестного троянца, которого мы назвали CryWiper, атаковать сеть организации в Российской Федерации. Изучив образец вредоносного ПО, мы выяснили, что этот троянец, хотя и маскируется под шифровальщика и вымогает у жертвы деньги за «расшифровку» данных, в действительности не шифрует, а целенаправленно уничтожает данные в пострадавшей системе. Более того, анализ программного кода троянца показал, что это не ошибка разработчика, а его изначальный замысел.
Технические детали CryWiper
Попавший к нам образец CryWiper — это 64-битный исполняемый файл под ОС Windows. Зловред разработан на языке C++ и собран с помощью набора инструментов MinGW-w64 и компилятора GCC. Это не самый распространенный подход среди разработчиков вредоносного ПО на C/C++ под Windows — для таких целей чаще используют среду разработки Microsoft Visual Studio. Сборка с помощью MinGW целесообразна либо при разработке кросс-платформенного приложения под разные ОС (например, под Windows, Linux и/или FreeBSD), либо если сам разработчик в качестве основной ОС использует что-либо отличное от Windows. Отметим, что в случае CryWiper первый вариант маловероятен, так как троянец использует много вызовов WinAPI-функций.
Дата сборки образца, в соответствии с полем PE заголовка: 2022-09-06 11:08:54.
Образец троянца был обнаружен по следующему пути:
1 |
c:\windows\system32\browserupdate.exe |
Алгоритм работы CryWiper
Создание задачи в планировщике
После запуска CryWiper с помощью планировщика заданий (Task Scheduler) и команды schtasks create создает задачу для запуска собственного файла каждые 5 минут.
Создание задачи в планировщике
Коммуникация с C&C
Затем троянец обращается к своему командному серверу с помощью запроса HTTP GET и в виде параметра передает имя зараженного компьютера.
Запрос CryWiper и ответ от C&C
В ответ сервер C&C отправляет строку run либо do not run, которая управляет поведением троянца. Если вернулось run, то CryWiper сразу приступит к вредоносной активности.
Во всех остальных случаях исполняется особая логика, которая, судя по результатам нашего анализа, задумана как отсрочка выполнения на 4 суток (345 600 секунд). Однако реализована она неудачно: код написан так, что зловред ни при каких условиях не будет ждать указанное время и просто завершит исполнение, если не получил команду run. CryWiper сохраняет текущее время в реестре (параметр HKCU\Software\Sysinternals\BrowserUpdate\Timestamp) сразу перед проверкой ответа от сервера. Получив команду do not run или не получив указаний, он вычисляет, сколько секунд прошло с сохраненного момента, и, если это значение меньше 345 600 секунд, завершает работу. При этом оно никогда не будет больше 345 600 секунд — в действительности проверка занимает лишь доли секунды. А при следующем запуске (см. выше — для этой цели троянец создавал задачу в планировщике) CryWiper снова перезапишет значение Timestamp.
Код, замеряющий время и проверяющий ответ от C&C
Остановка процессов, изменение настроек
Получив ответ run, CryWiper с помощью команды taskkill останавливает процессы, относящиеся к работе серверов баз данных MySQL и MS SQL, почтового сервера MS Exchange и веб-служб MS Active Directory. Троянец делает это для того, чтобы иметь доступ к файлам, которые были бы заняты этими процессами в случае их нормальной работы.
Остановка процессов и удаление теневых копий
Кроме того, троянец удаляет теневые копии файлов при помощи команды vssadmin delete shadows /for=c: /all, что, однако, затрагивает только диск C:. Вероятно, это еще одна оплошность злоумышленника.
Также интересная деталь связана с изменением параметра реестра HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\fDenyTSConnections, который отвечает за запрет подключения к системе по протоколу удаленного рабочего стола (RDP). При атаках с использованием программ-вымогателей злоумышленники зачастую выставляют значение этого параметра на 0, чтобы разрешить к системе доступ по RDP, — например, с целью горизонтального распространения в скомпрометированной сети.
Здесь же мы наблюдаем противоположное поведение: CryWiper устанавливает значение 1, что запрещает доступ по RDP.
Запрет доступа по RDP
Цель этого действия не вполне ясна. Возможно, таким образом разработчик троянца пытается усложнить жизнь ИБ- и IT-специалистам, которые будут участвовать в реагировании на инцидент, — из-за этой настройки они не смогут без дополнительных действий удаленно подключиться к зараженной системе.
Уничтожение данных
Для уничтожения пользовательских файлов CryWiper генерирует последовательность данных при помощи известного генератора псевдослучайных чисел «Вихрь Мерсенна» и записывает эти данные вместо оригинального содержимого файла.
При поиске пользовательских файлов CryWiper пропускает те, которые имеют расширения или находятся в директориях, указанных в таблице.
Игнорируемые расширения файлов | Подстроки в пути к игнорируемым директориям |
.exe | C:\Windows |
.dll | tmp |
.lnk | winnt |
.sys | temp |
.msi | thumb |
.CRY | System Volume Information |
Boot | |
Windows | |
Trend Micro |
Файлы с испорченным содержимым получают дополнительное расширение .CRY.
Часть процедуры, реализующей ГПСЧ «Вихрь Мерсенна». Выделены характерные константы
Примечательно, что точной такой же алгоритм генерации псевдослучайных чисел использовал другой вайпер — IsaacWiper. Впрочем, никакой иной взаимосвязи между ними обнаружить не удалось. Кроме того, они использовались в атаках на разные цели. Так, IsaacWiper был замечен в атаках на государственный сектор Украины, а CryWiper, по имеющимся у нас данным, атаковал организацию в Российской Федерации.
Часть процедуры, уничтожающей содержимое файлов
CryWiper маскируется под шифровальщика и сохраняет в файле README.txt требования о выкупе. В тексте требований используются типичные для вымогательского ПО формулировки, а также приводится адрес Bitcoin-кошелька для оплаты выкупа, адрес почты для связи со злоумышленниками и ID заражения.
Строка ID у CryWiper фиксированная, она содержится в теле троянца и не меняется от запуска к запуску. В большинстве шифровальщиков ID уникален для каждой жертвы и нужен атакующим, чтобы определить, какая жертва заплатила выкуп, а какая нет. Хотя из этого правила есть исключения: если для каждой атаки собирается новый образец троянца, то иногда ID оставляется фиксированным или даже вообще не используется.
Так или иначе, CryWiper умышленно уничтожает содержимое файлов, а значит, и отличать одну жертву от другой для атакующих нет смысла — все равно расшифровывать после заражения уже нечего.
Текст требований CryWiper
Связь с другими семействами
С точки зрения кода и функциональности CryWiper — новый зловред, не связанный с уже существующими семействами. Однако среди вайперов редко используется генерация случайных значений при помощи «Вихря Мерсенна» — чаще встречаются более простые варианты. Выбор алгоритма в CryWiper совпадает с ранее упомянутым IsaaсWiper – единственным из популярных вайперов, который генерирует псевдослучайные значения с помощью этого алгоритма.
Еще одно довольно интересное пересечение с другим вредоносным ПО мы нашли при анализе адреса электронной почты в записке. Оказалось, что этот адрес уже использовался ранее, но не в вайперах: он содержался в нескольких образцах шифровальщиков (например, MD5: 4A42F739CE694DB7B3CDD3C233CE7FB1, 71D9E6EE26D46C4DBB3D8E6DF19DDA7D, 0C6D33DA653230F56A7168E73F1448AC). Два из них относятся к программам-вымогателям хорошо известного семейства Trojan-Ransom.Win32.Xorist, третий является не получившим большой известности образцом из семейства Trojan-Ransom.MSIL.Agent. Самый ранний образец, использующий этот адрес, датирован серединой июня 2017 года.
Заключение
CryWiper позиционирует себя как программа-вымогатель, то есть утверждает, что файлы жертвы зашифрованы и в случае оплаты выкупа их можно восстановить. Однако это обман: на самом деле данные уничтожены и вернуть их нельзя. Деятельность CryWiper в очередной раз показывает, что оплата выкупа не гарантирует восстановление файлов.
Во многих случаях причиной инцидентов с вайперами и вымогательским ПО становится недостаточная защищенность сети, и именно на усиление защиты следует обращать внимание. Мы предполагаем, что число кибератак, в том числе с использованием вайперов, будет расти — во многом из-за нестабильной ситуации в мире. Поэтому снизить вероятность компрометации и потери данных при атаках вайперов и шифровальщиков поможет следующее.
- Защитные решения с возможностью поведенческого анализа файлов, выявляющие и блокирующие вредоносное ПО, — например, KES.
- MDR— и SOC-сервисы, позволяющие своевременно обнаружить вторжение и принять меры по реагированию.
- Динамический анализ почтовых вложений и блокировка вредоносных файлов и URL-адресов. Это затруднит атаки по электронной почте — одному из наиболее распространенных векторов. Такая функциональность есть, например, в Kaspersky Anti Targeted Attack (KATA).
- Проведение регулярных тестирований на проникновение и RedTeam-проектов. Это поможет выявить уязвимые места инфраструктуры организации, защитить их и тем самым значительно уменьшить поверхность атаки для злоумышленников.
- Мониторинг данных об угрозах. Для своевременного обнаружения и блокировки вредоносной активности необходимо располагать актуальной информацией о тактиках, инструментах и инфраструктуре злоумышленников. Для этого нужны потоки данных об угрозах, например Kaspersky Threat Data Feeds.
IoC
14808919a8c40ccada6fb056b7fd7373 — Trojan-Ransom.Win64.CryWiper.a
c:\windows\system32\browserupdate.exe — путь к образцу троянца в системе
hxxp://82.221.141.8/IYJHNkmy3XNZ — сервер C&C
Новый троянец CryWiper прикидывается шифровальщиком
Андрей
14808919a8c40ccada6fb056b7fd7373 — обнаружение на образец не отрывается на VirusTotal
Securelist
Андрей, добрый день!
Образцы, собранные нашими решениями, относятся к данным клиентов, поэтому мы не публикуем их в открытом доступе, в том числе на VirusTotal.