Исследователи из Zscaler ThreatLabz в ноябре 2025 года выявили три вредоносных пакета в реестре npm, которые распространяют новый троянец удаленного доступа (RAT). Зловред, получивший название NodeCordRAT, крадет учетные данные браузера, секреты разработчиков и данные криптокошельков, используя для управления серверы Discord.
Описание
Атака была построена на эксплуатации доверия к популярному легитимному проекту bitcoinjs. Злоумышленники создали пакеты с названиями, напоминающими реальные репозитории этой экосистемы: "bitcoin-main-lib", "bitcoin-lib-js" и "bip40". Первые два пакета выступали в роли оберток. При их установке автоматически запускался скрипт "postinstall.cjs", который пытался установить пакет "bip40" как зависимость. Именно этот пакет и содержал вредоносную нагрузку (payload). При этом "bip40" также можно было установить напрямую, полностью минуя пакеты-приманки.
Для придания правдоподобности в файл "package.json" зловредов был включен URL легитимного репозитория "bitcoinjs-lib" на GitHub. По данным исследователей, пакеты-обертки были скачаны несколько тысяч раз. В частности, "bitcoin-main-lib" собрал более 2200 загрузок.
Технический анализ показал, что основная вредоносная активность начинается после установки "bip40". Скрипт установки автоматически запускает его с помощью менеджера процессов PM2, обеспечивая тем самым устойчивость (persistence) в рамках текущей сессии системы. После запуска NodeCordRAT проводит сбор информации об инфицированной системе. На Windows он получает UUID машины, а на Linux и macOS обращается к системным файлам вроде "/etc/machine-id". Эти данные используются для создания уникального идентификатора жертвы.
Управление троянцем осуществляется через скрытый канал на сервере Discord. Атакующий отправляет команды с определенными префиксами прямо в этот канал. Например, команда "!run" позволяет выполнять произвольные shell-команды на зараженной машине. Префикс "!screenshot" инициирует создание скриншота всего рабочего стола, а "!sendfile" - выгрузку указанного файла.
Основная цель NodeCordRAT - кража конфиденциальных данных. Во-первых, троянец извлекает базы данных с логинами и паролями из браузера Chrome. Во-вторых, он рекурсивно сканирует домашнюю директорию пользователя в поисках файлов ".env", которые часто содержат API-токены и другие секреты приложений. При этом он игнорирует стандартные каталоги вроде "node_modules". В-третьих, зловред целенаправленно ищет данные популярного криптокошелька MetaMask, включая сид-фразы и приватные ключи. Все похищенные файлы загружаются в тот же канал Discord через API платформы.
Обнаруженные пакеты были оперативно удалены из реестра npm. Однако этот инцидент наглядно демонстрирует сохраняющиеся высокие риски в цепочке поставок программного обеспечения (software supply chain). Атаки через репозитории пакетов остаются эффективными, поскольку используют автоматизацию процессов разработки и доверие к легитимным экосистемам. Специалисты по безопасности рекомендуют разработчикам всегда проверять происхождение зависимостей, использовать инструменты для сканирования уязвимостей и соблюдать принцип наименьших привилегий при настройке окружения.
Индикаторы компрометации
MD5
- 7a05570cda961f876e63be88eb7e12b8
- 9a7564542b0c53cb0333c68baf97449c
- c1c6f4ec5688a557fd7cc5cd1b613649
Package name
- bitcoin-lib-js
- bitcoin-main-lib
- bip40