36 вредоносных npm-пакетов под видом плагинов Strapi: охота на криптовалютную платформу

Координированная атака на цепочку поставок через реестр npm оказалась куда масштабнее, чем показалось на первый взгляд. 36 вредоносных пакетов, замаскированных под плагины для CMS Strapi, были нацелены на конкретную криптовалютную платформу — предположительно Guardarian. Кампания развивалась от грубой эксплуатации уязвимостей Redis и Docker до тихой разведки, кражи учётных данных из PostgreSQL и установки постоянного имплантата на продуктивном сервере.
36 вредоносных npm-пакетов под видом плагинов Strapi: охота на криптовалютную платформу
Изображение носит иллюстративный характер

Все 36 пакетов мимикрировали под зрелые community-плагины для Strapi v3, причём каждый из них указывал версию 3.6.8. Структура файлов была идентичной: package.json, index.js и postinstall.js. У пакетов отсутствовали описания, ссылки на репозитории, домашние страницы. Настоящие плагины Strapi имеют чётко определённую область видимости (scope), и это сразу бросается в глаза специалистам. Но автоматические конвейеры CI/CD, где npm install запускается с правами root, такие детали не проверяют. Именно хук postinstall запускал вредоносный код автоматически при установке — с привилегиями того пользователя, который выполнил команду.
Пакеты были загружены четырьмя подставными аккаунтами: umarbek1233, kekylf12, tikeqemif26 и umar_bektembiev1. Все 36 пакетов появились в реестре в течение 13 часов. Список включал названия от довольно убедительных (strapi-plugin-cron, strapi-plugin-database, strapi-plugin-logger) до более специфичных (strapi-plugin-guardarian-ext, целая серия strapi-plugin-nordica-), а также пакеты с узнаваемыми именами вроде strapi-plugin-advanced-uuid и strapi-plugin-blurhash.
По данным SafeDep, атака развивалась поэтапно. Начальная фаза — запись PHP веб-шелла и Node.js реверс-шелла через SSH в публичную директорию загрузок Strapi, сканирование системы на предмет секретов Elasticsearch, крипто-сид-фраз и модуля Guardarian API. Потом последовала комбинация эксплуатации Redis с побегом из Docker-контейнеров — атакующие записывали полезную нагрузку прямо на хост. Запускался Python реверс-шелл на порту 4444. Фаза разведки собирала дампы переменных окружения, конфигурации Strapi, данные Redis (команды INFO, DBSIZE, KEYS), сетевую топологию, секреты Docker/Kubernetes, файлы криптокошельков.
Особенно показательна фаза работы с PostgreSQL. Атакующие использовали жёстко прописанные учётные данные для запросов к таблицам Strapi, искали паттерны, связанные с криптовалютами: wallet, transaction, deposit и так далее. Попытки подключения к шести базам данных Guardarian говорят о том, что часть учётных данных была скомпрометирована ещё до начала этой конкретной кампании. Финальная стадия — имплантат, обеспечивающий постоянный доступ к хосту с именем «prod-strapi».
Параллельно с расследованием этого инцидента всплыла целая россыпь других атак на цепочки поставок. GitHub-аккаунт «ezmtebo» подал более 256 pull-реквестов с полезной нагрузкой для кражи учётных данных, используя 10-минутный фоновый сканер /proc и механизм pull_request_target. Верифицированная GitHub-организация «dev-protocol» была перехвачена для распространения вредоносных ботов Polymarket через тайпсквоттинг npm-пакетов (ts-bign, levex-refa, big-nunber, lint-builder) — крали ключи кошельков и открывали SSH-бэкдоры.
Досталось и экосистеме Emacs: в репозитории kubernetes-el/kubernetes-el через уязвимость Pwn Request украли GITHUB_TOKEN, после чего репозиторий был дефейснут, файлы удалены. В проекте xygeni/xygeni-action через украденные мейнтейнерские учётные данные внедрили реверс-шелл. Npm-пакет «mgc» в версиях с 1.2.1 по 1.2.4 содержал дроппер, который подтягивал Python-троян для Linux или PowerShell-вариант WAVESHAPER.V2 из GitHub Gist. Эту кампанию связывают с северокорейским кластером UNC1069, и она пересекается с атакой через Axios.
Тайпсквот-пакет «express-session-js» (подделка под популярный express-session) загружал RAT из JSON Keeper и подключался к 216.126.237[.]71 через . На PyPI пакет «bittensor-wallet» версии 4.0.2 содержал бэкдор, срабатывающий при расшифровке; данные утекали через HTTPS, DNS-туннелирование и Raw TLS на жёстко закодированный домен либо адрес, генерируемый ежедневным DGA-алгоритмом. Другой PyPI-тайпсквот — «pyronut» (подделка pyrogram) — встраивал Telegram-бэкдор со скрытыми обработчиками команд /e через библиотеку meval и /shell через subprocess.
Отдельная история — расширения VS Code. Издатель «IoliteLabs» опубликовал расширения solidity-macos, solidity-windows, solidity-linux, которые с 2018 года были неактивны, но 25 марта 2026 года получили обновление. Суммарно у них набралось 27 500 установок. Обновление принесло многоэтапный бэкдор. Расширение «KhangNghiem/fast-draft» (по данным Aikido) распространялось в злонамеренных версиях 0.10.89, 0.10.105, 0.10.106, 0.10.112, тогда как версии 0.10.88, 0.10.111, 0.10.129–135 были чистыми. Вредоносные версии разворачивали RAT и монитор буфера обмена через GitHub — судя по паттерну, под одним аккаунтом конкурировали два потока публикаций.
В февральском отчёте 2026 года Group-IB констатировала: атаки на цепочки поставок программного обеспечения стали «доминирующей силой, перекраивающей глобальный ландшафт киберугроз». Злоумышленники индустриализировали эти методы, нацеливаясь на открытое ПО, SaaS-платформы, браузерные расширения и управляемых сервис-провайдеров, создавая «самоусиливающуюся» экосистему охвата, скорости и скрытности. Случай с 36 Strapi-пакетами — наглядная иллюстрация этого тренда: точечная, хорошо подготовленная операция против конкретной цели, спрятанная в толще пакетного реестра, которым пользуются миллионы разработчиков.


Новое на сайте

20003[b]Гавайи в серебристом зареве: солнечный блик на фоне урагана Кико[/b] 19989Шесть историй, которые умещаются на ладони 19986Как 30 000 аккаунтов Facebook оказались в руках вьетнамских хакеров? 19985LofyGang вернулась: как бразильские хакеры охотятся на геймеров через поддельные читы 19984Автономная проверка защиты: как не отстать от ИИ-атак 19983Взлом Trellix: хакеры добрались до исходного кода одной из ведущих компаний по... 19982Почему почти 3000 монет в норвежском поле перевернули представление о викингах? 19981Как поддельная CAPTCHA опустошает ваш счёт и крадёт криптовалюту? 19980Слежка за каждым шагом: как ИИ превращает государство в машину тотального контроля 19979Как хакеры грабят компании через звонок в «техподдержку» 19978Почему именно Нью-Йорк стал самым уязвимым городом восточного побережья перед... 19977Как одна команда git push открывала доступ к миллионам репозиториев 19976Зачем древние народы убивали ножами и мечами: оружие как основа власти 19975Как Python-бэкдор DEEPDOOR крадёт ваши облачные пароли незаметно? 19974Послание в бутылке: математика невозможного
Ссылка