Відкриті екосистеми пакетів npm і PyPI знову опинилися в центрі цілеспрямованих атак на ланцюг постачання програмного забезпечення. Дослідники зафіксували координовану операцію, пов’язану з групою Lazarus, у якій зловмисники через фейкові вакансії змушують розробників встановлювати шкідливі залежності. Основна мета — віддалений контроль над системами та крадіжка криптовалютних активів.
Кампанія graphalgo: малварь через оновлення npm і PyPI
За даними ReversingLabs, кампанія, умовно названа graphalgo, активна щонайменше з травня 2025 року. Зловмисники публікують у npm та Python Package Index (PyPI) пакети, які на старті виглядають повністю легітимними та не містять шкідливого коду. Небезпечне навантаження з’являється лише в оновлених версіях, коли пакет уже набрав довіру спільноти.
Показовий приклад — npm‑бібліотека bigmathutils. Перша «чиста» версія була завантажена понад 10 000 разів, після чого у другу редакцію автори додали приховану шкідливу логіку. Така тактика мінімізації підозр дозволяє успішно обходити базові перевірки та автоматизовані фільтри безпеки, що робить ланцюг постачання ПЗ вразливим навіть для досвідчених команд розробки.
Соціальна інженерія та фальшиві вакансії в крипто‑галузі
Ключовим елементом кампанії graphalgo є соціальна інженерія. Зловмисники створюють підставні криптовалютні компанії, наприклад «Veltrix Capital», з професійним сайтом, доменом та організацією на GitHub. У репозиторіях розміщуються «тестові завдання» на Python та JavaScript, які виглядають як стандартний відбір у продуктові команди блокчейн‑бірж.
Кандидатів шукають через LinkedIn, Facebook, Reddit та професійні спільноти. Розробнику пропонують клонувати репозиторій та запустити проект локально. Сам код завдання зазвичай не містить шкідливих фрагментів — зараження відбувається опосередковано через залежності npm/PyPI, які підтягувуються й встановлюються при збірці проєкту.
RAT, токен‑базоване C2 та полювання на MetaMask
Після інсталяції шкідливих пакетів на машину розробника завантажується RAT (Remote Access Trojan) — троян віддаленого доступу. Він періодично зв’язується з командно‑контрольним сервером (C2), виконує команди зловмисників, здійснює збір системної інформації, перелік процесів і файлів, завантаження та вивантаження даних, а також операції з файловою системою.
Особливістю цієї операції є токен‑орієнтована автентифікація C2‑трафіку. Під час першого контакту заражена система надсилає профіль пристрою та отримує унікальний токен, який надалі додається до кожного запиту. Такий підхід ускладнює підміну трафіку, автоматичний аналіз інфраструктури й нагадує техніки, помічені раніше в операціях північнокорейської групи Jade Sleet (TraderTraitor, UNC4899) у 2023 році.
RAT також перевіряє, чи встановлено у браузерах жертви криптовалютне розширення MetaMask. Це прямо вказує на фінансову мотивацію атаки: злам криптогаманців, перехоплення транзакцій та крадіжку цифрових активів.
Нові шкідливі npm‑пакети: Bada Stealer та XPACK ATTACK
duer-js та інфостілер Bada Stealer
Фахівці JFrog паралельно виявили небезпечний npm‑пакет duer-js, опублікований користувачем luizaearlyx. Бібліотека позиціонувалася як утиліта для «покращення видимості консольного вікна», однак всередині знаходився інфостілер Bada Stealer.
Bada Stealer збирає Discord‑токени, паролі, cookies та дані автозаповнення з браузерів Google Chrome, Microsoft Edge, Brave, Opera, Яндекс.Браузер, а також відомості про криптогаманці та систему загалом. Викрадені дані надсилаються на Discord‑webhook і дублюються у сервіс зберігання файлів Gofile. Додатковий компонент пакета закріплюється в автозапуску Discord Desktop, може самостійно оновлюватися і безпосередньо викрадати дані з десктоп‑клієнта, включно з прив’язаними платіжними методами.
XPACK ATTACK: криптовимагання через npm install
Окремий вектор загроз демонструє кампанія XPACK ATTACK, уперше зафіксована 4 лютого 2026 року ініціативою OpenSourceMalware. Усі задіяні пакети npm були опубліковані користувачем dev.chandra_bose і використовували нетиповий підхід: замість крадіжки даних вони вимагали криптовалюту під час виконання команди npm install.
Шкідливий код зловживає HTTP‑статусом 402 Payment Required, створюючи враження «законної платної підписки» на доступ до пакета. Встановлення блокується доти, доки розробник не перерахує 0.1 USDC/ETH на вказаний гаманець. Паралельно збираються імена користувачів GitHub і відбитки пристроїв. Якщо платіж не здійснено, інсталяція завершується помилкою через понад п’ять хвилин, маскуючи атаку під звичайне платне обмеження, а не активність шкідливого ПЗ.
Ескалація атак на ланцюг постачання ПЗ через npm і PyPI свідчить, що зловмисники розглядають залежності як найслабшу ланку сучасної розробки. Командам варто впровадити allow‑list пакетів, використовувати приватні дзеркала репозиторіїв, регулярно перевіряти історію версій та авторів, а також застосовувати сканери артефактів збірки й SCA‑інструменти. Розробникам необхідно з особливою обережністю ставитися до «тестових завдань» із зовнішніх репозиторіїв та верифікувати рекрутерів. Підвищення обізнаності про подібні схеми суттєво знижує ризики компрометації як корпоративної інфраструктури, так і особистих криптовалютних активів.