Дослідники з OX Security виявили чотири шкідливі npm-пакети, опубліковані тим самим користувачем, але з принципово різними шкідливими навантаженнями — від клона мережевого черв’я Shai-Hulud до DDoS-ботнета на Go та класичних інфостілерів. Сукупно пакети завантажили понад 3 000 разів. Розробникам, які використовують npm, рекомендується негайно перевірити свої залежності на наявність зазначених бібліотек, видалити їх у разі виявлення та виконати ротацію всіх секретів, які могли бути скомпрометовані.
Шкідливі пакети та їхня функціональність
Усі чотири пакети були опубліковані від імені користувача npm deadcode09284814. Примітно, що, попри спільного автора, кожен пакет має унікальне шкідливе навантаження:
- chalk-tempalte (825 завантажень) — містить практично незмінений клон мережевого черв’я Shai-Hulud, вихідний код якого був опублікований групою TeamPCP. За даними дослідників, зловмисник лише підставив власний C2-сервер і приватний ключ.
- axois-utils (963 завантажень) — доставляє DDoS-ботнет Phantom Bot, написаний на Go, із можливістю флуда за протоколами HTTP, TCP та UDP. Ботнет закріплюється в системі через папку автозавантаження Windows і планувальник завдань.
- @deadcode09284814/axios-util (284 завантаження) — інфостілер, що викрадає SSH-ключі, змінні середовища, хмарні облікові дані, системну інформацію, IP-адресу та дані криптовалютних гаманців.
- color-style-utils (934 завантаження) — аналогічний інфостілер з тим самим набором цільових даних, але з відправкою на інший C2-сервер.
Назви пакетів експлуатують техніку тайпсквотингу: chalk-tempalte імітує популярний chalk-template, а axois-utils — бібліотеку axios. Це класичний прийом атак на ланцюг постачання, розрахований на друкарські помилки розробників під час встановлення залежностей.
Механізм ексфільтрації даних
Пакет chalk-tempalte з клоном Shai-Hulud надсилає викрадені облікові дані на C2-сервер, а також використовує викрадений GitHub-токен для створення публічного репозиторію через API GitHub. Створений репозиторій отримує опис «A Mini Sha1-Hulud has Appeared» — цей рядок може слугувати індикатором компрометації під час пошуку витоків.
За даними OX Security, зловмисник взяв відкритий вихідний код Shai-Hulud і «майже без жодних змін виклав робочу версію з власним C2-сервером». Це демонструє вкрай низький поріг входу для здійснення атак на ланцюг постачання за наявності готового інструментарію.
Індикатори компрометації
- C2-домени:
87e0bbc636999b.lhr[.]life,edcf8b03c84634.lhr[.]life - C2 IP-адрес:
80.200.28[.]28:2222 - Маркер у GitHub: опис репозиторію «A Mini Sha1-Hulud has Appeared»
Контекст загрози
Поява цих пакетів пов’язана з публікацією вихідного коду черв’я Shai-Hulud групою TeamPCP. На думку дослідників, клон у пакеті chalk-tempalte міг бути натхненний конкурсом з атак на ланцюг постачання, анонсованим на форумі BreachForums невдовзі після витоку коду. Втім, цей зв’язок ґрунтується на припущеннях одного джерела і незалежно не підтверджений.
Ключова особливість цього інциденту — мультивекторність. Один зловмисник одночасно розгорнув чотири пакети з різними типами шкідливого ПЗ: черв’як-реплікатор, DDoS-ботнет і два варіанти інфостілера. Це може вказувати як на тестування різних підходів, так і на спробу максимізувати охоплення за мінімальних зусиль.
Оцінка впливу
Основна група ризику — розробники та DevOps-інженери, які працюють з екосистемою npm, особливо ті, хто встановлює залежності без ретельної перевірки назв пакетів. З огляду на те, що інфостілери націлені на SSH-ключі, хмарні облікові дані та змінні середовища, компрометація однієї робочої станції розробника може призвести до каскадного доступу до хмарної інфраструктури, CI/CD-пайплайнів і приватних репозиторіїв організації.
Окрему небезпеку становить використання викрадених GitHub-токенів для створення публічних репозиторіїв — це потенційний канал витоку пропрієтарного коду та секретів.
Рекомендації щодо реагування
- Перевірити залежності усіх проєктів на наявність пакетів
chalk-tempalte,axois-utils,@deadcode09284814/axios-util,color-style-utilsі негайно видалити їх у разі виявлення. - Провести ротацію секретів: SSH-ключі, токени GitHub, хмарні облікові дані (AWS, GCP, Azure), API-ключі, змінні середовища — усе, що могло бути доступним на скомпрометованій машині.
- Перевірити GitHub-акаунти на наявність невідомих репозиторіїв, особливо з описом «A Mini Sha1-Hulud has Appeared».
- Видалити шкідливі конфігурації з IDE та інструментів на кшталт Claude Code, які могли бути модифіковані шкідливим кодом.
- Заблокувати на рівні мережі звернення до доменів
87e0bbc636999b.lhr.life,edcf8b03c84634.lhr.lifeта IP-адреси80.200.28.28. - Перевірити планувальник завдань (Windows) і папку автозавантаження на наявність підозрілих записів, пов’язаних з Phantom Bot.
Цей інцидент наочно демонструє, як публікація вихідного коду шкідливого ПЗ знижує бар’єр для проведення атак на ланцюг постачання. Розробникам слід впровадити автоматичну перевірку залежностей за допомогою інструментів на кшталт npm audit, використовувати lockfile для фіксації версій і розглянути застосування політик обмеження на встановлення пакетів від неперевірених авторів. Організаціям, які виявили будь-який із зазначених пакетів у своїй інфраструктурі, необхідно розглядати інцидент як повну компрометацію робочої станції та діяти відповідно.