sc_trojan_jwjf: цепочка поставок NPM Prettier с DLL-трояном

sctrojanjwjf: цепочка поставок NPM Prettier с DLL-трояном

В ходе недавней фишинговой кампании исследователи обнаружили троянец из цепочки поставок, обозначенный как sc_trojan_jwjf. Цель атаки — NPM-пакеты, связанные с инструментом форматирования кода Prettier. Атака использует вредоносный DLL, загружаемый и запускаемый через специализированную часть вредоносного JavaScript, присутствующую в нескольких скомпрометированных файлах.

Краткое содержание

Ключевые особенности кампании и вредоносного ПО:

  • Целевая платформа: экосистема NPM, пакеты, связанные с Prettier;
  • Механизм внедрения: вредоносный DLL, инициируемый вредоносным JavaScript в скомпрометированных пакетах;
  • Техника разрешения API: использование хэширования имен функций с обходом через PEB и опорой на хэши, включая обнаружение через ntdll.dll;
  • Методы уклонения: антистатический анализ, защита от отладки и VM-анализаторов, приводящие к ошибкам доступа при вызове API (например, GetACP);
  • Инфраструктура: множество доменов и IP, связанные с операциями фишинга, с использованием ресурсов, скрытых за Cloudflare, включая домены npnjs.com и prod01-npmjs.com;
  • Рекомендации по обнаружению: обобщённые правила YARA на базе методов хэширования API и представлений функций системных вызовов, а также анализ сетевых IOCs.

Технический разбор

Вредоносное ПО применяет нетривиальные техники для минимизации обнаружения и для отложенного выполнения вредоносной нагрузки. Основные технические элементы:

  • Разрешение API через хэши: malware обращается к PEB и перебирает данные для сопоставления хэшей функций, что позволяет определить адреса API без явных строковых имен. Отдельно отмечено использование хэша для ntdll.dll и разрешения функций типа ZwClose, адреса которых затем сохраняются в переменных стека для дальнейшего вызова.
  • Встраивание DLL: вредоносный DLL инжектируется/запускается посредством частей вредоносного JavaScript, включённых в скомпрометированные файлы NPM-пакетов.
  • Запутанные конфигурации: строковые параметры и конфигурационные данные кодируются и хранятся в стеке. Декодирование происходит динамически в выделенной памяти и затем выполняется без дополнительных контекстных проверок.
  • Очистка памяти: реализован цикл очистки выделенных областей, однако нулевание выполнено неточно — остаются артефакты, которые потенциально могут помочь при последующем обнаружении.

Тактики уклонения и защита от анализа

Анализ показывает продуманные методы противодействия анализу:

  • Антистатический анализ: сложные механизмы разрешения API по хэшам затрудняют сигнатурное обнаружение по строкам имен функций;
  • Антиотладка и анти-VM: вызовы API вроде GetACP используются в ловушках, приводящих к разыменованию нулевых указателей и падению анализаторов или VM-образов; цель — вывести исследователя/песочницу из состояния, в котором можно продолжить исполнение вредоносного кода;
  • Динамическое декодирование: конфигурации и полезная нагрузка хранятся в закодированном виде на стеке, декодируются в рантайме и запускаются в выделенной памяти, что затрудняет статический анализ.

Инфраструктура и сетевые индикаторы

Инфраструктура кампании характеризуется большим количеством доменов и IP-адресов, многие из которых размещены или проходят через сервисы Cloudflare, что дополнительно скрывает реальную инфраструктуру. Отмеченные домены включают:

  • npnjs.com
  • prod01-npmjs.com

Эти домены подчёркивают масштаб и координацию кампании, указывая на взаимосвязанную стратегию размещения и эксплуатации вредоносного контента в экосистеме NPM.

Обнаружение и рекомендации

Для защиты от подобных атак и для обнаружения связанных образцов предлагается следующий набор мер:

  • Правила YARA: создание обобщённых YARA-правил на основе характерных методов хэширования API и представлений функций системного вызова. Такие правила могут эффективно выявлять схожие реализации разрешения API и поведения, характерные для этого семейства вредоносного ПО.
  • Сетевая аналитика: мониторинг и блокировка сетевых IOCs, включая указанные домены и связанные IP-адреса; отслеживание подозрительных обменов трафиком через Cloudflare-посредников.
  • Аудит зависимостей: регулярная проверка и верификация пакетов NPM и инструментов форматирования кода (включая Prettier) в цепочке поставок; использование подписей и проверенных источников.
  • Поведенческая детекция: мониторинг неожиданной загрузки/выполнения DLL, динамического аллока и исполнения памяти, а также вызовов системных API, разрешённых по хэшам.
  • Инцидент-ответ: сохранение артефактов памяти и сетевых логов — неполное обнуление памяти злоумышленником может оставить полезные следы для судебного анализа.

«sc_trojan_jwjf демонстрирует, как злоумышленники применяют комбинированные техники — от компрометации цепочки поставок до сложных методов обхода детекции — чтобы развернуть скрытые полезные нагрузки в экосистемах разработки».

Выводы

Кампания с участием sc_trojan_jwjf — это хорошо спланированная атака на цепочку поставок в экосистеме NPM. Использование разрешения API по хэшам, продвинутых методов антианализа и скрытой сетевой инфраструктуры делает её особенно опасной для разработчиков и CI/CD-процессов. Комбинация сетевого мониторинга, поведенческих детекторов и обобщённых YARA-правил представляет наилучший путь к своевременному выявлению и реагированию на такие угрозы.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: