У відкритій екосистемі open source, де довіра до сторонніх бібліотек є критичною, виявлено нову цілеспрямовану кампанію PromptMink. Дослідники кібербезпеки зафіксували шкідливий пакет @validate-sdk/v2 в офіційному реєстрі npm, який маскувався під утиліту для хешування та валідації, але насправді викрадав секрети та доступ до криптовалютних гаманців.
Небезпечний npm‑пакет @validate-sdk/v2 та ризики для екосистеми Solana
Пакет @validate-sdk/v2 позиціонувався як легітимний SDK для хешування, кодування та генерації випадкових чисел. При цьому прихована логіка збирала конфіденційні файли з середовища розробки (наприклад, змінні оточення та налаштування з ключами доступу) і відправляла їх на інфраструктуру зловмисників. Частина коду має характерні ознаки генеративного ІІ, що спрощує маскування під звичайну утилітарну бібліотеку.
Особливо небезпечним стало включення цього пакета в ланцюжок залежностей проєктів для блокчейна Solana. Через бібліотеку @solana-launchpad/sdk він потрапляв у проєкт openpaw-graveyard — автономного ІІ‑агента, який створює ончейн‑ідентичність на базі Tapestry Protocol, торгує активами через Bankr та взаємодіє з іншими агентами в Moltbook. Оновлення залежностей автоматично активувало шкідливий код, що могло призводити до компрометації криптогаманців і втрати коштів користувачів.
Багаторівнева supply chain‑атака PromptMink
Кампанія PromptMink побудована як багаторівнева supply chain‑атака на ланцюжок постачання ПЗ. Пакети першого рівня на npm виглядають цілком безпечними: вони реалізують базові криптовалютні операції, використовують популярні бібліотеки з мільйонами завантажень (на кшталт axios, bn.js) і не викликають підозр при поверхневій перевірці.
AI‑згенерований код і маскування під легітимні бібліотеки
Серед десятків легітимних залежностей приховано обмежену кількість другорядних пакетів, де й закладено шкідливий функціонал. Якщо один із таких пакетів виявляють і видаляють, оператори PromptMink швидко публікують близьку за назвою та описом заміну, застосовуючи typosquatting і альтернативні реалізації відомих методів. Генеративний ІІ дозволяє створювати правдоподібний, але нетиповий код, що ускладнює сигнатурне виявлення.
Еволюція інфостілера: від JavaScript‑скриптів до Rust‑модулів
Перші сліди кампанії простежуються з вересня 2025 року, коли в npm з’явився пакет @hash-validator/v2. Початковий компонент був обфускованим JavaScript‑інфостілером: він рекурсивно сканував проєкт на наявність файлів .env та .json і передавав їх на домен, розміщений на платформі Vercel, яку північнокорейська група Famous Chollima (також відома як Shifty Corsair) вже використовувала в інших операціях.
Згодом оператори перейшли до моделі Node.js Single Executable Application (SEA), упаковуючи корисне навантаження в єдиний виконуваний файл. Однак збільшення розміру бінарника з кількох кілобайт до десятків мегабайт підвищило його помітність. У відповідь зловмисники почали застосовувати NAPI‑RS та Rust для створення попередньо скомпільованих нативних модулів. Так з’явився компактний кросплатформенний інфостілер (Windows, Linux, macOS), здатний розгортати SSH‑бекдори і масово ексфільтрувати вихідний код і інтелектуальну власність.
Соціальна інженерія проти Web3‑розробників
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.
У сукупності кампанії PromptMink, Contagious Interview та пов’язані кластери демонструють, що open source‑залежності перетворилися на пріоритетний вектор атак для державних APT‑груп. Щоб знизити ризики supply chain‑компрометації, організаціям і розробникам варто: ретельно верифікувати нові пакети та їх мейнтейнерів; впроваджувати SCA‑рішення й моніторинг цілісності залежностей; уникати встановлення артефактів із невідомих GitHub‑релізів; ізолювати середовища збірки та тестування; строго керувати секретами й регулярно ротувати ключі; навчати команди розпізнавати фальшиві вакансії та підозрілі «тестові завдання». Чим швидше такі практики стануть стандартом, тим складніше буде зловмисникам перетворювати довіру до open source на інструмент крадіжки коштів і критичних даних.