В npm обнаружен новый RAT, маскирующийся под библиотеки для работы с биткоином

remote access Trojan

Исследователи из 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
Комментарии: 0