Екосистема Node.js знову опинилася під ударом: дослідники ReversingLabs виявили низку шкідливих npm‑пакетів, які маскуються під корисні утиліти для розробників, але фактично призначені для крадіжки криптовалютних гаманців та конфіденційних даних. Активність отримала назву theGhost і, за оцінками фахівців, є частиною ширшої кампанії GhostClaw, раніше описаної JFrog та Jamf Threat Labs.
Шкідливі npm‑пакети: фішинг sudo‑пароля під виглядом інсталяції
Усі виявлені шкідливі бібліотеки Node.js були опубліковані в офіційному реєстрі npm користувачем з псевдонімом “mikilanjillo”. Пакети позиціонувалися як засоби для оптимізації проєктів або інтеграції сторонніх сервісів, однак їхня фактична мета — виманити у користувача пароль адміністратора (sudo) та непомітно встановити шкідливе ПЗ.
Сценарій атаки ретельно імітує нормальний процес npm install: виводяться псевдологі інсталяції, додаються випадкові затримки, а згодом скрипт повідомляє про “помилку доступу” до каталогу /usr/local/lib/node_modules – типового шляху глобальної установки в Linux та macOS. Для “усунення помилки” користувача просять ввести root‑пароль, що відкриває зловмисникам повний контроль над системою.
Ланцюжок зараження: Telegram як канал керування та розгортання RAT
Після отримання пароля шкідливий скрипт завантажує додатковий компонент‑завантажувач, який звертається до Telegram‑каналу по конфігурацію: адресу фінального корисного навантаження та ключ для його розшифрування. На останньому етапі на систему розгортається Remote Access Trojan (RAT), що здатен збирати системну інформацію, ексфільтрувати файли, а також викрадати криптогаманці та дані браузерів. RAT отримує подальші команди з сервера керування, що дозволяє зловмисникам гнучко змінювати тактику.
GhostClaw: GitHub, ІІ‑інструменти та ланцюжкові атаки на розробників
ReversingLabs фіксує перетин цієї активності з кластером GhostClaw, який детально аналізували JFrog та Jamf. У межах GhostClaw зловмисники зловживають GitHub‑репозиторіями та процесами розробки, підсиленими ШІ‑асистентами, щоб поширювати шкідливі навантаження, у тому числі для macOS.
Репозиторії оформлюються як легітимні SDK, торгові боти, developer‑утиліти та можуть набирати багато “зірок”, що підвищує рівень довіри. Спочатку в них публікується нешкідливий або частково робочий код, який довго не змінюється, а шкідливі модулі додаються лише згодом через ланцюжок установки.
Ключову роль відіграють інструкції в README або SKILL.md: розробника просять запустити shell‑скрипт для “додаткових можливостей”. Саме цей скрипт запускає багатоступеневу інфекцію, що завершується встановленням stealer‑модуля для крадіжки облікових даних. Цікава деталь — змінна середовища GHOST_PASSWORD_ONLY: при значенні 0 користувач бачить “повноцінний” майстер інсталяції, а при 1 скрипт переходить у максимально прихований режим, зосереджений майже виключно на збиранні паролів.
react-state-optimizer, Telegram та BSC‑смарт‑контракти: як монетизується атака
За даними Panther, один з ключових npm‑пакетів, react-state-optimizer, містив CLI‑“майстер налаштування”, який переконував користувача ввести sudo‑пароль для нібито “системної оптимізації”. Далі пароль передавався у потужний credential stealer, що націлений на браузерні облікові дані, cryptocurrency‑гаманці та seed‑фрази, SSH‑ключі, конфігурації хмарних провайдерів і токени DevOps‑сервісів.
Початковий пакет завантажував конфігурацію з Telegram‑каналу або зі сторінки Teletype.in, замаскованої під блокчейн‑документацію. Викрадені дані перенаправлялися до Telegram‑ботів, де вже далі розподілялися між партнерами. Основний прибуток генерувався продажем облікових даних, а додатковий — через партнерські URL‑редиректи, параметри яких зберігалися в окремому смарт‑контракті в мережі Binance Smart Chain (BSC). Це дозволяє оновлювати партнерські програми й маршрутизацію трафіку без зміни шкідливого коду.
Ризики для команд розробки та практичні кроки захисту
Кампанії theGhost і GhostClaw демонструють зсув фокусу атакуючих у бік ланцюжка постачання (supply chain): npm, GitHub та ІІ‑асистенти стають зручними каналами проникнення у корпоративну інфраструктуру. Особливо вразливі команди, де розробники регулярно виконують npm install із sudo, обирають пакети лише за кількістю зірок і завантажень та не аналізують вміст postinstall‑скриптів чи shell‑установників із README.
Щоб знизити ризики, доцільно: мінімізувати використання sudo при роботі з npm; ретельно перевіряти автора, історію та репозиторій пакета; проводити огляд коду інсталяційних скриптів перед запуском; використовувати внутрішні реєстри та дзеркала з попереднім аудитом залежностей; впровадити моніторинг мережевої активності CI/CD‑інфраструктури щодо підозрілих звернень до Telegram, Pastebin‑подібних сервісів і блокчейн‑хостингів; регулярно навчати розробників типових сценаріїв supply chain‑атак.
Сучасні кампанії на кшталт theGhost показують: будь‑який npm‑пакет чи GitHub‑репозиторій потрібно розглядати як потенціальне джерело ризику. Кожен запуск невідомого скрипту з README має сприйматися так само обережно, як відкриття вкладення з листа від незнайомого відправника. Перегляд коду перед виконанням, відмова від введення паролів у сумнівні “майстри інсталяції” та впорядковане управління залежностями здатні зірвати більшість подібних атак ще на старті. Чим раніше організація запровадить ці практики, тим дешевше обійдеться захист її розробників, криптоактивів та бізнес‑критичних систем.