Ці коміти не були тривіальними. Всередині репозиторію RedHatInsights/javascript-clients зловмисник впровадив шкідливий робочий процес GitHub Actions, який запитував токени ідентифікації OIDC та виконував обфусковане корисне навантаження . Це навантаження опублікувало 32 троянізовані версії пакетів у офіційному просторі npm
@redhat-cloud-services, кожна з яких мала маркер кампанії «Miasma: The Spreading Blight» . Оскільки пакети пройшли через легітимний конвеєр CI/CD Red Hat і використовували дійсні робочі процеси публікації OIDC, вони мали справжні підписи походження SLSA — тобто стандартні перевірки безпеки позначали їх як перевірені
.
Шкідливі пакети мали в середньому близько 80 000 щотижневих завантажень . Щойно розробник виконував
npm installpreinstall . Цей код збирав облікові дані з AWS, Azure, GCP, GitHub, HashiCorp Vault, конфігурацій Kubernetes, SSH-ключів та локальних середовищ розробника
. Потім він використовував викрадені секрети для впровадження шкідливого коду в інші проєкти, до яких жертва мала доступ, перетворюючи кожну скомпрометовану робочу станцію розробника та конвеєр CI/CD на новий вузол розповсюдження
.
Найновішою поведінкою хробака було не просто викрадення облікових даних — це експлуатація інструментів штучного інтелекту для кодування. Варіанти Miasma розміщували шкідливі файли правил, націлені на Claude Code, Cursor, Gemini CLI та GitHub Copilot. Ці файли розроблені для автоматичного виконання, коли розробник просто клонує та відкриває скомпрометований репозиторій у своєму IDE . По суті, сам акт читання коду — без встановлення жодного пакета — міг запустити корисне навантаження.
5 червня 2026 року хробак дістався Microsoft. Шкідливий коміт під назвою «Switched DataConverter to OrchestrationContext [skip ci]» з'явився в репозиторії Azure/durabletask, з метаданими, зміненими так, щоб відображати дату коміту як 9 березня 2020 року, ймовірно, щоб уникнути підозр . Цей коміт став плацдармом. Звідти хробак поширився на 73 репозиторії в чотирьох організаціях Microsoft на GitHub: Azure, Azure-Samples, Microsoft і MicrosoftDocs
. Серед уражених проєктів була ключова інфраструктура, як-от
azure-functions-host та вся лінійка Durable Task для .NET, Go, Java, JavaScript, MSSQL і Python .
Щоб зрозуміти Miasma, потрібно зрозуміти рішення TeamPCP зробити свою зброю відкритою.
TeamPCP (також відстежується як Replicating Marauder, TGR-CRI-1135 та UNC6780) — це хакерська група, яка протягом 2025 та початку 2026 року вдосконалювала сімейство хробаків, що саморозповсюджуються в ланцюгах постачання. Їхні операції досягли піку 11 травня 2026 року, коли вони опублікували 373 шкідливі версії пакетів у 172 npm та PyPI пакетах, із загальною кількістю завантажень понад 518 мільйонів . Лише ця кампанія продемонструвала здатність хробака витягувати токени OIDC з пам'яті GitHub Actions runner, отримувати дійсні сертифікати підпису та створювати шкідливі пакети з дійсними атестаціями походження
.
Потім, 12 травня 2026 року, TeamPCP опублікувала повний вихідний код Mini Shai-Hulud на GitHub під ліцензією MIT . Разом з цим група оголосила конкурс на BreachForums, пропонуючи $1,000 у Monero за найбільшу атаку на ланцюг постачання, проведену за допомогою їхнього фреймворку
. Повідомлення було чітким: інструментарій тепер є публічною власністю.
Протягом п'яти днів один користувач npm надіслав чотири шкідливі пакети, включно з майже дослівним клоном хробака Shai-Hulud. OX Security проаналізувала клон і виявила, що він був скопійований «майже без жодних змін», відрізняючись лише власним командним центром та закритим ключем зловмисника . Індустріалізація атак на ланцюги постачання почалася, а захисники про це ще не знали.
Через сімнадцять днів після публікації коду Miasma вразила Red Hat. Код шкідливого ПЗ є структурним варіантом Mini Shai-Hulud, де оригінальні посилання на «Дюну» замінені на брендування з грецької міфології . Але техніка виконання — скрипт
preinstall, обфускований JavaScript-код, збір облікових даних та саморозповсюдження через CI/CD — є практично ідентичною .
Важливо, що дослідники не можуть остаточно приписати Miasma самій TeamPCP. Cloud Security Alliance прямо зазначає, що «не можна виключати акторів-наслідувачів, які використовують ту саму публічно оприлюднену кодову базу» . Unit 42 від Palo Alto Networks підкріплює це твердженням, що «атрибуція залишається невизначеною», оскільки публічний випуск вихідного коду означає, що будь-який компетентний актор може відтворити ту саму атаку
. Ця неоднозначність не є виноскою — це продумана особливість стратегії відкритого коду, покликана заповнити екосистему шумом і перевантажити зусилля з атрибуції
.
Фреймворк з відкритим кодом не просто уможливив Miasma — він породив хвилю негайної активності наслідувачів.
3 червня 2026 року з'явився новий варіант під назвою Phantom Gyp, який охопив 57 додаткових npm-пакетів, включно з @vapi-ai/server-sdk та ai-sdk-ollama . Цей варіант використовував файл
binding.gyp для виконання шкідливого коду під час встановлення пакета, оминаючи вже відомий шлях виконання postinstall . Дослідники OpenSourceMalware підтвердили, що ця кампанія була першим підтвердженим використанням фреймворку TeamPCP у реальних умовах, хоча TeamPCP ніколи не брала на себе відповідальність
.
До 8 червня SANS Internet Storm Center повідомив, що ширша популяція зловмисників тепер активно використовує фреймворк Mini Shai-Hulud, а численні незалежні зловмисники запускають власні кампанії . Шкідливе ПЗ поширилося за межі npm: дослідники виявили варіант на Ruby, який, схоже, був перекладений за допомогою великої мовної моделі (LLM) — грубий, але функціональний порт, який не був частиною оригінального відкритого коду
. Швидкість адаптації, від npm до кількох екосистем, підкреслила, наскільки кардинально змінилася поверхня атаки.
Реакція на Miasma була надзвичайно швидкою та надзвичайно публічною, що відображало як масштаб компрометації, так і залучення власників основних платформ.
Відповідь GitHub була миттєвою. Платформа відключила понад 70 репозиторіїв, що належать Microsoft, приблизно за 105 хвилин після виявлення 5 червня 2026 року . Відключені репозиторії охоплювали організації Azure, Azure-Samples, Microsoft та MicrosoftDocs
. Протягом кількох днів усі репозиторії були відновлені та оголошені чистими, хоча деякі уражені конвеєри CI/CD Microsoft були порушені під час відключення
.
Microsoft опублікувала детальний технічний аналіз через свою команду Threat Intelligence 2 червня 2026 року, що охоплював повний ланцюг атаки від початкового зламу Red Hat до експлуатації CI/CD . Microsoft також зробила надзвичайно нетиповий крок, видаливши 73 власні репозиторії, повідомивши BleepingComputer, що рішення було прийнято через побоювання, що репозиторії поширюють «потенційно шкідливий контент»
. Порушення внутрішніх робочих процесів CI/CD Microsoft продемонструвало, що навіть власник платформи не має імунітету до наслідків хробака в ланцюзі постачання.
Red Hat опублікувала бюлетень безпеки RHSB-2026-006 1 червня 2026 року, підтвердивши компрометацію та заявивши, що витік обмежився внутрішніми інструментами розробки і не вплинув на продукти Red Hat Enterprise Linux або OpenShift . Компанія відкликала всі уражені версії npm-пакетів та повідомила подальших споживачів.
Національний центр кібербезпеки Великої Британії (NCSC) перетворив цей інцидент на ширший політичний поштовх. 4 червня 2026 року NCSC опублікував допис у блозі, прямо закликаючи організації переглянути свої залежності з відкритим кодом та зменшити вразливість до атак на ланцюги постачання . Час був невипадковим — допис безпосередньо посилався на кампанію Miasma як на каталізатор
. 9 червня 2026 року NCSC випустив оновлений посібник із кібербезпеки для ланцюгів постачання «Cyber Essentials Supply Chain Playbook», закликаючи британські компанії зробити сертифікацію Cyber Essentials стандартною вимогою для постачальників
.
Керівництво NCSC зосередилося на трьох категоріях: видимість (аудит оновлень пакетів, виявлення неочікуваних залежностей та ведення специфікації програмного забезпечення), оцінка (перевірка практик безпеки постачальників) та дія (забезпечення безпеки ланцюга постачання як пріоритету на рівні ради директорів) . Уряд Великої Британії також офіційно залучився до кампанії TeamPCP, що відображає зсув, коли безпека залежностей з відкритим кодом розглядається вже як питання національної кібербезпеки, а не гігієни окремого розробника.
Атака Miasma не є найбільшим порушенням ланцюга постачання в історії, ані найвитонченішим. Але вона може бути найбільш повчальною для розуміння того, що буде далі.
По-перше, фреймворки атак з відкритим кодом перетворили екосистему на зброю. Рішення TeamPCP опублікувати Mini Shai-Hulud під ліцензією MIT є продуманою стратегією: озброїти армію наслідувачів, створити хаос в атрибуції та змусити захисників боротися з невідомою кількістю незалежних акторів, що використовують один і той самий сценарій . Це не теоретично — активність наслідувачів була задокументована протягом п'яти днів після випуску, а атрибуція самої Miasma залишається невизначеною через тижні
.
По-друге, хук preinstall в npm є системною вразливістю. Атака неодноразово використовує функцію, призначену для легітимних скриптів збірки, але яка не має достатніх засобів контролю за виконанням скриптів життєвого циклу . Поява
binding.gyp як додаткового вектора виконання у варіанті Phantom Gyp демонструє, що зловмисники активно шукають нові життєві цикли для захоплення . Обмеження на рівні реєстру для
preinstall та інших скриптів життєвого циклу тепер є нагальним пріоритетом.
По-третє, AI-асистенти кодування стали поверхнею для виконання. Miasma є однією з перших задокументованих атак на ланцюг постачання, яка спеціально націлена на Claude Code, Cursor, Copilot та Gemini CLI як механізми доставки корисного навантаження через шкідливі файли правил . Коли розробник клонує репозиторій і відкриває його, інструменти ШІ, призначені допомагати писати кращий код, натомість можуть виконувати шкідливий код. Цей вектор, ймовірно, розширюватиметься, оскільки розробка за допомогою ШІ стає стандартним робочим процесом.
По-четверте, конвеєри CI/CD тепер є найціннішими цілями. Здатність хробака витягувати токени OIDC з пам'яті runner і створювати пакети з дійсними атестаціями походження SLSA означає, що стандартна криптографічна перевірка — золотий стандарт цілісності ланцюга постачання — може бути подолана . Якщо перевірки походження проходять успішно, у захисників немає сигналу, щоб позначити компрометацію. Захист конвеєрів CI/CD від витоку облікових даних більше не є опціональним.
Нарешті, державне втручання досягло управління залежностями з відкритим кодом. Оновлений посібник NCSC не є рекомендаційним — це конкретний запит до британських компаній вбудувати безпеку ланцюга постачання в процеси закупівель . Організації, які ставляться до перевірки залежностей як до одноразового аудиту, а не безперервного процесу, працюють із безпековою позицією, що була до Miasma.
Comments
0 comments