
Исследовательская организация по кибербезопасности Socket обнаружила 31 марта, что базовый npm-пакет axios подвергся активной атаке на цепочку поставок. Злоумышленник взломал npm-аккаунт главного мейнтейнера axios jasonsaayman, опубликовал вредоносные версии и внедрил вредоносный пакет зависимостей, чтобы развернуть кроссплатформенный троян удалённого доступа (RAT). Целью являются системы macOS, Windows и Linux.
(Источник: Socket)
Это событие представляет собой тщательно спланированную многоступенчатую атаку на цепочку поставок. Злоумышленник сначала получает доступ к аккаунту мейнтейнера, меняет email на ifstap@proton.me, затем использует украденные npm-учётные данные для ручной публикации вредоносных версий, полностью обходя штатный процесс публикации axios через GitHub Actions + OIDC Trusted Publisher. В GitHub-репозитории у двух вредоносных версий отсутствуют соответствующие коммиты, теги или записи о релизах.
Подготовка злоумышленника также выполнена точно: он контролировал другой аккаунт (nrwise, nrwise@proton.me), который примерно за 18 часов до этого опубликовал чистую приманочную версию plain-crypto-js@4.2.0, чтобы создать историю, а затем 30 марта в 23:59 UTC опубликовал вредоносную версию 4.2.1.
После выполнения вредоносного postinstall hook загрузчик RAT (setup.js) подключается к серверу команд и управления sfrclak[.]com:8000, чтобы развернуть платформенно-специфичные полезные нагрузки. После завершения работы он самоуничтожается и заменяет package.json на чистый заглушечный файл, в результате чего при последующей проверке директория node_modules не позволяет обнаружить следы заражения.
Версии вредоносного пакета:axios@1.14.1、axios@0.30.4、plain-crypto-js@4.2.1
Сервер C2:sfrclak[.]com / 142.11.206.73 / [.]com:8000
Следы заражения на macOS:/Library/Caches/com.apple.act.mond
Следы заражения на Windows:%PROGRAMDATA%\wt.exe、%TEMP%\6202033.vbs
Следы заражения на Linux:/tmp/ld.py
Аккаунт злоумышленника:jasonsaayman(взломан)、nrwise(аккаунт злоумышленника)
Поскольку вредоносный загрузчик после выполнения самоуничтожается, невозможно подтвердить заражение, проверяя каталог node_modules. Правильный способ — напрямую проверить lockfile (package-lock.json или yarn.lock) на наличие записей версий axios@1.14.1 или axios@0.30.4.
Откат безопасной версии: для пользователей 1.x понизить до axios@1.14.0; для пользователей 0.x понизить до axios@0.30.3, и одновременно удалить каталог plain-crypto-js из node_modules, а затем заново установить зависимости.
Если в системе обнаружены какие-либо следы заражения RAT (com.apple.act.mond、wt.exe、ld.py), не пытайтесь удалять их на месте. Следует заново собрать систему из заведомо нормального состояния и немедленно выполнить ротацию всех потенциально раскрытых учётных данных, включая токены npm, AWS access key, SSH private key, ключи для CI/CD-конфигураций и значения в файле .env.
Для разработчиков криптовалют и Web3 axios — это ключевая HTTP-библиотека, используемая во многих front-end’ах DeFi-протоколов, инструментах управления криптоактивами и сервисах запросов ончейн-данных. Инфицированная среда разработки может привести к утечке кошельковых приватных ключей, seed-фраз или API-ключей в адрес злоумышленника; рекомендуется в первую очередь проверить и выполнить ротацию всех чувствительных учётных данных.
Поскольку вредоносный загрузчик после выполнения самоуничтожается, нельзя подтвердить заражение, полагаясь на каталог node_modules. Следует напрямую проверить lockfile на наличие записей axios@1.14.1 или axios@0.30.4, а также убедиться, что в node_modules присутствует каталог plain-crypto-js. Можно выполнить команду npm list axios или напрямую выполнить поиск строки версий в lockfile.
axios — популярная HTTP-библиотека для Web3-приложений на стороне фронтенда и пользовательских интерфейсов DeFi-протоколов. Инфицированная среда разработки может привести к раскрытию злоумышленнику чувствительных учётных данных, таких как приватные ключи, seed-фраз, ключи API бирж или ключи конфигурации CI/CD; соответствующим разработчикам следует в первую очередь проверить и выполнить ротацию всех возможных криптосвязанных учётных данных.
Основные меры профилактики включают: в CI/CD всегда использовать npm ci --ignore-scripts, чтобы отключить postinstall hook; фиксировать версии критически важных пакетов зависимостей; регулярно просматривать журнал изменений lockfile; а также развёртывать инструменты вроде Socket, Aikido для мониторинга в реальном времени зависимостей на наличие вредоносного ПО.