В экосистеме npm обнаружили новую точечную supply chain-атаку: злоумышленники опубликовали 36 вредоносных пакетов, которые выдавали себя за плагины для Strapi — популярной CMS на Node.js. Об атаке сообщила SafeDep. Исследователи считают, что кампания была не массовой атакой случайных жертв, а довольно точно настроенной операцией против пользователей Guardarian, криптовалютного платёжного шлюза.
Читайте также: Поддельный npm-пакет под видом Gemini крал токены из Claude, Cursor и других ИИ-инструментов
Вредоносные пакеты опубликовали через четыре подставных npm-аккаунта, а внутри кампании использовалось восемь разных полезных нагрузок. Это важная деталь: обычно подобные волны выглядят как поток почти одинаковых пакетов, но здесь исследователи увидели скорее «живую» разработку атаки с разными сценариями проникновения, разведки, кражи данных и закрепления в системе.
Формально все пакеты маскировались под Strapi-плагины: использовали характерную схему имён strapi-plugin-*, а также подстраивались под ожидаемую структуру конфигурации Strapi и Linux-окружений, где такие сервисы обычно работают. SafeDep считает, что кампания была нацелена именно на пользователей Strapi, потому что злоумышленники ориентировались на типовые пути конфигурации, переменные окружения Docker-образов, Redis как кэш-бэкенд для Strapi и Linux-серверы.
Набор вредоносных действий у этих пакетов был необычно широким. Один из вариантов атаковал Redis: добавлял задания в crontab, разворачивал PHP webshell, поднимал Node.js reverse shell, внедрял SSH-ключи и вдобавок пытался вытащить модуль Guardarian API. Другой был рассчитан на выход из Docker-контейнера через поиск overlay-файловой системы, запись shell-скриптов в каталоги хоста, запуск обратной оболочки и чтение учётных данных для Elasticsearch и криптокошельков. Ещё несколько нагрузок занимались кражей конфигураций Strapi, поиском файлов кошельков и ключей, доступом к PostgreSQL и установкой постоянных имплантов для закрепления.
Самое важное в этой истории — признак точечного выбора цели. SecurityWeek со ссылкой на SafeDep пишет, что кампания была связана с Guardarian по нескольким признакам сразу: злоумышленники напрямую прощупывали связанные с компанией базы данных, использовали модуль Guardarian API и искали конкретные wallet-файлы. Исследователи описали эту цепочку так: сначала атакующий действовал агрессивно — через Redis RCE и попытки выхода из контейнера, затем переключился на разведку и сбор данных, после этого использовал жёстко прописанные учётные данные для прямого доступа к базам, а в финале сделал ставку на закрепление и кражу точечно нужных секретов.
Это делает инцидент особенно неприятным — заметна логика целевой операции: пакеты публиковались под инфраструктуру Strapi, а вредоносный код шаг за шагом адаптировался под конкретную среду и, вероятно, под конкретную компанию. Для рынка open source это тревожный сдвиг: supply chain-атаки становятся всё более прицельными.
SecurityWeek пишет, что всем, кто мог установить такие пакеты, нужно считать скомпрометированными пароли к базам данных, API-ключи, JWT-секреты и другие секреты, хранившиеся на системах. SafeDep также указывает на риск постоянного доступа через внедрённые ключи и shell’ы. Иначе говоря, одного удаления пакета мало: при подозрении на установку нужно проверять сам сервер, контейнеры, задания в crontab, SSH-настройки и всё, что связано с конфигурацией Strapi и кэширующим Redis.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.