Міні-черв'як Шай-Хулуд

Зловмисник, відомий як TeamPCP, був пов'язаний зі складною кампанією атак на ланцюг поставок, спрямованою на широко використовувані пакети npm та PyPI, пов'язані з TanStack, UiPath, Mistral AI, OpenSearch, Guardrails AI та кількома іншими екосистемами. Ця операція, пов'язана з кампанією шкідливого програмного забезпечення Mini Shai-Hulud, що розвивається, демонструє значну ескалацію зловживань у ланцюгах поставок програмного забезпечення та методів компрометації на основі ідентифікаційних даних.

Дослідники виявили, що шкідливі npm-пакети були модифіковані для включення обфусцованого компонента JavaScript під назвою router_init.js. Це корисне навантаження профілює заражені середовища та розгортає вдосконалений викрадач облікових даних, спрямований на хмарних провайдерів, криптовалютні гаманці, інструменти розробки штучного інтелекту, платформи обміну повідомленнями, системи CI/CD та середовища GitHub Actions. Викрадені дані переважно передаються до домену filev2.getsession.org.

Використання інфраструктури Session Protocol свідчить про навмисну спробу обійти засоби контролю безпеки підприємства. Оскільки домен належить до децентралізованої платформи обміну повідомленнями, орієнтованої на конфіденційність, він має меншу ймовірність бути заблокованим традиційними мережевими засобами захисту. Як вторинний метод витоку, зашифровані дані надсилаються до контрольованих зловмисниками репозиторіїв через GitHub GraphQL API за допомогою викрадених токенів автентифікації GitHub під ідентифікатором автора claude@users.noreply.github.com.

Механізми збереження даних та розширення можливостей крадіжки облікових даних

Це шкідливе програмне забезпечення пропонує кілька можливостей для забезпечення довгострокового доступу до скомпрометованих середовищ розробки, призначених для забезпечення тривалого доступу до скомпрометованих середовищ розробки. Перехоплювачі для контролю за обробкою даних встановлені в Claude Code та Microsoft Visual Studio Code, що дозволяє шкідливому програмному забезпеченню переживати перезавантаження системи та автоматично перезапускатися щоразу, коли відкриваються IDE.

Крім того, для постійного моніторингу та повторного вилучення токенів GitHub розгорнуто службу gh-token-monitor. У скомпрометовані репозиторії також впроваджуються два шкідливі робочі процеси дій GitHub. Ці робочі процеси серіалізують секрети репозиторію у формат JSON та завантажують дані до зовнішньої кінцевої точки api.masscan.cloud.

Остання компрометація TanStack суттєво відрізняється від попередніх інцидентів у ланцюжку поставок. Замість того, щоб покладатися на перехоплювач попередньої інсталяції, зловмисники вбудували шкідливий файл JavaScript безпосередньо в tar-архіви пакетів, додавши додаткову залежність, пов'язану з пакетом, розміщеним на GitHub. Ця залежність містить перехоплювач життєвого циклу підготовки, який виконує корисне навантаження через середовище виконання Bun.

Заражені троянами пакети Mistral AI застосували старішу стратегію зараження, змінивши файл package.json за допомогою перехоплювача попередньої інсталяції, який викликає вузол setup.mjs. Цей процес завантажує Bun та запускає те саме шкідливе програмне забезпечення для крадіжки облікових даних.

CVE-2026-45321 та зловживання довіреними публікаціями

Компрометація TanStack офіційно відстежена як CVE-2026-45321 та має критичний бал CVSS 9,6. Слідчі підтвердили, що постраждали 42 пакети та 84 версії в екосистемі TanStack.

Аналіз показав, що компрометація виникла внаслідок ланцюгової атаки GitHub Actions, яка використовувала тригер pull_request_target, отруєння кешу GitHub Actions та вилучення токенів OIDC з виконавців GitHub Actions під час виконання. Повідомляється, що зловмисники розміщували шкідливі корисні навантаження через осиротілі коміти у форках GitHub, перш ніж вставляти їх у tar-архіви пакетів npm. Потім зловмисники захопили легітимні робочі процеси TanStack/router для публікації скомпрометованих пакетів з дійсними атестатами походження SLSA.

Ця подія знаменує собою історичну ескалацію атак на ланцюги постачання програмного забезпечення. Шкідливі пакети містили дійсні сигнатури походження SLSA Build Level 3, що зробило це першим задокументованим npm-хробаком, здатним розповсюджувати шкідливі пакети з автентичними атестатами збірок. Згодом кампанія шкідливого програмного забезпечення вийшла за межі TanStack і поширилася на екосистеми, що підтримуються UiPath, DraftLab та іншими розробниками.

Ця операція серйозно зловживає довіреними робочими процесами публікації. Замість безпосередньої красти облікові дані npm, код, контрольований зловмисником, що працює всередині довірених конвеєрів CI/CD, використовував дозволи OIDC для створення короткочасних токенів публікації під час процесу збірки. Це дозволяло публікувати шкідливі пакети через легітимні конвеєри випуску, обходячи звичайні засоби захисту автентифікації.

Саморозмножувальна поведінка черв’яків викликає тривогу

Одним із найнебезпечніших аспектів кампанії Mini Shai-Hulud є її черв'якоподібна модель поширення. Шкідливе програмне забезпечення активно шукає публіковані токени npm, налаштовані з bypass_2fa=true, перераховує пакети, що підтримуються скомпрометованим розробником, та обмінює токени GitHub OIDC на токени публікації для кожного пакета. Цей механізм дозволяє шкідливому програмному забезпеченню поширюватися латерально між екосистемами пакетів, не покладаючись на традиційні методи крадіжки облікових даних.

Атака також використовувала конфігурації довіри на рівні репозиторію в моделі довірених видавців OIDC GitHub. Оскільки довіра надавалася на широкому рівні репозиторію, а не обмежувалася захищеними гілками та певними файлами робочого процесу, шкідливі виконання робочих процесів, ініційовані осиротілими коммітами, могли запитувати легітимні токени публікації npm.

Ще одна тривожна функція пов’язана з розгортанням «автоматичного вимикача». Шкідливе програмне забезпечення встановлює скрипт оболонки, який кожні 60 секунд неодноразово опитує кінцеву точку api.github.com/user, щоб визначити, чи залишаються активними створені зловмисником токени npm. Ці токени мають загрозливий опис IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner.

Якщо захисники скасовують токен через панель керування npm, шкідливе програмне забезпечення запускає деструктивну процедуру, виконуючи rm -rf ~/, фактично перетворюючи інфекцію на шкідливе програмне забезпечення для стирання. Така агресивна поведінка свідчить про суттєву еволюцію в операційній тактиці TeamPCP та демонструє зростаючу складність методів примусового збереження. Тому командам безпеки рекомендується ізолювати та створювати образи заражених систем, перш ніж скасовувати скомпрометовані облікові дані npm.

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

Кампанія вплинула на понад 170 пакетів як у npm, так і в PyPI, що разом склало понад 518 мільйонів завантажень. Слідчі також виявили щонайменше 400 репозиторіїв, створених з використанням викрадених облікових даних, кожен з яких містив фразу «Shai-Hulud: Here We Go Again».

Уражені пакети включають:

guardrails-ai@0.10.1 (PyPI)
mistralai@2.4.6 (PyPI)
@opensearch-project/opensearch@3.5.3, 3.6.2, 3.7.0, 3.8.0
@squawk/mcp@0.9.5
@squawk/weather@0.5.10
@squawk/план польоту@0.5.6
@tallyui/connector-medusa@1.0.1, 1.0.2, 1.0.3
@tallyui/connector-vendure@1.0.1, 1.0.2, 1.0.3

Шкідливе програмне забезпечення також використовує кілька надлишкових каналів витоку даних. Окрім інфраструктури Session Protocol та мертвих сховищ GitHub, викрадені облікові дані передаються через домен git-tanstack.com з помилкою.

Шкідливе програмне забезпечення PyPI впроваджує геозоновану деструктивну логіку

Варіанти шкідливого програмного забезпечення на основі Python, пов'язані зі шкідливими пакетами Mistral AI та Guardrails AI, суттєво відрізняються від корисних навантажень JavaScript, що розповсюджуються через npm. Скомпрометований пакет mistralai PyPI завантажує програму для крадіжки облікових даних з віддаленого хоста 83.142.209.194.

Дослідники виявили, що шкідливе програмне забезпечення Python містить логіку, що враховує особливості країни, розроблену для уникнення виконання в російськомовних середовищах. Воно також включає геозонований деструктивний механізм, який вводить ймовірність виконання rm -rf / один до шести, якщо заражена система, схоже, знаходиться в Ізраїлі або Ірані.

Така поведінка демонструє занепокоєння щодо розвитку в напрямку розгортання деструктивного корисного навантаження з урахуванням регіонів в екосистемах пакетів з відкритим кодом.

Зростаюча загроза атак на ланцюги поставок, що базуються на ідентифікаційних даних

Кампанія Mini Shai-Hulud відображає ширшу трансформацію в сучасних атаках на ланцюги поставок. Замість того, щоб зосереджуватися виключно на компрометації пакетів, зловмисники все частіше націлюються на довірені ідентифікаційні дані CI/CD, робочі процеси публікації та хмарні конвеєри автоматизації.

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

Ключові характеристики, що визначають це нове покоління атак на ланцюги поставок, включають:

  • Зловживання механізмами довіреної публікації та обміну токенами OIDC
  • Поширення через легітимні робочі процеси CI/CD та системи збірки
  • Використання дійсних атестацій SLSA для маскування шкідливих пакетів
  • Багатоканальна фільтрація облікових даних та операції збереження даних
  • Руйнівні механізми відплати, спрямовані на залякування захисників

Розширення кампанії на інструменти штучного інтелекту, автоматизацію підприємств, пошукову інфраструктуру, розробку фронтенду, інструменти, пов'язані з авіацією, та екосистеми CI/CD демонструє, наскільки глибоко взаємопов'язані ланцюги поставок програмного забезпечення. Поведінковий моніторинг під час встановлення пакетів та виконання збірки зараз є дедалі важливішим для виявлення загроз, які на перший погляд здаються законними.

В тренді

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

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