Шифровальщики, действующие в СНГ

В последние пару лет, говоря о киберугрозах, чаще всего имеют в виду атаки вымогателей, а именно шифровальщиков. В 2020–2021 годах с началом пандемии и появлением ряда крупных группировок (Maze, REvil, Conti, DarkSide, Avaddon) сформировалась целая преступная экосистема. Это привело к лавинообразному росту числа атак на крупные организации по всему миру, способные заплатить выкуп в сотни тысяч и даже миллионы долларов США.

В этом году после ряда серьезных инцидентов с шифровальщиками, таких как атаки на Colonial Pipeline (оператор крупнейшего топливного трубопровода в США), JBS и Kaseya, и последовавшего за ними повышенного внимания со стороны властей США и других стран, рынок киберпреступников-вымогателей претерпел серьезные изменения: некоторые группировки закрылись, другие провели «ребрендинг».

Большинство известных группировок, о которых можно услышать в новостях в последнее время, как правило, активно за пределами стран СНГ. В этом регионе, однако, организации тоже не могут чувствовать себя в безопасности, поскольку являются целью десятков менее известных групп киберпреступников-вымогателей.

В этом обзоре мы расскажем об основных семействах троянцев-шифровальщиков, наиболее активно атаковавших бизнес на территории СНГ в первой половине 2021 года, и их технических особенностях.

Статистика​


Число бизнес-пользователей в СНГ, столкнувшихся с шифровальщиками, январь — июль 2021 г.(скачать)


Доля уникальных бизнес-пользователей, чьи устройства атаковали троянцы-вымогатели, от общего числа уникальных пользователей продуктов «Лаборатории Касперского» в стране, январь–июль 2021 г. (скачать)

Краткий обзор семейств шифровальщиков​

BigBobRoss/TheDMR​

Этот шифровальщик начал свою активность в самом конце 2018 года и остается актуальным до сих пор. По нашим сведениям, основной вектор его распространения — подбор паролей к RDP.

При запуске BigBobRoss показывает оператору техническую информацию, содержащую среди прочего ключ, необходимый для последующей расшифровки файлов. Также шифровальщик отправляет сообщение с этой информацией через Telegram.

Технический файл, созданный BigBobRoss

Технический файл, созданный BigBobRoss

Содержимое папок после шифрования выглядит следующим образом: в начало каждого файла добавляется электронный адрес злоумышленников и ID жертвы, затем идут оригинальные имя и расширение, а после расширение, добавляемое шифровальщиком.

Зашифрованные файлы и записка

Зашифрованные файлы и записка

Помимо этого, в каждую папку добавляется записка с контактами злоумышленников.

Записка, оставленная шифровальщиком

Записка, оставленная шифровальщиком

Для шифрования программа использует симметричный алгоритм AES с ключом размером 128 бит в режиме ECB (режим простой замены) из криптографической библиотеки CryptoPP.

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

PDB исполняемого файла

PDB исполняемого файла

Crysis/Dharma​

Crysis — это старый шифровальщик, известный еще с 2016 года. За свою историю он успел прекратить активность и возродиться снова, и на сегодняшний день продолжает действовать. Код троянца не менялся уже несколько лет, однако он активно распространяется по схеме партнерской программы (RaaS, Ransomware-as-a-Service).

Crysis написан на C/C++ и скомпилирован в MS Visual Studio. Зловред шифрует файлы алгоритмом AES-256 в режиме CBC. При запуске троянца генерируется 256-битный ключ AES, который шифруется по алгоритму RSA-1024 с публичным ключом злоумышленника, содержащимся в теле троянца.

При шифровании каждого файла используется вышеуказанный ключ AES, а также сгенерированный 128-битный вектор инициализации (IV). В обработанный зловредом файл помимо зашифрованного содержимого сохраняется IV, зашифрованный алгоритмом RSA ключ AES, а также вспомогательная информация, в том числе строковая метка злоумышленника, хэш SHA1 от использованного публичного ключа RSA, оригинальное имя файла, тип шифрования (для малых и больших файлов по-разному выбирается часть файла для шифрования) и контрольная сумма.

Требования Crysis

Требования Crysis

Типичный вектор атаки Crysis — через несанкционированный доступ по RDP. Злоумышленник подбирает учетные данные (атака по словарю, полный перебор, покупка готовых списков учетных данных у других злоумышленников), подключается по удаленному соединению к компьютеру жертвы и запускает троянец вручную.

Phobos/Eking​

Этот шифровальщик известен с 2017 года. На концептуальном уровне (организация кода, использованные разработчиками подходы) Phobos во многом близок к Crysis. Сходства позволяют предположить, что либо у этих троянцев общий разработчик, либо разработчик Phobos хорошо знаком с принципом работы Crysis. Однако прямых заимствований кода не обнаружено, то есть это все-таки разные семейства троянцев, собранные из разных исходников.

Как и большинство современных шифровальщиков, Phobos распространяется через партнерскую программу (RaaS). Основной вектор заражения — несанкционированный доступ к RDP.

Phobos написан на C/C++ и собран в MS Visual Studio. Для шифрования файлов жертвы он использует алгоритм AES-256-CBC, а ключ AES шифрует с помощью публичного ключа RSA-1024, содержащегося в теле зловреда.

Требования Phobos

Требования Phobos

Cryakl/CryLock​

Cryakl — это, наверное, самый древний из описываемых в данной статье шифровальщиков. Его первая версия была обнаружена еще в апреле 2014 года. Впрочем, в современных версиях троянца, похоже, не осталось ни единой строчки кода с тех времен. Cryakl множество раз переписывался, зачастую со значительными изменениями.

Распространяется Cryakl через партнерскую программу. Самый частый вектор атаки на сегодняшний день — через RDP. Для удобства оператора-злоумышленника троянец собран с поддержкой графического интерфейса. Необходимые настройки оператор выставляет вручную в окне программы.

Окно с настройками для оператора Cryakl

Окно с настройками для оператора Cryakl

Cryakl написан на Delphi. Для шифрования файлов жертвы современная версия Cryakl использует самописный симметричный шифр, а для шифрования ключа — алгоритм RSA.

Интересная особенность актуальных версий Cryakl, не встречавшаяся в других шифровальщиках — продвинутая обработка архивных форматов файлов.

Так как архивы могут быть крупными по размеру, то шифровать их целиком долго, а при шифровании произвольного фрагмента остается шанс, что часть содержимого удастся восстаносить без расшифровки.

В Cryakl реализованы специализированные процедуры для обработки форматов ZIP, 7z, TAR, CAB и RAR (как старых версий, так и RAR5). Он разбирает каждый из указанных форматов и шифрует лишь критичные части архива, в результате добиваясь высокой скорости работы и предотвращая восстановление данных без расшифровки.

Часть процедуры для разбора формата ZIP

Часть процедуры для разбора формата ZIP

Требования Cryakl

Требования Cryakl

CryptConsole​

CryptConsole впервые был замечен в январе 2017 года и встречается до сих пор. Он написан на C# и использует .NET-библиотеки для шифрования. Основным вектором распространения является подбор паролей к RDP.

Записка CryptConsole

Записка CryptConsole

Для шифрования генерируются две пары из ключа и IV. Они записываются в текстовый файл вместе с параметром size, указывающим, какая часть пользовательского файла будет зашифрована. Текстовый файл размещается на рабочем столе. Его имя представляет собой строку в 40 символов, которая совпадает с уникальным идентификатором пользователя (Personal ID в записке с требованиями). Предполагается, что злоумышленник, получив доступ по RDP, запускает шифровальщик и сохраняет этот файл себе, а затем удаляет его с устройства жертвы. Существует вероятность, что удастся восстановить этот файл, однако гарантий нет. Довольно интересно то, что размер шифруемой части файла (size) является, по сути, случайным значением в интервале [5485760, 10485760].

Файл с ключами, оставляемый шифровальщиком

Файл с ключами, оставляемый шифровальщиком

Схема шифрования тоже интересна. Как мы упомянули выше, шифровальщик генерирует две случайные пары: key и IV, key2 и IV2. Затем размер файла сравнивается с ранее сгенерированным случайным значением size. Если файл больше size, то шифруется только часть файла, которая меньше или равна этому значению, при этом в файл предварительно записывается буфер со случайными данными размера size.

Генерация пар key и IV, ID и размера

Генерация пар key и IV, ID и размера

Шифрование осуществляется по симметричному алгоритму AES. Сначала c помощью key и IV шифруется кусок файла размером size, затем зашифрованный буфер переворачивается и снова шифруется, но уже с использованием key2 и IV2. Таким образом реализуется двойная схема шифрования.

Двойная схема шифрования для малых файлов

Двойная схема шифрования для малых файлов

Большие файлы, как было сказано ранее, сначала заполняются произвольными данными (размером size), и только после этого в них записываются зашифрованные данные.

Двойная схема шифрования с записью произвольных данных

Двойная схема шифрования с записью произвольных данных

Fonix/XINOF​

Шифровальщик Fonix появился летом 2020 года. В январе 2021 года его создатели объявили о закрытии проекта и даже опубликовали мастер-ключ, с помощью которого мы выпустили декриптор для всех пострадавших от данного троянца.

Однако на этом история Fonix не завершилась. Через несколько месяцев (в июне 2021 года) мы обнаружили атаки новой версии Fonix, к которым старый мастер-ключ уже не подходит.

Кроме того, новая версия Fonix мимикрирует под троянцы семейств Crysis и Phobos: использует такие же расширения и схему именования шифрованных файлов.

Если файлы, пострадавшие от ранних версий Fonix, получали имена вида picture.jpg.Email=[[email protected]]ID=[B49D8EF5].XINOF, то теперь по названию их не отличить от Crysis (picture.jpg.id-523E8573.[[email protected]].harma) или Phobos (picture.jpg.ID-70AB2875.[[email protected]].eking).

Об умышленной маскировке говорит и путь к PDB проекта, сохранившийся в образце троянца: строка «DharmaVersion» однозначно указывает на семейство Dharma (другое название шифровальщика Crysis).

Путь PDB

Путь PDB

Fonix написан на C++ с применением библиотеки CryptoPP и скомпилирован в MS Visual Studio в 64-битный исполняемый файл. Он распространяется по схеме RaaS. Основной метод его доставки в систему жертвы — через спам с вредоносным вложением.

При каждом заражении шифровальщик отправляет оператору уведомление через Telegram, что, впрочем, не новшество и встречалось уже несколько лет назад.

Отправка нотификации в Telegram

Отправка нотификации в Telegram

Также при заражении Fonix проверяет геолокацию жертвы по IP и в случае запуска в Иране прекращает активность без шифрования.

Проверка геолокации в Fonix

Проверка геолокации в Fonix

Для шифрования файлов пользователя Fonix использует алгоритмы ChaCha или Salsa (в зависимости от размера файла). Для шифрования ключей ChaCha/Salsa применяется RSA с сессионным публичным ключом, сгенерированным при запуске троянца. Сессионный приватный ключ шифруется по тому же алгоритму RSA с помощью публичного мастер-ключа, содержащегося в теле зловреда.

Ранние версии Fonix имели свой собственный дизайн требований.

Требования Fonix (ранняя версия)

Требования Fonix (ранняя версия)

Современные образцы копируют оформление из некоторых версий Crysis и Phobos.

Требования Fonix (современная версия)

Требования Fonix (современная версия)

Limbozar/VoidCrypt​

Этот шифровальщик появился в середине 2019 года. Некоторые его версии также известны под именами Limbo, Legion, Odveta, Ouroboros. Limbozar распространяется по схеме партнерской программы (RaaS). Основной вектор распространения на сегодняшний день — через несанкционированный доступ по RDP. Limbozar написан на C++, скомпилирован в MS Visual Studio, а реализацию криптографических функций использует из библиотеки CryptoPP.

На протяжении истории семейства криптографическая схема несколько раз менялась. Современные версии Limbozar при запуске генерируют пару сессионных ключей RSA-2048, затем 256-битный ключ и 96-битный вектор инициализации для алгоритма AES в режиме GCM. Приватный сессионный ключ RSA шифруется алгоритмом AES и сохраняется на диск. Затем пара из ключа и IV для AES шифруется одним из нескольких публичных мастер-ключей RSA, содержащихся в теле троянца, и также сохраняется на диск.

После этой подготовительной фазы Limbozar ищет файлы жертвы и шифрует их алгоритмом AES-GCM, генерируя для каждого файла уникальную пару из ключп и IV, которые, в свою очередь, шифрует сессионным публичным ключом RSA.

После шифрования зловред оставляет требования злоумышленников в файлах Decrypt-info.txt.

Требования Limbozar

Требования Limbozar

Кроме того, по завершении шифрования Limbozar отправляет на свой командный сервер уведомление о новой жертве с помощью POST-запроса. Для реализации сетевой коммуникации использована библиотека SFML (libsfml-network).

Нотификация о новом заражении Limbozar

Нотификация о новом заражении Limbozar

Thanos/Hakbit​

Активность Thanos началась в конце апреля 2020 года, хотя информация о нем появилась еще в январе, когда он был представлен как RaaS на хакерском форуме. Шифровальщик написан на C#. По нашим сведениям, основным вектором его распространения является подбор паролей от RDP.

Обои рабочего стола зараженной машины

Обои рабочего стола зараженной машины

Так как моделью распространения является RaaS, то шифровальщик распространяется посредством конструктора (builder), который позволяет создать как конфигурацию самого шифровальщика, так и декриптор под него.

В конструкторе немало различных настроек: — базовых (расширение зашифрованных файлов, содержимое и имя записки, адрес для оплаты), так и более продвинутых (обфускация кода; самоудаление; отключение Windows Defender; обход Antimalware Scan Interface (AMSI); освобождение файлов, занятых другими процессами; защита процесса шифровальщика; предотвращение сна; задержка исполнения; быстрый режим шифрования для больших файлов; установка расширений для шифрования; выбор способа уведомления жертвы). В сети можно найти утекший конструктор. Скорее всего, его выложил один из купивших его операторов. В качестве защиты в конструктор встроена проверка HWID — это говорит о том, что его собирают под конкретное устройство оператора.

Декриптор позволяет расшифровать файлы за счет идентификатора пользователя, который представляет собой зашифрованный по RSA ключ для симметричного алгоритма шифрования (в разных версиях применяются разные симметричные алгоритмы).

Декриптор для Thanos

Декриптор для Thanos

В различных образцах шифровальщика нам попадались разные схемы шифрования:

  • один ключ для всех файлов, шифрование по Salsa20;
  • разные ключи для всех файлов, шифрование по Salsa20;
  • один ключ для всех файлов, пропущенный через функцию преобразования ключа PBKDF2, и шифрование по AES-256 CBC;
  • один ключ для всех файлов, пропущенный через PBKDF2 с 1000 итераций для малых файлов и 50 000 итераций для больших (>15 МБ), затем шифрование по AES-256 CBC.
Наглядный пример одной из схем шифрования (статичный ключ + PBKDF2 + AES-256 CBC) и способа обфускации кода приведен ниже. Обфускация довольно слабая, что позволяет восстановить исходный код шифровальщика.

Один из блоков кода, используемый для шифрования

Один из блоков кода, используемый для шифрования

Записка с требованием выкупа особенных отличий не имеет. Как и везде, ее цель — оставить контакты, объяснить происходящее пользователю и запугать его.

Текстовая записка Thanos с требованием выкупа

Текстовая записка Thanos с требованием выкупа

Таким образом, Thanos реализует довольно гибкий процесс атаки на жертву, который позволяет оператору самостоятельно принимать решения о необходимых функциях и генерировать шифровальщик под свои конкретные нужды.

XMRLocker​

XMRLocker впервые был замечен в начале августа 2020 года. Он написан на C# и использует .NET-библиотеки для шифрования.

Шифрование осуществляется по заранее сгенерированному паролю, который имеет случайную длину от 65 до 101 символа. Для создания пароля используется фиксированный алфавит, включающий в себя английские буквы верхнего и нижнего регистров, а также некоторые специальные символы.

Генерация пароля в XMRLocker

Генерация пароля в XMRLocker

Для шифрования используется алгоритм AES с длиной ключа 256 бит в режиме CFB и с дополнением по PKCS7. Ранее сгенерированный пароль проходит через функцию PBKDF2 с 50 000 итераций, а результат преобразуется в ключ и IV для дальнейшего шифрования. Для PBKDF2 используется рандомная соль в 32 байта, которая записывается в начало каждого файла. Сгенерированный ключ для всех файлов один. Он сохраняется в текстовом файле с именем HWID, который отправляется на командный сервер в сети Tor и затем удаляется.

Функция шифрования в XMRLocker

Функция шифрования в XMRLocker

После шифрования работа машины завершается. При ее включении пользователя встречает издевательская надпись с описанием случившегося и контактами злоумышленников.

Надпись после включения

Надпись после включения

Записка этого вымогателя ничем не отличается от других записок, она содержит контакты для связи и ID. Единственное, что удивляет, — это надпись «файлы зашифрованы алгоритмом Base-64», так как это не алгоритм шифрования и в работе данного зловреда вообще не используется.

Записка, оставленная шифровальщиком

Записка, оставленная шифровальщиком

Выводы​

На территории СНГ действуют как давно известные, так и сравнительно новые шифровальщики, ориентированные на бизнес. Многие из них активно развиваются, а некоторые с момента первого обнаружения успели прекратить активность и вновь вернуться на рынок. Злоумышленники используют различные техники шифрования, в том числе довольно интересные, такие как двойное шифрование в CryptConsole и обработка архивов в Cryakl.

Хотя существуют разные векторы распространения зловредов, большинство актуальных на сегодня шифровальщиков, атакующих организации в СНГ, проникают в сеть жертвы через RDP. Для противодействия этому важно использовать стойкие пароли для доменных учетных записей и регулярно их менять. Также рекомендуется не открывать доступ по RDP из интернета, а для подключения к корпоративной сети использовать VPN.

Источник
 
Сверху Снизу