Инциденты

Поддельные плагины Strapi устроили точечную атаку на Guardarian: в npm нашли 36 вредоносных пакетов

Маша Даровская
By Маша Даровская , IT-редактор и автор
Поддельные плагины Strapi устроили точечную атаку на Guardarian: в npm нашли 36 вредоносных пакетов
Обложка © Anonhaven

В экосистеме npm обнаружили новую точечную supply chain-атаку: злоумышленники опубликовали 36 вредоносных пакетов, которые выдавали себя за плагины для Strapi — популярной CMS на Node.js. Об атаке сообщила SafeDep. Исследователи считают, что кампания была не массовой атакой случайных жертв, а довольно точно настроенной операцией против пользователей Guardarian, криптовалютного платёжного шлюза.

Вредоносные пакеты опубликовали через четыре подставных 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.

Есть новость? Станьте автором.

Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.

Вопросы по теме

Что произошло?
В npm нашли 36 вредоносных пакетов, замаскированных под плагины Strapi. Они использовались в supply chain-атаке с кражей данных, развёртыванием shell’ов и попытками закрепления в системе.
Почему говорят именно о Guardarian?
SafeDep связала кампанию с Guardarian по нескольким признакам: прямое зондирование связанных баз данных, использование модуля Guardarian API и поиск конкретных wallet-файлов.
Какие техники использовали злоумышленники?
Redis RCE, добавление задач в crontab, PHP webshell, Node.js reverse shell, внедрение SSH-ключей, попытки выхода из Docker-контейнера, кражу конфигураций Strapi, учётных данных PostgreSQL, Elasticsearch и файлов криптокошельков.
Это была массовая атака или точечная?
По оценке SafeDep, кампания выглядела как точечно настроенная атака на пользователей Strapi и, вероятно, на инфраструктуру Guardarian, а не как безразборный массовый спам вредоносных пакетов.
Что делать тем, кто мог установить такие пакеты?
Удалить вредоносные зависимости недостаточно. Нужно срочно перевыпустить пароли БД, API-ключи, JWT-секреты и другие секреты, а также проверить контейнеры, SSH-доступ, crontab и следы закрепления.