Введение
За последнюю неделю огромное количество израильских компаний сообщили об атаках программ-вымогателей. В то время как некоторые из атак были осуществлены известными вирусами-вымогателями, такими как REvil и Ryuk, несколько крупных корпораций испытали полномасштабную атаку с использованием ранее неизвестного варианта вымогателя с именем Pay2Key.
С течением времени все больше заявленных атак программ-вымогателей оказывается связано с новой программой-вымогателем Pay2Key. Злоумышленник выполнил ту же процедуру, чтобы закрепиться, распространить и удаленно контролировать заражение внутри скомпрометированных компаний.
Проведенное на данный момент расследование показывает, что злоумышленник мог получить доступ к сетям организации незадолго до атаки, но имел возможность быстро распространить программу-вымогатель в течение часа по всей сети. После завершения фазы заражения жертвы получали индивидуализированную записку о выкупе с относительно низким спросом в 7-9 биткойнов (~110–140 тысяч долларов).
Полный объем этих атак все еще не раскрыт и расследуется; но мы, сотрудники Check Point Research и группы реагирования на инциденты, хотели бы предложить свой первоначальный анализ этого нового варианта вымогателя, а также предоставить соответствующие IOC, чтобы помочь защитить возможные продолжающиеся атаки.
Основные выводы:
Хронология атак
В течение последних дней мы смогли получить от израильских групп реагирования на инциденты фрагменты информации, а также различные артефакты криминалистической экспертизы, свидетельствующие о том, что против израильских корпораций (возможно, исключительно) развертывается новый штамм вымогателей.
Комбинируя эти элементы, мы смогли составить частичное представление об атаках по мере их развития:
Распространение Pay2Key выглядит следующим образом:
Новые программы-вымогатели
Анализируя работу программы-вымогателя Pay2Key, мы не смогли сопоставить ее с каким-либо другим существующим штаммом вымогателя, и, похоже, он был разработан с нуля.
Только один движок VirusTotal определил загруженные образцы программ-вымогателей как вредоносные, хотя программа-вымогатель не использует упаковщик или какую-либо защиту, чтобы скрыть свои внутренние функции.
Многочисленные артефакты компиляции указывают на то, что внутренне вымогатель называется Cobalt (не путать с Cobalt Strike).
Хотя личность злоумышленника неизвестна, противоречивые английские формулировки в различных строках, найденных в коде, а также те, которые мы наблюдали в файле журнала, позволяют предположить, что злоумышленник не является носителем английского языка.
Требование выкупа
После успешного шифрования программа-вымогатель передает в систему записку о выкупе, настроенную для целевой корпорации в форме [ORGANIZATION]_MESSAGE.TXT. Сумма выкупа колеблется от 7 до 9 биткойнов, среди заметок о выкупе, которые мы наблюдали.
Стоит отметить, что, хотя записка с требованием выкупа информирует жертв о взломе данных, как и другие программы-вымогатели с двойным вымогательством, нам еще предстоит найти доказательства, подтверждающие это.
Pay2Key
Следует отметить одну интересную вещь: учетная запись Keybase, используемая злоумышленником для чата со своими жертвами, имеет тот же логотип, что и система смарт-контрактов Pay2Key EOSIO. Возможное объяснение заключается в том, что при поиске "pay2key" в изображениях Google это первый результат.
Технический анализ
Первоначальный доступ
Наш анализ атаки Pay2Key был сосредоточен на двоичном коде самого вымогателя, поскольку некоторые из предыдущих этапов атаки были нам недоступны. Атака, как мы упоминали ранее, началась с ручного доступа к одной из машин в сети жертвы, вероятно, через RDP. Злоумышленник скопировал и создал на машине несколько файлов, в том числе:
После создания этих файлов на зараженной машине злоумышленники запускают ConnectPC.exe. Затем они копируют или загружают утилиту PsExec и используют ее для удаленного запуска программы-вымогателя на других машинах в организации. Для правильной работы программы-вымогателя требуется, чтобы файл конфигурации находился в том же рабочем каталоге. Таким образом, Config.ini необходимо загрузить на компьютер жертвы вместе с Cobalt.Client.exe. В случаях, которые мы видели, программа-вымогатель Pay2Key запускалась из путей этого шаблона: C:\Windows\Temp\ [название-организации]tmp\Cobalt.Client.exe
Конфигурация
Артефакты, которые нам удалось заполучить, - это программа-вымогатель, Cobalt.Client.exe и файл конфигурации. Файл конфигурации представляет собой очень простой INI-файл, содержащий две записи - Сервер и Порт. К нашему удивлению, Сервер был не внешним управляющим сервером, а скорее IP-адресом первоначальной зараженной машины. Таким образом, мы полагаем, что исходная машина использовала ConnectPC.exe в качестве служебной программы для передачи сообщений от жертв внутри организации на внешний сервер управления. Такой подход увеличивает вероятность того, что разные машины смогут обмениваться данными, поскольку внутреннее общение с большей вероятностью будет разрешено. Это также снижает шансы того, что адрес управления будет раскрыт аналитиками, поскольку в организации есть только одна машина, которая знает об этом.
Конфигурационный файл, который использовался при атаке, выглядел так:
Если программа-вымогатель была запущена с параметром --config [путь] в качестве аргумента командной строки, она прочитает файл конфигурации по пути, указанному в аргументе.
Программа-вымогатель
Программа-вымогатель Pay2Key написана на C++ и скомпилирована с использованием MSVC++ 2015. Он в значительной степени полагается на объектно-ориентированное программирование и использует хорошо спроектированные классы для своей работы. Он также использует сторонние библиотеки, такие как популярные библиотеки Boost. К счастью, программа-вымогатель не была удалена, и она содержала приличное количество журналов отладки, а также обширную информацию RTTI.
После выполнения Pay2Key считывает ключи сервера и порта из файла конфигурации. Если файл конфигурации не был найден в текущем рабочем каталоге и не был указан в аргументах командной строки, программа-вымогатель напишет "файл конфигурации не найден" в файл по адресу.\ Cobalt-Client-log.txt. Этот файл журнала будет широко использоваться программой-вымогателем во время его выполнения. Новые версии вымогателей обязательно удаляют этот файл журнала с диска. Полный список поддерживаемых сообщений журнала можно найти в приложении к этой статье.
Затем он инициализирует основной класс программы, Cobalt:
ataProcessing::RansomwareEngine, с последующей инициализацией других важных классов, которые, помимо прочего, отвечают за связь, обработку сообщений, управление файлами и шифрование.
Pay2Key генерирует пару ключей RSA и отправляет открытый ключ на сервер по необработанному протоколу TCP. Ключи будут использоваться для установки безопасного обмена данными между программой-вымогателем и сервером. После отправки ключа программа-вымогатель будет ждать сообщений от сервера. Эти сообщения анализируются и обрабатываются пользовательским обработчиком сообщений.
Поддерживаемые сообщения
Программа-вымогатель использует специальные классы для обработки различных сообщений. Мы заметили, что некоторые из этих обработчиков и типов сообщений не реализованы в имеющихся у нас двоичных файлах, а некоторые из них даже не проверяются менеджером обработчиков сообщений. Это еще один признак того, что программа-вымогатель находится в стадии активной разработки. Отсутствующие сообщения, возможно, могут быть частью кода, который сейчас удален, или, альтернативно, кодом, который еще не был реализован.
В процессе реверс инжиниринга образцов программ-вымогателей мы использовали тот факт, что они содержат обширные данные RTTI. Такая информация помогает нам понять роль различных частей кода и взаимосвязь между ними. С помощью Cutter мы смогли элегантно изучить различные классы.
Наиболее интересным типом сообщения является "Config", поскольку оно содержит информацию, которую вымогатель использует во время заражения. Анализ программы-вымогателя без информации из этого сообщения приводит к постоянному откату к конфигурациям по умолчанию. Среди прочего, сообщение конфигурации содержит список расширений файлов для шифрования, расширение файла для зашифрованных файлов (по умолчанию .enc), имя файла с запиской о выкупе (по умолчанию "salam", как в SALAM_MESSAGE.TXT), и записку с требованием выкупа.
Интересно отметить, что и в имени файла, и в записке о выкупе указано имя зараженной организации. Злоумышленники даже создали ASCII-Art с названием зараженной организации. Имя файла с запиской о выкупе из конфигурации будет иметь следующий шаблон [ORGANIZATION]_MESSAGE.TXT. В проанализированных нами инцидентах с сервера было получено расширение .pay2key, но это могло быть что угодно, поскольку программа-вымогатель достаточно гибкая.
В конце процесса шифрования Pay2Key также завершит работу службы MS SQL, используя следующую команду net stop mssqlserver> nul, чтобы освободить файлы, заблокированные службой. Он также может заменить обои жертвы, но мы не наблюдали этого на анализируемых нами машинах.
Эволюция
Мы проанализировали несколько образцов за небольшой промежуток времени и заметили в них несколько улучшений. Это означает, что Pay2Key находится в стадии активной разработки, и разработчики обновляют его дополнительными функциями. Например, в последней версии программы-вымогателя мы заметили, что злоумышленники добавили механизм самоуничтожения в дополнение к новому аргументу командной строки —noreboot.
Новый механизм "housekeeping" отвечает за удаление файлов, созданных злоумышленником, и перезапуск машины.
Шифрование
Стандартно для программ-вымогателей для шифрования файлов используется гибрид симметричной и асимметричной криптографии - с использованием алгоритмов AES и RSA. Сервер C2 предоставляет открытый ключ RSA во время выполнения во время связи. Это означает, что эта программа-вымогатель не выполняет шифрование в автономном режиме - если нет подключения к Интернету или C2 не работает, шифрование не произойдет. В последние годы были замечены некоторые программы-вымогатели, которые агрессивно используют криптографические примитивы, (например,путем встраивания открытого ключа сервера в исполняемый файл), и в то время это считалось техническим усовершенствованием, но, очевидно, авторы здесь предпочитают классический вариант.
Следует отметить одну необычную вещь - использование RC4 для некоторых (не всех) его криптографических функций. RC4 - это потоковый шифр, и его легче использовать не по назначению; обычно он популярен среди авторов вредоносных программ из-за простоты реализации, но здесь авторы фактически использовали стороннюю реализацию (через Windows API). Возможно, это первый раз, когда авторы вредоносных программ по сути говорят: «У нас есть весь мир криптографии, сторонние библиотеки для всего, мощная симметричная криптография. Выберем… RC4 ». Но, опять же, для того, чтобы это действительно имело значение, потребовалась бы какая-то тонкая ошибка при вызове шифра, и мы не смогли ее точно определить.
Еще одно любопытство - использование вредоносным ПО контейнера ключей с настраиваемым именем pippo container. Другие программы-вымогатели почти повсеместно устанавливают нулевое значение для параметра szContainer, который по умолчанию соответствует новому контейнеру ключей, а затем выполняет все криптографические операции с открытым контекстом. Это шаблонный код, стандартный строительный блок программы-вымогателя, который, как известно, работает, поэтому киберпреступники копируют, вставляют и забывают; Тот факт, что авторы не использовали его напрямую, свидетельствует о некотором нездоровом интересе к криптографическому API Windows и его возможностям.
Одним из последних отклонений от "классической" формулы вымогателей является использование CryptDeriveKey для хешированного значения для получения ключа AES (вместо традиционного CryptGenKey). Если бы значения хеш-функции были получены детерминированно, то полученный ключ можно было бы восстановить, но некоторый элемент случайности в хеш-коде (или любое другое количество возможных отдельных настроек на стороне клиента или сервера) может сделать этот подход жизнеспособным. Тем не менее, когда дело доходит до криптографии, изобретать колесо не рекомендуется.
Заключение
Хотя атака все еще расследуется, недавние атаки программ-вымогателей Pay2Key указывают на то, что к тенденции целевых атак программ-вымогателей присоединяется новый злоумышленник, представляющий хорошо продуманную операцию для максимального увеличения ущерба и минимизации уязвимости.
До сих пор наблюдалась атака, направленная на частный сектор Израиля, но, глядя на представленные тактики, методы и процедуры, мы видим сильного действующего лица, у которого нет технических причин ограничивать свой список целей Израилем. Инциденты все еще расследуются, и мы будем обновлять этот блог, добавляя новые результаты, если будут обнаружены какие-либо новые результаты.
Источник: https://research.checkpoint.com/2020/ransomware-alert-pay2key/
Автор перевода: yashechka
Переведено специально для https://xss.pro
За последнюю неделю огромное количество израильских компаний сообщили об атаках программ-вымогателей. В то время как некоторые из атак были осуществлены известными вирусами-вымогателями, такими как REvil и Ryuk, несколько крупных корпораций испытали полномасштабную атаку с использованием ранее неизвестного варианта вымогателя с именем Pay2Key.
С течением времени все больше заявленных атак программ-вымогателей оказывается связано с новой программой-вымогателем Pay2Key. Злоумышленник выполнил ту же процедуру, чтобы закрепиться, распространить и удаленно контролировать заражение внутри скомпрометированных компаний.
Проведенное на данный момент расследование показывает, что злоумышленник мог получить доступ к сетям организации незадолго до атаки, но имел возможность быстро распространить программу-вымогатель в течение часа по всей сети. После завершения фазы заражения жертвы получали индивидуализированную записку о выкупе с относительно низким спросом в 7-9 биткойнов (~110–140 тысяч долларов).
Полный объем этих атак все еще не раскрыт и расследуется; но мы, сотрудники Check Point Research и группы реагирования на инциденты, хотели бы предложить свой первоначальный анализ этого нового варианта вымогателя, а также предоставить соответствующие IOC, чтобы помочь защитить возможные продолжающиеся атаки.
Основные выводы:
- Ранее неизвестная программа-вымогатель, получившая название Pay2Key, осуществляет целевые атаки на израильские компании.
- Первоначальное заражение предположительно происходит через RDP-соединение
- Боковое продвижение выполняется с помощью psexec.exe для запуска программы-вымогателя на разных машинах в организации.
- Особое внимание было уделено дизайну сетевой коммуникации, чтобы уменьшить шум, который может генерировать большое количество зашифрованных машин при контакте с серверами управления и контроля.
- Схема шифрования надежная - с использованием алгоритмов AES и RSA.
Хронология атак
В течение последних дней мы смогли получить от израильских групп реагирования на инциденты фрагменты информации, а также различные артефакты криминалистической экспертизы, свидетельствующие о том, что против израильских корпораций (возможно, исключительно) развертывается новый штамм вымогателей.
Комбинируя эти элементы, мы смогли составить частичное представление об атаках по мере их развития:
- 2020-06-28 - Злоумышленник создал учетную запись KeyBase с именем "pay2key".
- 2020-10-26 - Дата компиляции первого образца вымогателя
- 2020-10-27 - Дата компиляции второго образца вымогателя
- 2020-10-27 - Первый образец Pay2Key, загруженный в VT и скомпилированный в тот же день, может указывать на его первое появление в дикой природе.
- 2020-10-28 - Второй образец вымогателя загружен в VT - Указывает на возможную атакованную организацию.
- 2020-11-01 - Дата компиляции третьего образца
- 2020-11-01 - Первое зарегистрированное нападение (воскресенье; рабочий день в Израиле)
- 2020-11-02 - Вторая заявленная атака
Распространение Pay2Key выглядит следующим образом:
- Сразу после полуночи злоумышленники подключились к машине в целевой сети, скорее всего, через RDP.
- Машина определяется как точка опоры/прокси в сети, вероятно, с помощью программы с именем "ConnectPC.exe". С этого момента вся исходящая связь между всеми процессами программы-вымогателя в сети и командным сервером злоумышленника будет проходить через этот прокси-сервер.
- Злоумышленник использовал psexec.exe для запуска "Cobalt.Client.exe", который сам является вымогателем Pay2Key, на разных компьютерах в организации.
Новые программы-вымогатели
Анализируя работу программы-вымогателя Pay2Key, мы не смогли сопоставить ее с каким-либо другим существующим штаммом вымогателя, и, похоже, он был разработан с нуля.
Только один движок VirusTotal определил загруженные образцы программ-вымогателей как вредоносные, хотя программа-вымогатель не использует упаковщик или какую-либо защиту, чтобы скрыть свои внутренние функции.
Многочисленные артефакты компиляции указывают на то, что внутренне вымогатель называется Cobalt (не путать с Cobalt Strike).
Хотя личность злоумышленника неизвестна, противоречивые английские формулировки в различных строках, найденных в коде, а также те, которые мы наблюдали в файле журнала, позволяют предположить, что злоумышленник не является носителем английского языка.
Требование выкупа
После успешного шифрования программа-вымогатель передает в систему записку о выкупе, настроенную для целевой корпорации в форме [ORGANIZATION]_MESSAGE.TXT. Сумма выкупа колеблется от 7 до 9 биткойнов, среди заметок о выкупе, которые мы наблюдали.
Стоит отметить, что, хотя записка с требованием выкупа информирует жертв о взломе данных, как и другие программы-вымогатели с двойным вымогательством, нам еще предстоит найти доказательства, подтверждающие это.
Pay2Key
Следует отметить одну интересную вещь: учетная запись Keybase, используемая злоумышленником для чата со своими жертвами, имеет тот же логотип, что и система смарт-контрактов Pay2Key EOSIO. Возможное объяснение заключается в том, что при поиске "pay2key" в изображениях Google это первый результат.
Технический анализ
Первоначальный доступ
Наш анализ атаки Pay2Key был сосредоточен на двоичном коде самого вымогателя, поскольку некоторые из предыдущих этапов атаки были нам недоступны. Атака, как мы упоминали ранее, началась с ручного доступа к одной из машин в сети жертвы, вероятно, через RDP. Злоумышленник скопировал и создал на машине несколько файлов, в том числе:
- Cobalt.Client.exe – Pay2Key ransomware
- Config.ini – A configuration file that specifies “Server” and “Port”
- ConnectPC.exe – Pivot/Proxy server
После создания этих файлов на зараженной машине злоумышленники запускают ConnectPC.exe. Затем они копируют или загружают утилиту PsExec и используют ее для удаленного запуска программы-вымогателя на других машинах в организации. Для правильной работы программы-вымогателя требуется, чтобы файл конфигурации находился в том же рабочем каталоге. Таким образом, Config.ini необходимо загрузить на компьютер жертвы вместе с Cobalt.Client.exe. В случаях, которые мы видели, программа-вымогатель Pay2Key запускалась из путей этого шаблона: C:\Windows\Temp\ [название-организации]tmp\Cobalt.Client.exe
Конфигурация
Артефакты, которые нам удалось заполучить, - это программа-вымогатель, Cobalt.Client.exe и файл конфигурации. Файл конфигурации представляет собой очень простой INI-файл, содержащий две записи - Сервер и Порт. К нашему удивлению, Сервер был не внешним управляющим сервером, а скорее IP-адресом первоначальной зараженной машины. Таким образом, мы полагаем, что исходная машина использовала ConnectPC.exe в качестве служебной программы для передачи сообщений от жертв внутри организации на внешний сервер управления. Такой подход увеличивает вероятность того, что разные машины смогут обмениваться данными, поскольку внутреннее общение с большей вероятностью будет разрешено. Это также снижает шансы того, что адрес управления будет раскрыт аналитиками, поскольку в организации есть только одна машина, которая знает об этом.
Конфигурационный файл, который использовался при атаке, выглядел так:
[Config]
Server = <internal IP address>
Port = 5050
Если программа-вымогатель была запущена с параметром --config [путь] в качестве аргумента командной строки, она прочитает файл конфигурации по пути, указанному в аргументе.
Программа-вымогатель
Программа-вымогатель Pay2Key написана на C++ и скомпилирована с использованием MSVC++ 2015. Он в значительной степени полагается на объектно-ориентированное программирование и использует хорошо спроектированные классы для своей работы. Он также использует сторонние библиотеки, такие как популярные библиотеки Boost. К счастью, программа-вымогатель не была удалена, и она содержала приличное количество журналов отладки, а также обширную информацию RTTI.
Bash:
$ diec Cobalt.Client.exe
PE: compiler: Microsoft Visual C/C++(2015 v.14.0)[-]
PE: linker: Microsoft Linker(14.0, Visual Studio 2015 14.0*)[EXE32,console]
$ rabin2 -I Cobalt.Client.exe | grep "compiled\|pdb"
compiled Mon Oct 26 12:37:49 2020
dbg_file F:\2-Sources\21-FinalCobalt\Source\cobalt\Cobalt\Cobalt\Win32\Release\Client\Cobalt.Client.pdb
После выполнения Pay2Key считывает ключи сервера и порта из файла конфигурации. Если файл конфигурации не был найден в текущем рабочем каталоге и не был указан в аргументах командной строки, программа-вымогатель напишет "файл конфигурации не найден" в файл по адресу.\ Cobalt-Client-log.txt. Этот файл журнала будет широко использоваться программой-вымогателем во время его выполнения. Новые версии вымогателей обязательно удаляют этот файл журнала с диска. Полный список поддерживаемых сообщений журнала можно найти в приложении к этой статье.
Затем он инициализирует основной класс программы, Cobalt:
Pay2Key генерирует пару ключей RSA и отправляет открытый ключ на сервер по необработанному протоколу TCP. Ключи будут использоваться для установки безопасного обмена данными между программой-вымогателем и сервером. После отправки ключа программа-вымогатель будет ждать сообщений от сервера. Эти сообщения анализируются и обрабатываются пользовательским обработчиком сообщений.
Поддерживаемые сообщения
| ID_Сообщения | Имя_сообщения | Значение |
|---|---|---|
| 0 | PublicKey | Получить открытый ключ сервера |
| 1 | Identification | Отправьте на сервер IP-адрес, MAC-адрес и имя хоста. |
| 2 | Config | Получить конфигурацию с сервера. Конфигурация является очень важным аспектом программы-вымогателя, поскольку она содержит ценную информацию, такую как список расширений файлов для шифрования, название организации жертвы, примечание о выкупе, расширение зашифрованного файла и многое другое. |
| 3 | ExceptionMessage | |
| 4 | SessionKey | Получить уникальный сеансовый ключ от сервера |
| 5 | JobFinished | Сообщить, что работа по шифрованию завершена |
| 6 | Abort | Остановить выполнения |
| 7 | GetClientList | Нет данных |
| 8 | ClientList | Нет данных |
| 9 | GetClientInformation | Отправлять по запросу статус различных задач, например, задачи шифрования. |
| 10 | ClientInformation | Отправлять статус различных задач, например, задачи шифрования. |
| 11 | Acknowledge | |
| 12 | GetIdentification | Отправить на сервер по запросу IP-адрес, MAC-адрес и имя хоста. |
| 13 | None | Нет данных |
Программа-вымогатель использует специальные классы для обработки различных сообщений. Мы заметили, что некоторые из этих обработчиков и типов сообщений не реализованы в имеющихся у нас двоичных файлах, а некоторые из них даже не проверяются менеджером обработчиков сообщений. Это еще один признак того, что программа-вымогатель находится в стадии активной разработки. Отсутствующие сообщения, возможно, могут быть частью кода, который сейчас удален, или, альтернативно, кодом, который еще не был реализован.
В процессе реверс инжиниринга образцов программ-вымогателей мы использовали тот факт, что они содержат обширные данные RTTI. Такая информация помогает нам понять роль различных частей кода и взаимосвязь между ними. С помощью Cutter мы смогли элегантно изучить различные классы.
Наиболее интересным типом сообщения является "Config", поскольку оно содержит информацию, которую вымогатель использует во время заражения. Анализ программы-вымогателя без информации из этого сообщения приводит к постоянному откату к конфигурациям по умолчанию. Среди прочего, сообщение конфигурации содержит список расширений файлов для шифрования, расширение файла для зашифрованных файлов (по умолчанию .enc), имя файла с запиской о выкупе (по умолчанию "salam", как в SALAM_MESSAGE.TXT), и записку с требованием выкупа.
Интересно отметить, что и в имени файла, и в записке о выкупе указано имя зараженной организации. Злоумышленники даже создали ASCII-Art с названием зараженной организации. Имя файла с запиской о выкупе из конфигурации будет иметь следующий шаблон [ORGANIZATION]_MESSAGE.TXT. В проанализированных нами инцидентах с сервера было получено расширение .pay2key, но это могло быть что угодно, поскольку программа-вымогатель достаточно гибкая.
В конце процесса шифрования Pay2Key также завершит работу службы MS SQL, используя следующую команду net stop mssqlserver> nul, чтобы освободить файлы, заблокированные службой. Он также может заменить обои жертвы, но мы не наблюдали этого на анализируемых нами машинах.
Эволюция
Мы проанализировали несколько образцов за небольшой промежуток времени и заметили в них несколько улучшений. Это означает, что Pay2Key находится в стадии активной разработки, и разработчики обновляют его дополнительными функциями. Например, в последней версии программы-вымогателя мы заметили, что злоумышленники добавили механизм самоуничтожения в дополнение к новому аргументу командной строки —noreboot.
Новый механизм "housekeeping" отвечает за удаление файлов, созданных злоумышленником, и перезапуск машины.
Шифрование
Стандартно для программ-вымогателей для шифрования файлов используется гибрид симметричной и асимметричной криптографии - с использованием алгоритмов AES и RSA. Сервер C2 предоставляет открытый ключ RSA во время выполнения во время связи. Это означает, что эта программа-вымогатель не выполняет шифрование в автономном режиме - если нет подключения к Интернету или C2 не работает, шифрование не произойдет. В последние годы были замечены некоторые программы-вымогатели, которые агрессивно используют криптографические примитивы, (например,путем встраивания открытого ключа сервера в исполняемый файл), и в то время это считалось техническим усовершенствованием, но, очевидно, авторы здесь предпочитают классический вариант.
Следует отметить одну необычную вещь - использование RC4 для некоторых (не всех) его криптографических функций. RC4 - это потоковый шифр, и его легче использовать не по назначению; обычно он популярен среди авторов вредоносных программ из-за простоты реализации, но здесь авторы фактически использовали стороннюю реализацию (через Windows API). Возможно, это первый раз, когда авторы вредоносных программ по сути говорят: «У нас есть весь мир криптографии, сторонние библиотеки для всего, мощная симметричная криптография. Выберем… RC4 ». Но, опять же, для того, чтобы это действительно имело значение, потребовалась бы какая-то тонкая ошибка при вызове шифра, и мы не смогли ее точно определить.
Еще одно любопытство - использование вредоносным ПО контейнера ключей с настраиваемым именем pippo container. Другие программы-вымогатели почти повсеместно устанавливают нулевое значение для параметра szContainer, который по умолчанию соответствует новому контейнеру ключей, а затем выполняет все криптографические операции с открытым контекстом. Это шаблонный код, стандартный строительный блок программы-вымогателя, который, как известно, работает, поэтому киберпреступники копируют, вставляют и забывают; Тот факт, что авторы не использовали его напрямую, свидетельствует о некотором нездоровом интересе к криптографическому API Windows и его возможностям.
Одним из последних отклонений от "классической" формулы вымогателей является использование CryptDeriveKey для хешированного значения для получения ключа AES (вместо традиционного CryptGenKey). Если бы значения хеш-функции были получены детерминированно, то полученный ключ можно было бы восстановить, но некоторый элемент случайности в хеш-коде (или любое другое количество возможных отдельных настроек на стороне клиента или сервера) может сделать этот подход жизнеспособным. Тем не менее, когда дело доходит до криптографии, изобретать колесо не рекомендуется.
Заключение
Хотя атака все еще расследуется, недавние атаки программ-вымогателей Pay2Key указывают на то, что к тенденции целевых атак программ-вымогателей присоединяется новый злоумышленник, представляющий хорошо продуманную операцию для максимального увеличения ущерба и минимизации уязвимости.
До сих пор наблюдалась атака, направленная на частный сектор Израиля, но, глядя на представленные тактики, методы и процедуры, мы видим сильного действующего лица, у которого нет технических причин ограничивать свой список целей Израилем. Инциденты все еще расследуются, и мы будем обновлять этот блог, добавляя новые результаты, если будут обнаружены какие-либо новые результаты.
Источник: https://research.checkpoint.com/2020/ransomware-alert-pay2key/
Автор перевода: yashechka
Переведено специально для https://xss.pro