Исследователи кибербезопасности обнаружили новую крупную кампанию против экосистемы open source: в официальном реестре npm был найден вредоносный пакет @validate-sdk/v2, маскирующийся под утилитарный SDK для хеширования и валидации. На практике он предназначен для кражи секретов и доступа к криптовалютным кошелькам. Активность связана с северокорейской группировкой Famous Chollima (также известной как Shifty Corsair), ранее замеченной в операциях Contagious Interview и мошенничестве с «удалёнными IT‑работниками».
Вредоносные npm‑пакеты, ИИ‑код и атака на Web3‑разработчиков
Пакет @validate-sdk/v2 позиционируется как библиотека для хеширования, кодирования и генерации случайных чисел, однако его скрытая функция — сбор и пересылка конфиденциальных данных из скомпрометированной среды. Исследователи отмечают характерные признаки того, что часть кода могла быть сгенерирована с помощью генеративного ИИ, что упрощает маскировку под легитимный проект.
Особую угрозу создало то, что вредоносный SDK был включён как зависимость в экосистему проектов для блокчейна Solana. Через пакет @solana-launchpad/sdk он попадал в проект openpaw-graveyard — «автономного ИИ‑агента», создающего ончейн‑идентичность с использованием Tapestry Protocol, торгующего криптовалютой через Bankr и взаимодействующего с другими агентами в Moltbook. В результате обновления зависимостей агент начинал исполнять вредоносный код и утечка учётных данных приводила к компрометации криптокошельков и средств пользователей.
Многоуровневая цепочка зависимостей и уклонение от детектирования
Кампания PromptMink построена по многоуровневой модели. Пакеты первого уровня на npm выглядят безобидно: они реализуют базовую криптовалютную логику и зависят от широко используемых библиотек с миллионами загрузок (например, axios, bn.js). Среди десятков легитимных зависимостей скрывается небольшое число пакетов второго уровня, в которых и реализован вредоносный функционал.
Если один из вредоносных пакетов второго уровня выявляется и удаляется из npm, он быстро заменяется новой вариацией, что затрудняет постоянную блокировку. Дополнительно злоумышленники используют typosquatting (названия и описания, похожие на легитимные библиотеки) и подмену функций: создаются «альтернативные» реализации методов популярных пакетов, внутри которых встроен вредоносный код.
Эволюция PromptMink: от JavaScript‑стилера до кроссплатформенного Rust‑модуля
Первые версии кампании, по данным исследователей, отслеживаются с сентября 2025 года, когда в npm появился пакет @hash-validator/v2. Начальный вредоносный компонент представлял собой обфусцированный JavaScript‑«стилер», который рекурсивно сканировал рабочий каталог в поисках файлов .env и .json и отправлял их на контролируемый злоумышленниками домен, размещённый на платформе Vercel. Эта инфраструктура уже неоднократно использовалась Famous Chollima в других операциях.
Позднее операторы перешли к модели Node.js Single Executable Application (SEA), объединяя полезную нагрузку в один исполняемый файл. Однако рост размера бинарника примерно с 5,1 КБ до ~85 МБ повысил заметность атак. В ответ злоумышленники начали использовать NAPI‑RS и Rust для создания предварительно скомпилированных нативных модулей, что дало им более компактный и кроссплатформенный (Windows, Linux, macOS) инфостилер, способный устанавливать SSH‑бекдоры и выкачивать целые проекты с исходным кодом и интеллектуальной собственностью.
Социальная инженерия: поддельные компании, собеседования и GitHub‑артефакты
Кампания PromptMink тесно связана с более широкой активностью Contagious Interview / Contagious Trader / graphalgo, нацеленной на разработчиков, в первую очередь в области Web3 и блокчейна. Мишенью становятся специалисты, ищущие работу: злоумышленники создают сеть фиктивных компаний с убедительными профилями на GitHub, LinkedIn и X, а иногда даже регистрируют формальные юридические лица, как в случае с Blocmerce LLC во Флориде.
Жертвам предлагают выполнить тестовое задание: скачать проект с GitHub, который якобы является частью технического интервью. Внутри проекта скрыта зависимость на вредоносный пакет в npm или PyPI, либо на артефакт релиза в GitHub. Ссылка на него маскируется глубоко в дереве транзитивных зависимостей — соответствующее поле resolved в package-lock.json указывает не на официальный реестр, а на специально подготовленный репозиторий.
Финальным этапом становится установка RAT (Remote Access Trojan), способного собирать системную информацию, перечислять файлы и процессы, загружать и скачивать данные, а также удалённо управлять узлом разработчика.
OtterCookie, express-session-js и компрометация популярных библиотек
Параллельно наблюдаются связанные атаки с использованием пакета express-session-js, через который загружается второй этап — обфусцированный RAT и инфостилер. Он использует легитимные пакеты socket.io-client (для командно‑контрольного канала), screenshot-desktop, sharp и clipboardy, что пересекается с функциональностью известного стилера OtterCookie. Новое векторное усиление — добавление библиотеки @nut-tree-fork/nut-js для удалённого управления мышью и клавиатурой, что позволяет атакующим интерактивно контролировать заражённые машины.
Отдельный северокорейский кластер UNC1069 был также связан с компрометацией популярного пакета axios. После инцидента злоумышленники опубликовали новый пакет csec-crypto-utils с обновлённым модулем: вместо RAT он выполнял роль стилера, крадущего AWS‑ключи, GitHub‑токены и конфигурации .npmrc и отправляющего их на внешний сервер. По инфраструктурным признакам эта активность соотнесена с подразделением BlueNoroff в составе Lazarus Group.
Суммарно кампания демонстрирует зрелость северокорейских госструктур в области кибершпионажа: переход от статической обфускации к динамически изменяющимся техникам, активное использование легитимной инфраструктуры (Vercel, GitHub, npm, PyPI) и ИИ‑сгенерированного кода, а также нацеленность на криптовалютный и Web3‑сегмент.
С учётом растущего числа supply chain‑атак против open source (от инцидента с npm‑пакетом event-stream до компрометации крупных вендоров) организациям и отдельным разработчикам необходимо пересматривать модель доверия к зависимостям. Практические меры включают: строгую проверку новых пакетов и их мейнтейнеров; использование SCA‑решений и мониторинга целостности зависимостей; отказ от установки артефактов из неизвестных GitHub‑релизов; изоляцию окружений для сборки и тестирования; жёсткое управление секретами и регулярную ротацию ключей, а также обучение разработчиков распознаванию фальшивых вакансий и сомнительных «тестовых заданий».
Кампании PromptMink, Contagious Interview и связанные с ними операции показывают, что open source‑зависимости стали одним из приоритетных векторов атак для государственно подконтрольных группировок. Организациям, особенно работающим с криптовалютами и Web3, следует относиться к любой внешней библиотеке как к потенциально недоверенному коду, выстраивать многоуровневую защиту цепочки поставок ПО и регулярно пересматривать свои процессы разработки и найма. Чем раньше такие практики станут стандартом, тем сложнее будет злоумышленникам использовать доверие к open source как трамплин к краже средств и интеллектуальной собственности.