Добавить в корзинуПозвонить
Найти в Дзене

Axios в npm заразили: вредные версии ставили RAT на ПК

Axios в npm на короткое время раздавал вредоносные релизы: злоумышленник взломал аккаунт мейнтейнера и опубликовал axios@1.14.1 и axios@0.30.4. По разбору StepSecurity, эти версии подтягивали скрытую зависимость, которая ставила кроссплатформенный RAT на macOS, Windows и Linux. Масштаб неприятный: Axios скачивают около 100 млн раз в неделю. Атакующий закрыл сразу два мира — актуальную ветку 1.x и легаси 0.x. StepSecurity пишет, что злоумышленник скомпрометировал npm-аккаунт ведущего мейнтейнера Axios jasonsaayman 30 марта. Дальше он опубликовал два релиза в основную библиотеку: 31 марта в 00:21 UTC вышел axios@1.14.1, а в 01:00 UTC — axios@0.30.4. Между ними прошло 39 минут. ❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО Эти версии не совпали с обычным процессом релизов. StepSecurity отмечает, что вредоносные релизы не появились в тегах GitHub-репозитория Axios. Это намекает, что публикация шла напрямую в npm, мимо нормального CI/CD. Окно атаки оказалось коротким.
Оглавление

Axios в npm на короткое время раздавал вредоносные релизы: злоумышленник взломал аккаунт мейнтейнера и опубликовал axios@1.14.1 и axios@0.30.4. По разбору StepSecurity, эти версии подтягивали скрытую зависимость, которая ставила кроссплатформенный RAT на macOS, Windows и Linux.

Масштаб неприятный: Axios скачивают около 100 млн раз в неделю. Атакующий закрыл сразу два мира — актуальную ветку 1.x и легаси 0.x.

Как атаковали Axios: две ветки за 39 минут

StepSecurity пишет, что злоумышленник скомпрометировал npm-аккаунт ведущего мейнтейнера Axios jasonsaayman 30 марта. Дальше он опубликовал два релиза в основную библиотеку: 31 марта в 00:21 UTC вышел axios@1.14.1, а в 01:00 UTC — axios@0.30.4. Между ними прошло 39 минут.

❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО

Эти версии не совпали с обычным процессом релизов. StepSecurity отмечает, что вредоносные релизы не появились в тегах GitHub-репозитория Axios. Это намекает, что публикация шла напрямую в npm, мимо нормального CI/CD.

Окно атаки оказалось коротким. Вредоносные версии прожили примерно 2-3 часа, после чего npm их убрал. Пакет plain-crypto-js дополнительно поставили на security hold.

Что именно добавили в пакет и почему это трудно заметить

В обоих релизах Axios добавили ровно одну новую зависимость: plain-crypto-js@4.2.1. Это троян, замаскированный под легитимный crypto-js. Важно, что в исходниках Axios эту зависимость не импортировали и не вызывали — она жила своей жизнью через postinstall.

Ее задача — отработать скрипт установки. Он стучался на C2 по домену sfrclak.com, скачивал платформенный payload и затем вычищал следы.

По runtime-анализу StepSecurity, первый исходящий запрос к C2 происходил через 1,1 секунды после старта npm install. То есть у разработчика почти нет шанса заметить что-то по поведению системы до выполнения.

Куда RAT писал себя на macOS, Windows и Linux

StepSecurity описывает разные пути и техники под каждую ОС. Смысл один: спрятать бинарник или скрипт там, где он выглядит правдоподобно.

  • macOS: бинарник писали в /Library/Caches/com.apple.act.mond, маскируя под системный процесс Apple.
  • Windows: вредонос копировал PowerShell в %PROGRAMDATA%\wt.exe и запускал скрытый скрипт.
  • Linux: скачивал Python-RAT в /tmp/ld.py.

Дальше включалась часть, которая усложняет расследование. Скрипт setup.js удалял себя, удалял package.json с postinstall-хуком и подменял его на заранее подготовленную чистую заглушку с другим номером версии. Если вы потом посмотрите папку в node_modules, там может не быть ничего подозрительного.

Что известно про подготовку: сначала «чистая» история, потом payload

Атака выглядела подготовленной. StepSecurity указывает, что злоумышленник сначала опубликовал «чистую» приманку plain-crypto-js 30 марта в 05:57 UTC, чтобы создать историю публикаций. А уже затем, в 23:59 UTC, вышла версия с вредоносной нагрузкой.

❗️ ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ КРУТЫЕ СТАТЬИ БЕСПЛАТНО

После этого и пошли два релиза Axios, которые подтянули зависимость-троян.

Реакция экосистемы и статус инцидента

По уведомлениям от StepSecurity, а также рекомендациям от Snyk, Wiz и Vercel, машины, где успел выполниться вредоносный пакет, предлагают считать полностью скомпрометированными. Отдельно подчеркивают ротацию всех учетных данных, которые могли оказаться на этой машине.

Трекер инцидента завели в GitHub как axios/axios#10604.

Подробный технический разбор StepSecurity опубликован отдельно: Axios compromised on npm: malicious versions drop RAT.

Подписывайтесь на наши каналы в Telegram и Дзен, чтобы узнавать больше. И делитесь своим мнением и опытом в нашем чате.

Axios в npm заразили: вредные версии ставили RAT на ПК ⚡️