Злоумышленники смогли перехватить учётную запись сопровождающего и выпустить два вредоносных выпуска NPM-пакета axios, предлагающего реализацию HTTP-клиента для браузеров и Node.js. Пакет axios насчитывает более 100 млн загрузок в неделю и используется в качестве зависимости у 174 тысяч других пакетов. Вредоносные изменения были интегрированы в выпуски Axios 1.14.1 и 0.30.4 через подстановку фиктивной зависимости plain-crypto-js 4.2.1, содержащей код для загрузки компонентов, принимающих команды с управляющего сервера злоумышленников. Вредоносные выпуски предлагались для загрузки 31 марта в течение почти 3 часов — с 03:21 по 6:15 (MSK).
Вредоносные версии были размещены в NPM напрямую с использованием учётных данных главного сопровождающего проекта axios («jasonsaayman») в обход штатного механизма публикации новых релизов на базе GitHub Actions. Предполагается, атакующие смогли перехватить у сопровождающего токен доступа к NPM, после чего вошли в учётную запись и поменяли привязку к email. Как именно был перехвачен токен доступа не уточняется.
Запускаемый вредоносный код размещался в пакете plain-crypto-js в файле setup.js, активировался после завершения установки NPM-пакета через обработчик postinstall (‘postinstall: «node setup.js»‘) и использовался для загрузки и установки трояна, поражающего системы с Windows, macOS и Linux. Для скрытия своего присутствия после запуска вредоносный компонент удалял файл setup.js и заменял package.json на вариант без postinstall-хука.

В macOS вредоносный исполняемый файл загружался как «/Library/Caches/com.apple.act.mond», в Windows — «%PROGRAMDATA%\wt.exe», в Linux — «/tmp/ld.py,». После активации в Linux и macOS каждые 60 секунд на внешний сервер атакующих отправлялся запрос команд для исполнения на поражённой системе, которые могли использоваться для загрузки дополнительных вредоносных компонентов, выполнения произвольных shell-команд и поиска/отправки определённых файлов.
Вредоносная активность в Linux и macOS не предусматривала сохранение присутствия после перезагрузки и была рассчитана на быстрый сбор конфиденциальных данных, паролей, токенов и ключей доступа. В Windows создавался файл «%PROGRAMDATA%\system.bat», который извлекал вредоносный компонент с сервера атакующих при каждом входе в систему.
Источник: opennet.ru
