Анализ загрузчиков PureCrypter в кампании SERPENTINE#CLOUD раскрывает эволюцию сервиса вредоносного ПО как услуги

ransomware

Специалисты по информационной безопасности получили возможность детально изучить эволюцию коммерческих инструментов для доставки вредоносного кода. В ходе расследования сложного многоэтапного вторжения были извлечены два исполняемых файла для платформы .NET, защищенных обфускатором ConfuserEx. На момент обнаружения они имели лишь общие, неинформативные детекции на VirusTotal, что типично для современных целенаправленных атак. Глубокий статический анализ позволил идентифицировать их как загрузчики, сгенерированные конструктором PureCrypter, который является частью экосистемы вредоносного ПО как услуги (MaaS) под названием PureCoder. Данная кампания, отслеживаемая аналитиками Securonix под кодовым именем SERPENTINE#CLOUD, демонстрирует, как сервисы для киберпреступников адаптируются и улучшают свой код для повышения живучести и скрытности.

Описание

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

Первый и ключевой этап работы загрузчика - это расшифровка встроенного ресурса с использованием алгоритма тройного DES в режиме сцепления блоков шифротекста (CBC). Ключ и вектор инициализации для каждого образца уникальны и хранятся в кодировке Base64 прямо в теле программы. После успешной расшифровки данные, которые оказываются сжатыми с помощью GZip, проходят процедуру распаковки. Примечательно, что перед сжатыми данными добавлен четырехбайтовый заголовок, указывающий ожидаемый размер результата, что позволяет загрузчику выполнить проверку целостности. Итоговые байты представляют собой готовую сборку .NET, которая загружается в память процесса с помощью стандартного метода "Assembly.Load", после чего через механизм отражения (reflection) вызывается целевой метод из указанного класса.

Сравнение двух версий выявляет целенаправленную работу над улучшением кода. Ноябрьская сборка демонстрирует более зрелую реализацию: в ней появились подробные сообщения об ошибках, выполняется обнуление критичных криптографических ключей в памяти после использования, добавлена проверка сигнатуры MZ у загружаемой сборки и жесткое ограничение на размер распакованных данных. Кроме того, новый загрузчик поддерживает вызов как статических, так и динамических методов с возможностью передачи аргументов, что расширяет его функциональность по сравнению со статической сентябрьской версией. Эти улучшения направлены на повышение стабильности работы, совместимости с разными версиями .NET Framework и общее усложнение анализа.

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

Ключевой угрозой в данном случае является конечная полезная нагрузка, доставляемая этими загрузчиками. В рамках кампании SERPENTINE#CLOUD она относится к семейству PureLogs, которое также входит в портфель PureCoder. Один из образцов доставляет полнофункционального удаленного административного трояна (RAT) с функциями кражи данных, включая криптовалютные кошельки и учетные данные браузеров. Второй загружает более минималистичный стейджер, предназначенный для дальнейшей загрузки модулей с командного сервера. Это иллюстрирует оперативную гибкость злоумышленников, которые могут комбинировать разные инструменты из одного арсенала для достижения конкретных целей.

С практической точки зрения, главный риск для организаций заключается в эффективном обходе классических сигнатурных антивирусов. Загрузчики используют легитимные механизмы платформы .NET, такие как отражение и загрузка сборок прямо из памяти, что часто не вызывает подозрений. Для обнаружения подобных активностей специалистам по безопасности следует обращать внимание на поведенческие аномалии: процессы .NET, выполняющие криптографические операции и последующую загрузку сборок без обращения к диску, являются потенциально подозрительными. Интеграция решений класса EDR (Endpoint Detection and Response, системы обнаружения и реагирования на конечных точках) с правилами, отслеживающими использование пространства имен "System.Reflection" в сочетании с вызовом "Assembly.Load" из массива байтов, может стать действенной контрмерой. Кроме того, регулярный анализ логов на предмет событий, связанных с инъекцией кода в чужие процессы, поможет выявить поздние стадии компрометации.

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

Индикаторы компрометации

SHA256

  • dcd22d338a0bc4cf615d126b84dfcda149a34cf18bc43b85f16142dfb019e608
Комментарии: 0