Supply chain атака на Axios в npm

Популярный JavaScript-клиент Axios, используемый для HTTP-запросов, был временно скомпрометирован в npm. Инцидент стал одной из самых заметных атак на цепочку поставок в open-source за последнее время.

Библиотека загружается более 400 миллионов раз в месяц, поэтому даже кратковременная компрометация затрагивает огромное количество проектов.

Что произошло

Исследователи обнаружили, что в npm были опубликованы две вредоносные версии пакета: axios@1.14.1 и axios@0.30.4.

Атака стала возможной после компрометации учетной записи одного из мейнтейнеров, что позволило злоумышленникам публиковать пакеты от имени официального проекта.

Вредоносные версии находились в реестре около 2–3 часов, после чего были удалены.

Механика атаки

В сам код Axios изменения не вносились. Вместо этого в зависимости был добавлен пакет plain-crypto-js@4.2.1, не используемый в библиотеке.

Этот пакет выполнял postinstall-скрипт, который загружал и запускал кроссплатформенный RAT.

Вредоносный код автоматически выполнялся при установке:

npm install axios@1.14.1

После установки происходило выполнение скрытого скрипта:

// внутри plain-crypto-js
// выполняется автоматически через postinstall
node setup.js

Скрипт подключался к управляющему серверу и загружал полезную нагрузку для конкретной ОС.

После выполнения вредоносный компонент мог удалять следы своего присутствия, маскируя атаку.

Масштаб и последствия

Axios широко используется в веб-приложениях, мобильных клиентах и backend-сервисах, а также в CI/CD пайплайнах.

Любая система, которая выполнила установку в период публикации вредоносных версий, могла быть скомпрометирована без изменения исходного кода проекта.

Особенно уязвимыми оказались автоматизированные сборки, которые подтягивают зависимости без фиксации версий.

Признаки компрометации

Одним из индикаторов является наличие уязвимых версий Axios в lock-файлах:

grep -E '"axios"' package-lock.json | grep -E '1\.14\.1|0\.30\.4'

Проверка наличия вредоносной зависимости:

npm ls plain-crypto-js

Также можно искать директорию напрямую:

find node_modules -name "plain-crypto-js" -type d

Итог атаки

Атака была выполнена через официальный пакет, а не через поддельные или сторонние зависимости. Злоумышленники использовали доверие к популярной библиотеке и доступ к аккаунту мейнтейнера для распространения вредоносного кода.

Источник: Dark Reading

Похожие статьи

Рекомендательные технологии Подробнее
Кибербезопасность 8 месяцев назад

Зловред NANOREMOTE использует API Google Drive для скрытого управления Windows

NANOREMOTE - новый бэкдор для Windows, который маскирует связь с операторами под обычную работу Google Drive. Вредонос умеет выполнять команды, управлять файлами и передавать данные через облачный API, что делает его почти незаметным для систем безопасности.

Кибербезопасность 5 месяцев назад

Anthropic представила Claude Code Security - ИИ-анализатор уязвимостей в коде

Anthropic представила новый инструмент безопасности для разработчиков - Claude Code Security. Он анализирует код на уязвимости с помощью ИИ, оценивает риски и предлагает исправления под контролем человека.

Кибербезопасность 6 месяцев назад

Критическая уязвимость vm2 в Node.js

В библиотеке vm2 для Node.js обнаружена критическая уязвимость, позволяющая выйти из песочницы и выполнить произвольный код на хост-системе. Разбираем суть проблемы, затронутые версии и рекомендации для разработчиков.

Кибербезопасность 6 месяцев назад

Microsoft закрыла активно эксплуатируемую уязвимость нулевого дня в Office

Microsoft выпустила экстренное обновление безопасности для Microsoft Office, закрывающее уязвимость нулевого дня, которая уже используется в атаках. Обновление устраняет обход механизмов защиты и рекомендуется к установке как можно скорее.