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

Все 36 пакетов мимикрировали под зрелые community-плагины для Strapi v3, причём каждый из них указывал версию 3.6.8. Структура файлов была идентичной:
Пакеты были загружены четырьмя подставными аккаунтами:
По данным SafeDep, атака развивалась поэтапно. Начальная фаза — запись PHP веб-шелла и Node.js реверс-шелла через SSH в публичную директорию загрузок Strapi, сканирование системы на предмет секретов Elasticsearch, крипто-сид-фраз и модуля Guardarian API. Потом последовала комбинация эксплуатации Redis с побегом из Docker-контейнеров — атакующие записывали полезную нагрузку прямо на хост. Запускался Python реверс-шелл на порту 4444. Фаза разведки собирала дампы переменных окружения, конфигурации Strapi, данные Redis (команды
Особенно показательна фаза работы с PostgreSQL. Атакующие использовали жёстко прописанные учётные данные для запросов к таблицам Strapi, искали паттерны, связанные с криптовалютами: wallet, transaction, deposit и так далее. Попытки подключения к шести базам данных Guardarian говорят о том, что часть учётных данных была скомпрометирована ещё до начала этой конкретной кампании. Финальная стадия — имплантат, обеспечивающий постоянный доступ к хосту с именем «prod-strapi».
Параллельно с расследованием этого инцидента всплыла целая россыпь других атак на цепочки поставок. GitHub-аккаунт «ezmtebo» подал более 256 pull-реквестов с полезной нагрузкой для кражи учётных данных, используя 10-минутный фоновый сканер
Досталось и экосистеме Emacs: в репозитории
Тайпсквот-пакет «express-session-js» (подделка под популярный
Отдельная история — расширения VS Code. Издатель «IoliteLabs» опубликовал расширения
В февральском отчёте 2026 года Group-IB констатировала: атаки на цепочки поставок программного обеспечения стали «доминирующей силой, перекраивающей глобальный ландшафт киберугроз». Злоумышленники индустриализировали эти методы, нацеливаясь на открытое ПО, SaaS-платформы, браузерные расширения и управляемых сервис-провайдеров, создавая «самоусиливающуюся» экосистему охвата, скорости и скрытности. Случай с 36 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-пакетами — наглядная иллюстрация этого тренда: точечная, хорошо подготовленная операция против конкретной цели, спрятанная в толще пакетного реестра, которым пользуются миллионы разработчиков.