Код как расходник. Зачем хакерам миллион одинаковых загрузчиков в разных обёртках

leer en español

Код как расходник. Зачем хакерам миллион одинаковых загрузчиков в разных обёртках

Новая техника «промптморфизм» превращает работу антивирусов в бессмысленную погоню за призраками.

image

Злоумышленники всё чаще используют большие языковые модели для быстрого переписывания вредоносного кода. Подход получил название «промптморфизм» (Promptmorphism) и позволяет практически бесконечно создавать новые варианты загрузчиков начального этапа. Подобная тактика затрудняет обнаружение вредоносных кампаний, поскольку системы защиты традиционно ищут повторяющиеся сигнатуры и сходство между файлами.

Механика атаки остаётся прежней. Первый компонент цепочки запускается на устройстве, выполняет несколько проверок и загружает основной вредоносный модуль. Однако теперь такой загрузчик рассматривается как расходный инструмент. Большая языковая модель по заданию автора вредоносной кампании генерирует новые версии одного и того же кода. Каждая версия немного отличается структурой, именами функций, порядком вызовов API и логикой выполнения, хотя конечная задача остаётся прежней.

Аналитики Threat Research Team из Gen Digital описывают наблюдения за экосистемой «загрузчик как услуга», где один и тот же слой доставки регулярно меняется и используется разными хакерскими объединениями. Через такой загрузчик распространялись, например, вредоносные программы Wincir и Stealc. Анализ показал, что логика первой стадии остаётся одинаковой, но упаковка меняется буквально каждые несколько дней.

В разных вариантах полезная нагрузка размещалась внутри исполняемого файла в зашифрованном виде, затем появлялась версия с шестнадцатеричным кодированием, позже полезную нагрузку делили на несколько частей, которые собирались уже во время запуска. В другой итерации данные перемещались в дополнительную область PE-файла или прямо в исполняемый код x64. В одном из образцов авторы даже сменили криптографический алгоритм и использовали ChaCha вместо AES.

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

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

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