Вредоносный npm-пакет js-logger-pack использует платформу Hugging Face для кражи данных и закрепления в системах

information security

Разработчики, применяющие менеджер пакетов npm, столкнулись с серьёзной угрозой. Вредоносная библиотека js-logger-pack, маскирующаяся под безобидную утилиту для логирования, на деле оказалась сложным инструментом для компрометации рабочих станций и серверов. Последние версии пакета, включая 1.1.27, не только загружают вредоносное ПО с публичного репозитория Hugging Face, но и используют ту же платформу в качестве хранилища для похищенных данных. Атака затрагивает операционные системы Windows, macOS и Linux, а её жертвами могут стать как отдельные разработчики, так и целые организации, использующие уязвимые зависимости в своих проектах.

Описание

Пакет js-logger-pack реализует классическую схему с подменой. При установке через npm выполняется скрипт postinstall, указанный в package.json. Этот скрипт запускает фоновый процесс на Node.js, который незаметно загружает один из четырёх двоичных файлов с репозитория Hugging Face Lordplay/system-releases. Выбор конкретного файла зависит от платформы и архитектуры: для Windows - PE32+ x64, для macOS - Mach-O x64 или arm64, для Linux - ELF x64. Исследование специалистов компании JFrog Security показало, что все четыре файла являются оболочками Node.js Single Executable Application (SEA, одноисполняемые приложения на базе Node.js), в которые встроен идентичный JavaScript-код. Извлечённая полезная нагрузка имеет одинаковую хеш-сумму SHA-256 для всех платформ и содержит весь набор вредоносных функций.

После запуска вредоносное ПО выполняет несколько критически важных действий. Оно регистрируется в системе для автоматического запуска: создаёт задачу планировщика или ключ реестра Run на Windows, использует LaunchAgent на macOS, а на Linux применяет systemd-юнит пользователя или автозапуск XDG. Затем программа устанавливает соединение с управляющим сервером по адресу ws://195.201.194[.]107:8010 и http://195.201.194[.]107:8010, передавая информацию о системе. Одновременно запускаются регистратор нажатий клавиш (keylogger) и мониторинг буфера обмена. Вредоносная программа также периодически проверяет репозиторий Hugging Face на наличие обновлений и, если версия изменилась, заменяет себя новой версией без какой-либо проверки подписи.

Особую опасность представляет возможность удалённого выполнения произвольных команд. Оператор через WebSocket-соединение может отдавать более десятка различных задач: от просмотра списка дисков и чтения файлов до рекурсивного сканирования системы на предмет учётных данных, криптовалютных кошельков, истории команд и переменных окружения. Интересно, что среди команд есть функция clear_sessions, которая завершает процессы браузера и уничтожает хранимые сессии. Это заставляет пользователя вводить пароли заново, а работающий keylogger захватывает их. Затем по команде upload_folder_hf похищенные данные упаковываются в архив и загружаются в частные наборы данных Hugging Face, контролируемые злоумышленником. Управляющий сервер никогда не хранит украденную информацию у себя - он лишь получает уведомление об успешной загрузке. Таким образом, инфраструктура Hugging Face выступает одновременно и каналом распространения, и хранилищем скомпрометированных данных.

В ходе расследования эксперты JFrog Security выявили несколько публичных учётных записей, связанных с кампанией. Репозиторий Lordplay/system-releases на Hugging Face был создан в апреле 2026 года, хотя сам профиль Lordplay существовал с февраля и содержал безобидные проекты. Однако начиная с вредоносного коммита метаданные автора изменились: вместо обычного адреса limhwang1228@gmail.com появилась строка joshstevens19@hotmail.co.uk, которая соответствует реальному инженерному вице-президенту компании Polymarket Джошу Стивенсу. Аналитики с высокой уверенностью заявляют, что это намеренная подмена авторства с целью сбить с толку следователей и скомпрометировать известного специалиста. Дополнительно установлена связь между профилем Lordplay, группой учётных записей whisdev и инфраструктурой jrodacooker.dev. Один из старых управляющих серверов, api-sub.jrodacooker.dev, использовался в версии 1.1.5 этого же пакета. Также обнаружен SSH-ключ с комментарием bink@DESKTOP-N8JGD6T, который пересекается с историей коммитов в репозиториях whisdev. Однако публично доступные данные не позволяют однозначно утверждать, что реальные владельцы этих учётных записей причастны к атаке; не исключена компрометация аккаунтов.

Если вы устанавливали пакет js-logger-pack любой версии, начиная с 1.1.0, необходимо исходить из того, что среда выполнения полностью скомпрометирована. Вредоносное ПО имеет доступ к любым файлам, может перехватывать нажатия клавиш, копировать данные из буфера обмена и загружать дополнительные исполняемые файлы. Первым делом следует ротировать все секреты, к которым мог быть доступ: ключи AWS, токены npm, SSH-ключи, пароли к базам данных и API, а также сиды криптовалютных кошельков. Затем необходимо удалить механизмы закрепления: на Windows - удалить задачу \MicrosoftSystem64 и ключ реестра в HKCU\Run, на macOS - выгрузить LaunchAgent и удалить соответствующие файлы, на Linux - остановить systemd-юнит и очистить автозапуск. После этого нужно стереть локальные артефакты - каталоги .pcl-data и .pcl-state, а также временные файлы, созданные во время компиляции вспомогательных программ (например, .sys_*.swift на macOS). Сам пакет удаляется вместе с node_modules и lock-файлами.

Для предотвращения подобных атак в будущем эксперты рекомендуют отключить автоматическое выполнение скриптов после npm install (npm config set ignore-scripts true), тщательно проверять изменения в package.json даже для патч-релизов и внедрять автоматические системы проверки зависимостей с одобрением только проверенных пакетов. Данный инцидент наглядно демонстрирует, как злоумышленники адаптируют легитимные облачные сервисы для своих целей, превращая их в бесконечный канал распространения и хранения украденной информации. Компаниям, использующим npm, следует немедленно провести аудит установленных пакетов на наличие js-logger-pack и его производных.

Индикаторы компрометации

URLs

  • http://195.201.194.107:8010
  • https://huggingface.co/Lordplay/system-releases/resolve/main/MicrosoftSystem64-darwin-arm64
  • https://huggingface.co/Lordplay/system-releases/resolve/main/MicrosoftSystem64-darwin-x64
  • https://huggingface.co/Lordplay/system-releases/resolve/main/MicrosoftSystem64-linux
  • https://huggingface.co/Lordplay/system-releases/resolve/main/MicrosoftSystem64-win.exe
  • https://huggingface.co/Lordplay/system-releases/resolve/main/version.txt

Packages

  • js-logger-pack-1.1.27

WebSocket

  • ws://195.201.194.107:8010

SHA256

  • 2fec04f2985510654d9656d57f6817de1ca0d6ae49e7085b1e33abb38f89cc55
  • 33401580619ae79bf3f87aab16208f169a44a038f18671b1def7836fb2682c9a
  • 457a3323fe0cfa82d6e102074c6f07a399f55c7e0ce2d3b40643d9cfde0cf220
  • b505f1d1ca3dca8cb7e2b2dd99991b5a929ec9387f3de31ad36549823af07dfd
  • f2c754a7f7b56e0e2a6dd429f06c42a1860c52c37b25d0a8e91c67d1239fa577
Комментарии: 0