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

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

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

Вредоносный npm-пакет крал файлы Claude AI через GitHub

Исследователи обнаружили вредоносный npm-пакет, который загружал файлы пользователей Claude AI в GitHub-репозитории злоумышленников. Malware маскировался под инструмент синхронизации и использовал GitHub-токены из окружения жертв.

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

Исследователи обнаружили модифицированную версию червя Shai-Hulud в реестре npm

Исследователи обнаружили новый модифицированный вариант червя Shai-Hulud в npm-пакете, который пока не распространился широко, но, вероятно, тестируется злоумышленниками. Этот вредоносный код способен красть токены и расширять своё влияние на другие пакеты.

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

Ботнет Masjesu: DDoS как услуга для атак на IoT

Masjesu это ботнет, распространяемый как DDoS-сервис через Telegram и нацеленный на IoT-устройства. Он использует эксплойты, скрытность и распределённую инфраструктуру для проведения атак на серверы и сети по всему миру.