Новости Установил пакет — отдал кошелёк. Как через экосистему Mastra заразили 140+ npm-библиотек и начали охотиться за криптовалютой

NewsMaker

I'm just a script
Премиум
27,796
46
8 Ноя 2022
На части заражённых Windows-машин обнаружили PowerShell-бэкдор с правами SYSTEM.


xggjoif41aphpuv5njl98i4k8to0vz96.jpg

Более 140 пакетов из экосистемы Mastra для создания ИИ-приложений заразили через npm. Вредоносный код запускался сразу после <code>npm install</code> или <code>npm update</code>, поэтому заражение могло затронуть рабочие компьютеры разработчиков и серверы сборки, даже когда пакет не подключали к коду приложения, сообщает Microsoft.

Злоумышленники получили доступ к учётной записи npm-разработчика <code>ehindero</code>, имевшей право публиковать обновления в пространствах имён <code>mastra</code> и <code>@mastra</code>. Через захваченный аккаунт атакующие выпустили заражённые версии пакетов и добавили в каждый зависимость <code>easy-day-js@^1.11.21</code>. Все вредоносные релизы получили метку <code>latest</code>, поэтому npm автоматически выбирал их при установке.

Аномалию заметили по истории публикаций. Версии <code>mastra</code> до 1.13.0 выходили через GitHub Actions с проверкой происхождения сборки, а <code>mastra</code> 1.13.1 опубликовали вручную с адреса анонимного почтового сервиса. В репозитории Mastra не нашли изменений, которые объясняли бы появление новой зависимости.

Пакет <code>easy-day-js</code> маскировался под популярную библиотеку <code>dayjs</code>, которую еженедельно скачивают более 57 млн раз. Авторы скопировали описание, ссылку на репозиторий и имя настоящего разработчика. Первую версию <code>easy-day-js</code> 1.11.21 загрузили 16 июня без вредоносного кода, а 17 июня выпустили версию 1.11.22. Код библиотеки остался прежним, но в файл <code>package.json</code> добавили обработчик <code>postinstall</code>, запускавший скрытый скрипт <code>setup.cjs</code>.

После установки скрипт отключал проверку TLS-сертификатов, создавал служебные файлы в системной временной папке и загружал с управляющего сервера вторую часть программы. Полученный код сохранялся под случайным именем, запускался отдельным скрытым процессом Node.js и затем ждал новых команд. Атакующие могли выполнять произвольный код на заражённой машине, менять настройки программы или завершать работу импланта.

В Windows, macOS и Linux вредоносная программа закреплялась в системе и маскировалась под компоненты Node.js и NVM. В Windows использовалась запись в автозагрузке, в macOS создавался LaunchAgent, а в Linux добавлялась пользовательская служба systemd. Программа собирала имя компьютера, сведения о пользователе, установленных приложениях и работающих процессах, историю браузера, а также искала расширения криптокошельков в Chrome, Edge и Brave. В списке были идентификаторы 166 кошельков, включая <span class="extremist-highlight" title="Соцсеть признана экстремистской и запрещена на территории РФ">Meta</span>Mask, Phantom, Coinbase Wallet и Binance Wallet.

На части заражённых Windows-компьютеров Microsoft зафиксировала загрузку PowerShell-бэкдора с отдельной инфраструктуры. Бэкдор удалял историю PowerShell, добавлял исключение для Microsoft Defender и устанавливал службу с правами SYSTEM. Microsoft с высокой уверенностью связала кампанию с северокорейской группировкой Sapphire Sleet, которая чаще всего атакует финансовые организации.

Microsoft передала сведения команде безопасности npm. Заражённые версии удалили из реестра, а у атакующего отозвали права на публикацию пакетов в пространстве имён <code>@mastra</code>. Разработчикам советуют проверить <code>package-lock.json</code>, <code>node_modules</code> и журналы CI/CD на наличие <code>easy-day-js</code>, сменить токены, пароли и API-ключи с потенциально заражённых машин, а также изучить исходящие подключения к адресам серверов управления. Безопасными Microsoft называет <code>mastra</code> 1.13.0 и более ранние версии, а также <code>@mastra/core</code> 1.42.0 и более ранние версии. При проверке зависимостей установку можно запускать с параметром <code>--ignore-scripts</code>, чтобы npm не выполнял обработчики <code>postinstall</code>.
 
Источник новости
www.securitylab.ru

Похожие темы