Mastodon Mastodon Mastodon Mastodon

Три вредоносных npm-пакета маскируются под PostCSS-утилиты и устанавливают многоступенчатый троян

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

Исследователи JFrog обнаружили три вредоносных npm-пакета — aes-decode-runner-pro, postcss-minify-selector и postcss-minify-selector-parser, — которые маскируются под легитимные инструменты сборки и доставляют многоступенчатый троян удалённого доступа (RAT) для Windows. Пакеты эксплуатируют доверие разработчиков к экосистеме PostCSS: название postcss-minify-selector-parser имитирует postcss-selector-parser — легитимную библиотеку с более чем 127 миллионами еженедельных загрузок. Суммарно вредоносные пакеты были загружены более 1000 раз. Разработчикам, установившим любой из этих пакетов, необходимо немедленно удалить их, очистить артефакты и ротировать все учётные данные на затронутых машинах.

Механизм атаки: от npm install до полноценного RAT

По данным исследователей, все три пакета были опубликованы за последний месяц пользователем abdrizak. Пакеты aes-decode-runner-pro и postcss-minify-selector-parser представляются как утилиты для AES-кодирования и зависят от легитимного postcss-selector-parser. Пакет postcss-minify-selector позиционируется как минификатор CSS-селекторов и зависит от postcss-minify-selector-parser. Независимо от того, какой из трёх пакетов установлен, цепочка атаки приводит к развёртыванию одного и того же вредоносного ПО.

Цепочка заражения состоит из нескольких этапов:

  1. JavaScript-дроппер, встроенный в пакет, записывает на диск PowerShell-скрипт settings.ps1 и запускает его.
  2. PowerShell-загрузчик скачивает следующую стадию с внешнего сервера nvidiadriver[.]net через curl.exe.
  3. Загруженный ZIP-архив содержит VBS-файл update.vbs, среду выполнения Python, загрузчик loader.py и набор скомпилированных Python-модулей (.pyd), собранных с помощью Nuitka.
  4. VBS-скрипт настраивает Python-окружение и запускает loader.py, который активирует основную логику RAT.

Модульная архитектура трояна

RAT реализован через набор нативных Python-модулей, каждый из которых отвечает за отдельную функцию:

  • config.pyd — константы, идентификаторы команд, URL сервера управления, имена ключей реестра
  • api.pyd — обмен пакетами с C2-сервером по HTTP
  • audiodriver.pyd — основной цикл оркестрации RAT (название выбрано для маскировки)
  • command.pyd — профилирование хоста, проверка виртуальных машин, передача файлов, выполнение команд оболочки
  • auto.pyd — кража учётных данных и данных расширений Google Chrome с обходом механизма App-Bound Encryption (ABE)
  • util.pyd — вспомогательные функции для работы с tar/gzip-архивами

Обход ABE — защитного механизма Chrome, привязывающего шифрование к конкретному приложению, — делает этот RAT особенно опасным для разработчиков, хранящих в браузере пароли и токены доступа к репозиториям, CI/CD-системам и облачным сервисам.

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

  • C2-сервер:95.216.92[.]207:8080
  • Домен загрузки полезной нагрузки:nvidiadriver[.]net

Волна атак на цепочку поставок npm

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

  • Пакет apintergrationpost, по данным SafeDep, доставляет Linux RAT под названием MYRA. Как сообщается, он компилирует нативный C-руткит при установке, создаёт три механизма закрепления, маскируется под systemd-сервис и поддерживает бесфайловое выполнение.
  • Пакет @withgoogle/stitch-sdk, по данным SafeDep, имитирует инструмент Google Stitch AI и похищает учётные данные разработчиков из восьми источников: Claude Code, git config, ~/.git-credentials, SSH-ключи, GitHub CLI, npm config, ~/.npmrc и ~/.docker/config.json. Данные отправляются на домен stitch-production[.]org.
  • Кластер из пяти пакетов (procwire, routecraft, endpointmap, bytecraft, staticlayer), которые доставляют и запускают дроппер на Windows-хостах при выполнении npm install.

Отдельно SafeDep зафиксировала атаку на цепочку поставок через проект Egonex-AI/Understand-Anything, где вредоносный код использует блокчейн Tron в качестве инфраструктуры управления — адрес последней транзакции кодирует хеш BSC-транзакции с активной полезной нагрузкой.

Оценка воздействия

Несмотря на относительно небольшое число загрузок (суммарно около 1016), основная опасность заключается в целевой аудитории: пакеты нацелены на разработчиков, использующих PostCSS — один из самых популярных инструментов обработки CSS. Компрометация машины разработчика открывает доступ к приватным репозиториям, секретам CI/CD, токенам облачных провайдеров и ключам подписи. Модуль auto.pyd, специализирующийся на краже данных Chrome, включая расширения, может извлечь токены менеджеров паролей и сессии аутентификации.

Использование домена nvidiadriver[.]net для загрузки полезной нагрузки — характерный приём социальной инженерии: имя домена имитирует легитимное ПО NVIDIA и может не вызвать подозрений при беглом анализе сетевого трафика.

Рекомендации по реагированию

  • Проверить зависимости проектов на наличие пакетов aes-decode-runner-pro, postcss-minify-selector, postcss-minify-selector-parser, apintergrationpost, @withgoogle/stitch-sdk, procwire, routecraft, endpointmap, bytecraft, staticlayer.
  • Удалить вредоносные пакеты и все артефакты: файлы settings.ps1, update.vbs, loader.py, каталоги с Python-средой выполнения и .pyd-модулями.
  • Проверить сетевые подключения к 95.216.92[.]207:8080, nvidiadriver[.]net и stitch-production[.]org в журналах прокси и DNS.
  • Ротировать все учётные данные на затронутых машинах: пароли Chrome, SSH-ключи, токены GitHub/npm/Docker, секреты CI/CD.
  • Внедрить политики проверки зависимостей: использовать инструменты аудита (npm audit, Socket, Snyk) и блокировать установку пакетов без проверки при помощи lockfile и политик разрешённых пакетов.
  • Настроить мониторинг запуска PowerShell и wscript.exe из каталогов node_modules — это аномальное поведение для npm-пакетов.

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


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.