Группа из почти 800 вредоносных пакетов была опубликована в реестре npm в рамках новой кампании, направленной на распространение кроссплатформенного вредоноса, нацеленного на системы Windows, macOS и Linux.

Эти пакеты используют случайно сгенерированные названия с опечатками для маскировки, однако все они доставляют мощный удаленный доступ (RAT) и вредоносный софт для кражи информации. Такую оценку дал исследователь компании OpenSourceMalware Пол МакКарти.

В отличие от других атак на цепь поставок через npm, использующих хуки жизненного цикла (preinstall или postinstall), обнаруженные пакеты содержат README-файл с инструкциями по загрузке через встроенную функцию require(). Эта функция предназначена для импорта модулей и сторонних пакетов.

Атака приводит к выполнению загрузчика WEL1DROPPER, который определяет операционную систему и архитектуру процессора хоста, затем загружает совместимый вредонос с одного из трех хостов Cloudflare Workers.

При отказе HTTPS-загрузок вредонос переключается на получение следующего этапа через DNS TXT-записи домена wel1[.]ru. Для каждой операционной системы используются разные домены:

  • Linux x64 - sdk.dl.wel1[.]ru
  • Linux ARM64 - ext.dl.wel1[.]ru
  • macOS - pkg.dl.wel1[.]ru
  • Windows - net.dl.wel1[.]ru

На финальном этапе вредонос записывается во временную папку и запускается через shell-команды на Linux и macOS либо cmd.exe на Windows.

Компания Sonatype, отслеживающая кампанию под названием Flooding Dropper, отмечает, что финальный этап запускается как отдельный процесс. На Windows версия применяет способы скрытия от мониторинга систем ETW и AMSI, проверяет наличие виртуальных сред, устанавливает постоянный доступ через реестр и запланированные задачи, загружает зашифрованный вредонос и запускает его.

Цепь заражения macOS работает аналогично: выполняет проверки на наличие отладчиков и артефактов анализа, загружает совместимый вредонос с удаленного сервера, устанавливает постоянный доступ через LaunchAgent и запускает исполняемый файл в отдельном процессе.

Linux-образец представляет собой упакованный UPX бинарный файл ELF, настроенный на загрузку дополнительных вредоносов с URL Cloudflare Worker, что приводит к развертыванию Sliver — фреймворка управления и контроля с открытым исходным кодом.

Пакеты также содержат файл lib/telemetry.js, который имитирует функциональность телеметрии, но включает ту же логику загрузчика. Это сделано для маскировки вредоноса под стандартную аналитику.

Обнаружение доменов tcsbank[.]ru и cloudpayments[.]ru в полезной нагрузке macOS указывает на возможное направление атак на российские финансовые учреждения и платежные системы.

Предполагается, что это эволюция кампании Moika, наблюдавшейся в апреле и включавшей публикацию более 250 пакетов в npm для кражи информации об окружении и доставки специфичного для операционной системы второго этапа вредоноса.

Специалисты также документировали множественные кампании, нацеленные на npm и репозиторий Python Package Index (PyPI):

  • Набор из 10 пакетов npm, загружающих обфусцированный криптовалютный шпион и удаленный доступ с внешних серверов. После установки пакеты экспортируют функцию getPlugin, которая конструирует URL для загрузки зашифрованного вредоноса.
  • Наборы вредоносных пакетов в npm и PyPI от разных угроз, способные к краже облачных учетных данных, распространению dropper'ов на основе блокчейна, краже ключей кошельков Solana через Telegram, краже секретов из файлов .env, использованию поддельных CAPTCHA для удаленного выполнения кода и краже токенов Discord.

От пакетов к расширениям Chrome

Злоумышленники используют расширения Google Chrome, позиционируемые как эмуляторы игр, менеджеры паролей и инструменты производительности, для преобразования веб-браузера в прокси для веб-краулинга. Команды краулинга поступают через постоянное WebSocket-соединение.

Эти расширения встраивают коммерческую SDK для обмена пропускной способностью, подключающую браузер пользователя к сетям резидентных прокси для операций веб-скрейпинга. Расширения внедряют скрытые iframe в активные вкладки браузера, конвертируют содержимое страниц в Markdown и отправляют в облако.

Некоторые расширения раскрывают эту практику в описаниях Chrome Web Store и политиках конфиденциальности. После установки SDK предлагает пользователям согласиться на включение сервиса, хотя функции остаются неактивными при отказе.