Найти в Дзене
avencores.

Вредоносная кампания в NPM: NodeCordRAT атакует крипто-разработчиков через тайпосквоттинг

Исследователи из Zscaler ThreatLabz выявили новую вредоносную кампанию в официальном репозитории npm, направленную на разработчиков, работающих с криптовалютными проектами. Злоумышленники опубликовали пакеты bitcoin-main-lib, bitcoin-lib-js и bip40, которые маскировались под структуру и нейминг популярной легитимной библиотеки bitcoinjs. Атака была рассчитана на классический тайпосквоттинг: разработчик по ошибке вводит схожее название пакета, подтверждает установку, после чего вредоносный код автоматически запускается через скрипт postinstall без явных признаков компрометации. Два пакета — bitcoin-main-lib и bitcoin-lib-js — содержали скрипт postinstall.cjs, который автоматически подтягивал третий пакет — bip40. Именно он содержал основную полезную нагрузку. Ключевой особенностью реализации стало использование популярного менеджера процессов PM2 для закрепления в системе: * вредонос запускается в detached-режиме, продолжая работать в фоне; * установка зависимостей завершается без ошибо
Оглавление

Общая информация об инциденте

Исследователи из Zscaler ThreatLabz выявили новую вредоносную кампанию в официальном репозитории npm, направленную на разработчиков, работающих с криптовалютными проектами. Злоумышленники опубликовали пакеты bitcoin-main-lib, bitcoin-lib-js и bip40, которые маскировались под структуру и нейминг популярной легитимной библиотеки bitcoinjs.

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

Механизм заражения и закрепления

Два пакета — bitcoin-main-lib и bitcoin-lib-js — содержали скрипт postinstall.cjs, который автоматически подтягивал третий пакет — bip40. Именно он содержал основную полезную нагрузку.

Ключевой особенностью реализации стало использование популярного менеджера процессов PM2 для закрепления в системе:

* вредонос запускается в detached-режиме, продолжая работать в фоне;

* установка зависимостей завершается без ошибок, что не вызывает подозрений у разработчика;

* если PM2 отсутствует в системе, скрипт корректно завершается без вывода ошибок в консоль, чтобы не привлекать внимание.

Такой подход делает заражение максимально «тихим» и сложным для обнаружения на раннем этапе.

NodeCordRAT и канал управления

Полезная нагрузка получила название NodeCordRAT — это полноценный Remote Access Trojan для Node.js-среды.

В качестве C2-инфраструктуры вредонос использует Discord API, что дает сразу несколько преимуществ злоумышленнику:

* вредоносный трафик сливается с легитимным сетевым шумом;

* обходятся простые фаерволы и сетевые фильтры;

* управление ботом не требует собственной серверной инфраструктуры.

Через Discord троян получает команды и отправляет похищенные данные.

Функционал вредоносного ПО

NodeCordRAT ориентирован на максимальный ущерб для разработчиков и их проектов. Его возможности включают:

* кражу профилей браузера Google Chrome, включая сохраненные учетные данные;

* извлечение seed-фраз и ключей MetaMask из расширений браузера;

* создание скриншотов рабочего стола;

* рекурсивный поиск и эксфильтрацию файлов .env, содержащих API-ключи, токены доступа и другие секреты;

* удаленное выполнение команд на зараженной системе.

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

Последствия и риски

Хотя вредоносные пакеты были оперативно удалены из npm, по данным исследователей, несколько тысяч разработчиков успели установить их в свои проекты. Это в очередной раз подчеркивает уязвимость цепочек поставок ПО и высокую эффективность атак через открытые экосистемы зависимостей.

Инцидент демонстрирует, что даже один ошибочный ввод имени пакета может привести к полной компрометации системы и утечке критически важных данных.

Источник

⬇️Поддержать автора⬇️

✅SBER: 2202 2050 1464 4675