База даних загроз Шкідливе програмне забезпечення Кампанія зі шкідливим програмним забезпеченням...

Кампанія зі шкідливим програмним забезпеченням PromptMink, керована штучним інтелектом

Дослідники з кібербезпеки виявили шкідливий код, прихований усередині npm-пакета після того, як шкідлива залежність була впроваджена в проект через код, співавтором якого є Claude Opus, модель великої мови програмування (LLM) компанії Anthropic. Це відкриття показує, як загрози для ланцюжка постачання програмного забезпечення розвиваються через неправильне використання робочих процесів розробки за допомогою штучного інтелекту.

Пакет «@validate-sdk/v2», що був у центрі кампанії, був представлений на npm як утилітний комплект розробки програмного забезпечення для хешування, валідації, кодування та декодування, а також безпечної генерації випадкових чисел. Насправді він був розроблений для крадіжки конфіденційних секретів зі скомпрометованих систем. Слідчі помітили ознаки, що свідчать про те, що пакет міг бути «вібраційно закодований» за допомогою генеративного штучного інтелекту. Вперше його було завантажено на npm у жовтні 2025 року.

PromptMink пов'язаний із загрозливою діяльністю Північної Кореї

Дослідники назвали кампанію PromptMink і вважають, що вона пов'язана з північнокорейським кіберзлочинцем Famous Chollima, також відомим як Shifty Corsair. Цю групу раніше пов'язували з тривалою операцією Contagious Interview та шахрайськими схемами з IT-працівниками.

Кампанія демонструє постійну увагу до екосистеми відкритого коду, особливо до середовищ, пов'язаних з криптовалютою та розробкою Web3.

Коміт, створений у співавторстві зі штучним інтелектом, запровадив небезпечну залежність

Шкідливий пакет було вставлено через коміт від 28 лютого до автономного репозиторію торгового агента. За повідомленнями, цей коміт був створений у співавторстві з моделлю Claude Opus з Anthropic. Після включення пакет дозволяв зловмисникам отримувати доступ до криптовалютних гаманців та красти кошти.

Ланцюжок залежностей проходив через кілька пакетів. «@validate-sdk/v2» було вказано всередині «@solana-launchpad/sdk», який потім використовувався третім пакетом під назвою openpaw-graveyard. Цей пакет був описаний як автономний агент штучного інтелекту, здатний створювати соціальну ідентичність в блокчейні Solana через протокол Tapestry, торгувати криптовалютою через Bankr та взаємодіяти з іншими агентами на Moltbook.

У лютому 2026 року у зміні вихідного коду було додано пошкоджену залежність, що призвело до виконання шкідливого коду та витоку облікових даних, які могли б розкрити активи гаманця.

Багаторівнева стратегія зараження, розроблена для уникнення виявлення

Зловмисники використовували поетапну структуру пакетів. Початкові пакети виглядали чистими та не містили очевидного шкідливого коду. Натомість вони імпортували вторинні пакети, де зберігалася справжня шкідлива функціональність. Якщо один шкідливий вторинний пакет виявлявся або видалявся, його швидко замінювали.

Деякі пакети першого рівня, визначені в кампанії, включали:

@solana-launchpad/sdk
@meme-sdk/trade
@validate-ethereum-address/core
@solmasterv3/solana-metadata-sdk
@pumpfun-ipfs/sdk
@solana-ipfs/sdk

Ці пакети нібито надають функції, пов'язані з криптовалютою, та містили багато перевірених залежностей, таких як axios та bn.js, що допомагало їм виглядати легітимними. Серед цих перевірених бібліотек була прихована менша кількість шкідливих залежностей.

Приховані методи, що використовуються зловмисниками

Зловмисники використовували кілька методів для зменшення підозри та підвищення стійкості:

  • Створення шкідливих версій функцій, які вже містяться в легітимних популярних бібліотеках
  • Використання назв та описів пакетів з помилками, які дуже нагадують перевірені інструменти
  • Розділення шкідливого програмного забезпечення на нешкідливий на вигляд завантажувач та корисне навантаження другого рівня
  • Швидка ротація, видалення або виявлення вторинних пакетів

Перший відомий пакет, пов'язаний з кампанією, «@hash-validator/v2», був завантажений у вересні 2025 року.

Розширення за межі npm та еволюції шкідливого програмного забезпечення

Дослідники помітили ознаки цієї активності через кілька місяців, підтвердивши використання транзитивних залежностей для запуску шкідливого коду на машинах розробників та крадіжки цінних даних. Пізніше кампанія поширилася на індекс пакетів Python за допомогою шкідливого пакета під назвою scraper-npm, завантаженого в лютому 2026 року з аналогічною функціональністю.

Повідомляється, що в новіших версіях операції встановлювався постійний віддалений доступ через SSH та використовувалися корисні навантаження, скомпільовані Rust, для крадіжки цілих проектів з вихідним кодом та інтелектуальної власності із заражених систем.

Від простого викрадача до багатоплатформної загрози

Ранні версії шкідливого програмного забезпечення були обфускованими JavaScript-стелерами, які рекурсивно шукали файли .env та .json у робочих каталогах, перш ніж готувати їх до вилучення на домен, розміщений на Vercel, який раніше був пов'язаний з активністю Famous Chollima.

У пізніших версіях PromptMink був вбудований як єдиний виконуваний додаток Node.js. Однак це збільшило розмір корисного навантаження приблизно з 5,1 КБ до майже 85 МБ, що зробило доставку менш ефективною. Щоб подолати це обмеження, зловмисники, як повідомляється, перейшли на NAPI-RS, дозволяючи використовувати попередньо скомпільовані доповнення Node.js, написані на Rust.

Зростаючий ризик для ланцюга поставок відкритого коду

Перехід кампанії від простого викрадача інформації до спеціалізованого сімейства шкідливих програм для різних платформ, спрямованих на Windows, Linux та macOS, демонструє значне зростання можливостей. Тепер її функції включають крадіжку облікових даних, розгортання бекдорів SSH та крадіжку цілих проектів розробки.

Дослідники дійшли висновку, що Famous Chollima поєднує код, згенерований штучним інтелектом, з багаторівневими методами доставки пакетів, щоб уникнути виявлення та ефективніше маніпулювати автоматизованими помічниками кодування, ніж розробниками-людьми.

В тренді

Найбільше переглянуті

Завантаження...