Шкідливе програмне забезпечення PhantomRaven
Дослідники з кібербезпеки виявили дуже активну атаку на ланцюг поставок програмного забезпечення, спрямовану на екосистему npm. Було виявлено понад 100 шкідливих пакетів, здатних красти конфіденційні облікові дані розробника, включаючи токени автентифікації, секрети CI/CD та облікові дані GitHub, безпосередньо з уражених машин.
Кампанія під кодовою назвою PhantomRaven вперше з'явилася у серпні 2025 року. Відтоді вона розширилася до 126 npm-бібліотек та зібрала понад 86 000 встановлень, що демонструє швидке поширення та впровадження цих шкідливих пакетів.
Зміст
Шкідливі пакети, що пролітають непоміченими
Деякі з позначених пакетів включають:
- op-cli-installer – 486 завантажень
- невикористані-імпорти – 1350 завантажень
- badgekit-api-client – 483 завантажень
- polyfill-corejs3 – 475 завантажень
- eslint-comments – 936 завантажень
Особливо підступним PhantomRaven робить використання віддалених динамічних залежностей (RDD). Замість отримання коду з офіційного реєстру npm, шкідливі пакети вказують на користувацьку URL-адресу HTTP (packages.storeartifact.com). Це дозволяє npm отримувати залежності з ненадійного зовнішнього джерела, фактично обходячи захист npmjs.com.
Традиційні сканери безпеки та інструменти аналізу залежностей не виявляють ці RDD, оскільки автоматизовані системи бачать пакети як такі, що мають «0 залежностей».
Як працює атака
Ланцюг атаки починається, щойно розробник встановлює один із, здавалося б, безпечних пакетів. Ключові елементи включають:
Виконання хука перед встановленням : пакет містить сценарій життєвого циклу перед встановленням, який автоматично виконує основне корисне навантаження.
Віддалене отримання корисного навантаження : Скрипт отримує шкідливу залежність із сервера, контрольованого зловмисником.
Викрадення даних : Після запуску шкідливе програмне забезпечення сканує середовище розробника на наявність адрес електронної пошти, збирає деталі середовища CI/CD, бере відбитки пальців системи (включаючи публічну IP-адресу) та надсилає дані на віддалений сервер.
Зловмисник може змінювати корисне навантаження за бажанням, спочатку надаючи нешкідливий код, щоб уникнути виявлення, перш ніж надсилати шкідливі оновлення, як тільки пакет буде прийнятий.
Використання сліпих зон людини та штучного інтелекту
Вибір назв пакетів є навмисним. Зловмисник використовує тактику, відому як «недбале використання», коли великі мовні моделі (LLM) галюцинують неіснуючі, але правдоподібні назви пакетів. Розробники можуть довіряти цим пакетам через їхні реалістичні назви, не підозрюючи про приховану загрозу.
Як зазначають дослідники, PhantomRaven підкреслює зростаючу витонченість зловмисників:
- Віддалені динамічні залежності уникають статичного аналізу.
- Назви пакетів, згенеровані штучним інтелектом, використовують довіру розробників.
- Скрипти життєвого циклу виконуються автоматично без втручання користувача.
Ця кампанія підкреслює, як зловмисники знаходять нові способи приховування коду в екосистемах з відкритим вихідним кодом, використовуючи прогалини в традиційних інструментах безпеки.
Чому npm є головною ціллю
Низький рівень тертя екосистеми npm для публікації пакетів у поєднанні з автоматичним виконанням скриптів перед встановленням, встановлення та після встановлення робить її головною ціллю. Зловмисники можуть приховувати шкідливу поведінку в скриптах життєвого циклу, часто без відома розробника, що ілюструє необхідність підвищеної пильності та надійних практик безпеки в сучасних середовищах розробки.