Злоумышленник внедрил вредоносный код в девять npm-пакетов

В мае 2025 года злоумышленник за примерно 90 минут опубликовал девять версий пакетов npm, воспользовавшись захваченной учётной записью сопровождающего. Восстановленные версии содержали компоненты доставки вредоносного ПО и полезной нагрузки. Цепочка атаки доставляла RAT на Node.js и стиллер учётных данных на Python.

Как работала цепочка заражения

В существующие файлы пакетов добавили обфусцированный код JavaScript, скрытый за длинными пробелами. Полезная нагрузка имела общие ключевые технические характеристики с PolinRider, среди них ключ XOR, маркер, командный сервер и пути на сервере. Образцы 2025 года содержали компоненты доставки вредоносного ПО и полезной нагрузки, но не включали поведение принудительного распространения, задокументированное в 2026 году.

Для получения зашифрованной полезной нагрузки загрузчики использовали EtherHiding. Данные транзакций BNB Smart Chain и Ethereum они запрашивали через публичные API обозревателей блокчейна. Загрузчик JADESNOW расшифровывал следующий этап с помощью XOR, а затем загружал бутстраппер из транзакции Ethereum от 7 февраля 2025 года.

Бутстраппер подключался к 154.91.0.103:27017, блокировал выполнение в России, устанавливал зависимости Node.js и файлы поддержки Python 3.12.7. Отчёт о статусе он отправлял по пути /verify-human/5-itsa.

RAT подключался к серверу Socket.IO по адресу 85.239.62.36:3306 и принимал команды оператора. С его помощью можно было выполнять команды командной строки, менять каталоги, загружать файлы или каталоги и завершать работу. Команды выполнялись с параметром shell: true. В Windows использовался портативный Python.

Стиллер работал в Windows, Linux и macOS. Он собирал учётные данные браузеров, файлы cookie, платёжные данные, сведения о кошельках и расширениях браузера, учётные данные Git и GitHub, файлы менеджеров паролей и данные облачного хранилища. Перед отправкой на 85.239.62.36:27017 стиллер создавал архивы и шифровал их алгоритмом AES. Для передачи более мелких архивов в качестве резервного канала использовался Telegram. Вредоносное ПО не устанавливало закрепление при перезагрузке.

Изменения в GitHub и индикаторы

В 2026 году связанные полезные нагрузки появлялись в репозиториях GitHub, принадлежавших разработчикам. Для этого использовалась принудительная отправка изменений, которая модифицировала файл webpack.config.js. Даты коммитов и метаданные сфальсифицировали. Поэтому время отправки изменений в GitHub служит более надёжным источником для определения активности, чем даты коммитов.

К полезным индикаторам обнаружения относятся:

  • затронутые версии пакетов;
  • необычно длинный код, замаскированный пробелами;
  • процессы Node.js, выполняющие запросы к обозревателям блокчейна перед запуском;
  • непредвиденный трафик Socket.IO или HTTP на порту 3306;
  • создание каталогов /tmp/.npm или ~/.pyenv.

В отчёте также приведены хеши SHA-256 затронутых архивов пакетов и компонентов вредоносного ПО.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии:

Как мы обрабатываем данные: политика обработки персональных данных