В экосистеме Node.js обнаружен новый кластер вредоносных пакетов, которые через многоступенчатую цепочку заражения доставляют троян удалённого доступа PylangGhost. Особенность атаки - активное использование облачных сервисов Cloudflare (Pages и Workers), а также изощрённые приёмы сокрытия кода, позволяющие обмануть системы автоматического анализа. Исследователи с высокой уверенностью связывают эту активность с группировкой FAMOUS CHOLLIMA, ранее ответственной за кампании Contagious Interview и Contagious Trader.
Описание
Кластер включает пять пакетов, опубликованных в реестре npm в апреле 2026 года. Основным загрузчиком выступает "unique-string-64", который зависит от вспомогательных модулей "node-env-detector", "ether-bn.js" и "winston-js-express". Ещё один пакет, "es6-runtimejs", реализует альтернативный путь заражения. Все они созданы аккаунтами "jaosne", "jason2" и "jason3", использующими почтовые ящики на ProtonMail с похожими шаблонами имён. Временные метки публикаций и перекрёстные зависимости указывают на единого оператора. Анализ подчёркивает, что имя "ether-bn.js" подражает легитимной библиотеке "big.js", что характерно для тактики группировки.
Цепочка заражения начинается с момента запуска скомпрометированного JavaScript-проекта. Пакет "ether-bn.js" при выполнении загружает "unique-string-64". Тот, в свою очередь, использует "node-env-detector" для анализа окружения: проверяются количество ядер процессора, объём памяти и другие параметры. Если система распознаётся как "песочница" или изолированная среда, вредоносная активность прекращается. В противном случае выполняется дешифровка полезной нагрузки. Примечательно, что для вызова функции "eval" используется оригинальный трюк: массив из слов "echo", "vertex", "length", "delta", "alpha" переставляется и по первым буквам собирается строка "eval". Подобный приём позволяет обойти статический анализ, полагающийся на поиск прямых вызовов "eval".
Дешифрованный скрипт первого этапа запускает новый процесс (Node.js или Deno) в фоновом режиме и передаёт ему содержимое, полученное с адреса "keo.pages.dev/output-2". Этот второй этап работает уже на подконтрольном злоумышленникам Cloudflare Workers. Исследователи отметили, что страницы возвращают кастомные заголовки ETag, нехарактерные для статического содержимого, - следовательно, серверная часть динамически генерирует ответ. Удалённый скрипт представляет собой зашифрованный код, который использует XOR-ключ, вычисленный на основе текущего года (2026). Он также связывается с ещё одним Cloudflare Worker по адресу "dpw.jr12012025z.workers.dev", чтобы получить уникальный идентификатор жертвы и скачать финальный архив.
Третий этап - загрузка и исполнение трояна PylangGhost. Исследователи получили вариант для Windows размером 28 мегабайт, содержащий около 4600 файлов в 490 каталогах. Внутри архива обнаружен скрипт на VBScript, который запускает Python-код. Конфигурация трояна хранится в файле "config.py" и указывает на командно-контрольный центр по адресу "187.127.248[.]20". Для всех трёх платформ (Windows, Linux, macOS) предусмотрены отдельные скрипты загрузки, причём для UNIX-систем используется путь "/var/tmp/camDriver.sh" - типичный для прошлых атак FAMOUS CHOLLIMA.
Несмотря на то что сам финальный троян не содержит принципиально новых технических решений, инновации сосредоточены на ранних этапах внедрения. Обфускация, шифрование, проверка окружения и динамическая загрузка с использованием облачной инфраструктуры - всё это направлено на то, чтобы максимально продлить время жизни вредоносных пакетов в реестре npm до их обнаружения. Группировка продолжает активно злоупотреблять публичными платформами для разработчиков, что подтверждает их высокую адаптивность.
Для специалистов по информационной безопасности основными сигналами атаки могут служить: исходящие POST-запросы к доменам "*.workers.dev" с необычными заголовками, появление процессов Node.js или Deno, запускающих интерпретатор "wscript.exe", а также активность интерпретаторов Python на системах, где это не ожидается. Хостинг-провайдер AS47583 (HOSTINGER), через который проходит трафик к центру управления трояном, также заслуживает внимания при профайлинге сетевой активности. Кластер наглядно демонстрирует, что злоумышленники готовы вкладывать ресурсы в маскировку начальных стадий, используя при этом относительно грубые, но эффективные средства на завершающем этапе заражения.
Индикаторы компрометации
IPv4
- 187.127.248.20
- 187.77.111.137
Domains
- deoft.org
- dpw.jr12012025z.workers.dev
- keo.pages.dev