Эволюция помех: Gamaredon методично усложняет анализ своих загрузчиков

APT

В мире анализа вредоносного ПО за новизну часто принимают поверхностные изменения. Однако для специалистов по кибербезопасности гораздо показательнее то, что остаётся неизменным, и те точечные, преднамеренные модификации, которые всё же происходят. На примере серии загрузчиков на VBScript, связанных с APT-группой Gamaredon в конце 2025 года, можно наблюдать не скачок в инновациях, а продуманную, поэтапную эволюцию методов обфускации - запутывания кода.

Описание

В период с конца ноября по 30 декабря 2025 года появилось несколько функционально почти идентичных загрузчиков. Они используют один и тот же механизм исполнения и преследуют одну цель - доставку вредоносного полезного груза. Тем не менее, их код менялся. Анализ четырёх конкретных образцов, доступных для изучения, показывает чёткую траекторию развития.

Ноябрь 2025: Простой синтаксический шум

Самый ранний образец от 25 ноября использует примитивную, но объёмную тактику. Его код содержит сотни переменных, которые записываются один раз и никогда не используются, а также многочисленные арифметические операции без смысловой нагрузки. Здесь нет объявлений переменных или скрытия управления. Вся обфускация сводится к синтаксическому шуму, который, однако, легко отфильтровать. После удаления мёртвого кода логика выполнения сводится к короткой линейной последовательности.

Декабрь 2025: Наводнение индикаторами и смена полезного груза

К середине месяца подход меняется. Образец от 19 декабря демонстрирует резкий рост плотности индикаторов компрометации. В код в открытом виде добавлено множество URL-адресов, указывающих на легитимные и государственные домены, которые не используются для исполнения. Это не попытка скрыть строки, а их «наводнение». Цель - создать аналитическое трение: автоматические системы извлечения выдают десятки ложных следов, а ручной анализ требует больше времени, хотя логика работы загрузчика не усложняется.

Важный сдвиг происходит 22 декабря. Сам загрузчик практически не меняется, однако он впервые в этой серии доставляет GamaWiper - разрушительный полезный груз, предназначенный для выведения из строя сред анализа. Как отмечалось в более ранних исследованиях, GamaWiper нацелен на уничтожение данных и наказание за выполнение в нежелательном контексте. Это сигнал оборонительной реакции: Gamaredon начинает активно противодействовать анализу, сначала через враждебность полезного груза, и лишь потом - через усложнение самого загрузчика.

Конец декабря: Камуфляж потока управления и сборка строк

Образец от 25 декабря вносит неопределённость в поток управления (control flow). В код добавлены вызовы, которые не ведут к meaningful execution, а также объекты, которые никогда не используются. Это создаёт правдоподобные мёртвые пути, сбивая с толку автоматические эвристики и усложняя визуальное отслеживание реальной логики.

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

Январь 2026: Динамические параметры в URL

В начале января 2026 года появилось дополнение к этой тактике. Загрузчики начали динамически генерировать значение даты и встраивать его в путь для скачивания полезного груза. Это приводит к ежедневному изменению URL, мгновенному устареванию статических сигнатур и снижению надёжности повторного использования индикаторов компрометации между кампаниями.

Что изменилось, а что - нет

На протяжении всего этого периода неизменными остались базовый примитив исполнения, цель загрузчика и общий механизм доставки. Изменения затронули более тонкие аспекты: момент, когда значимые строки становятся полными, количество ложных путей выполнения и объём нерелевантного контекста вокруг реальной логики. Это не переписывание кода, а итеративное упрочнение.

Каждая новая итерация методично лишает аналитиков очередного удобного предположения: что строка существует в коде целиком, что путь выполнения очевиден, что мёртвый код легко отличим. Группа Gamaredon не добавляет сложность ради самой сложности. Она добавляет ровно столько фрикций, чтобы замедлить анализ, а затем останавливается. Эта сдержанность и точность в выборе мишеней для усложнения является, пожалуй, самым информативным сигналом, демонстрирующим высокий уровень внимания и адаптивности операторов.

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

SHA256

  • 2c69fd052bfaa03cd0e956af0f638f82bc53f23ee8d0c273e688e257dac8c550
  • 6de9f436ba393744a3966b35ea2254dde2f84f5b796c6f7bee4b67ccf96ccf0a
  • 846748912aa6e86b9d11f6779af6aae26b7258f8610d5e28eff0083779737824
  • 9218528a40a48a3c96df3b49a7498f6ea2a961f43249081b17880709f73392c1
Комментарии: 0