В экосистеме 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.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.
Вопросы по теме
Что произошло?
Почему говорят именно о Guardarian?
Какие техники использовали злоумышленники?
Это была массовая атака или точечная?
Что делать тем, кто мог установить такие пакеты?
Читайте также
Megalodon за шесть часов заразил 5,5 тысячи репозиториев GitHub. Атака била по CI/CD-секретам
Radiology Associates of Richmond сообщила о новой утечке: данные 266 тысяч пациентов украли из внутренних систем