Mastodon Mastodon Mastodon Mastodon

Як шкідливі npm-пакети в екосистемі PostCSS доставляють Windows RAT

Photo of author

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 у журналах proxy та DNS.
  • Провести ротацію всіх облікових даних на уражених машинах: паролів Chrome, SSH-ключів, токенів GitHub/npm/Docker, секретів CI/CD.
  • Запровадити політики перевірки залежностей: використовувати інструменти аудиту (npm audit, Socket, Snyk) та блокувати встановлення пакетів без перевірки за допомогою lockfile і політик дозволених пакетів.
  • Налаштувати моніторинг запуску PowerShell і wscript.exe з каталогів node_modules — це аномальна поведінка для npm-пакетів.

Цей випадок наочно демонструє, що навіть невеликий допоміжний пакет, який імітує популярну залежність для збірки, може приховувати повноцінну багатоступеневу атаку. Ключова дія для команд розробки — негайно перевірити свої проєкти на наявність перелічених пакетів, заблокувати зазначені індикатори компрометації на рівні мережевої інфраструктури та запровадити автоматизований аудит залежностей як обов’язковий етап CI/CD-pipeline.


CyberSecureFox Editorial Team

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

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.