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

Комментарии (0)

Войдите, чтобы оставить комментарий

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

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

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

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

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

Поддельные репозитории Next.js нацелены на разработчиков: что происходит и как защититься

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

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

Notepad++ усилил защиту обновлений после атаки

Notepad++ устранил уязвимость в механизме обновлений, которую злоумышленники использовали для целевой доставки вредоносных файлов, а также усилил проверку подписи обновлений.