Эти коммиты не были пустяковыми. В репозитории 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. Эти файлы созданы так, чтобы выполняться автоматически, как только разработчик клонирует и открывает скомпрометированный репозиторий в своей среде разработки . Фактически, сам процесс чтения кода — даже без установки пакета — мог запустить вредоносную нагрузку.
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, получать действительные сертификаты подписи и создавать вредоносные пакеты с проходящими проверку аттестациями происхождения
.
А затем, 12 мая 2026 года, TeamPCP опубликовала полный исходный код Mini Shai-Hulud на GitHub под лицензией MIT . Вместе с ним группа объявила на форуме BreachForums конкурс, предложив $1 000 в Monero за самую масштабную атаку на цепочку поставок, проведённую с использованием их фреймворка
. Посыл был предельно ясен: инструментарий стал общедоступным.
Уже через пять дней один из пользователей npm загрузил четыре вредоносных пакета, включая практически дословный клон червя Shai-Hulud. OX Security проанализировала клон и обнаружила, что он был взят «почти без каких-либо изменений», отличаясь лишь конечной точкой управления (C2) и приватным ключом самого злоумышленника . Индустриализация атак на цепочки поставок началась, а защитники об этом ещё не знали.
Семнадцать дней спустя после публикации исходников 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», призывая британские компании сделать сертификацию Cyber Essentials стандартным требованием для поставщиков
.
Рекомендации NCSC были сосредоточены на трёх категориях: наглядность (аудит обновлений пакетов, выявление неожиданных зависимостей и ведение спецификации программного обеспечения), оценка (анализ практик безопасности поставщиков) и действия (обеспечение безопасности цепочки поставок как приоритета на уровне совета директоров) . Правительство Великобритании также официально включилось в решение проблемы кампании TeamPCP, что отражает сдвиг, при котором безопасность зависимостей с открытым исходным кодом теперь рассматривается как вопрос национальной политики кибербезопасности, а не личной гигиены разработчика.
Атака Miasma — не самая крупная утечка в истории цепочек поставок и не самая изощрённая. Но она, возможно, наиболее поучительна для понимания того, что будет дальше.
Во-первых, фреймворки атак с открытым исходным кодом вооружили экосистему. Решение TeamPCP опубликовать Mini Shai-Hulud под лицензией MIT — это продуманная стратегия: вооружить армию подражателей, создать хаос в атрибуции и заставить защитников обороняться от неизвестного числа независимых акторов, использующих один и тот же сценарий . Это не теория — активность подражателей была задокументирована в течение пяти дней после публикации, а атрибуция Miasma остаётся неопределённой спустя несколько недель
.
Во-вторых, npm-хук preinstall является системной уязвимостью. Атака многократно эксплуатирует функцию, предназначенную для легитимных сценариев сборки, но не имеющую достаточных средств контроля выполнения скриптов жизненного цикла . Появление
binding.gyp в качестве дополнительного вектора исполнения в варианте Phantom Gyp демонстрирует, что злоумышленники активно ищут новые жизненные циклы для захвата . Ограничения на уровне реестра для
preinstall и других скриптов жизненного цикла теперь являются неотложным приоритетом.
В-третьих, ИИ-ассистенты для написания кода стали поверхностью для исполнения. Miasma — одна из первых задокументированных атак на цепочку поставок, нацеленная на Claude Code, Cursor, Copilot и Gemini CLI как на механизмы доставки полезной нагрузки через вредоносные файлы правил . Когда разработчик клонирует репозиторий и открывает его, инструменты на базе ИИ, призванные помочь ему писать более качественный код, могут вместо этого выполнить вредоносный код. Этот вектор, вероятно, будет расширяться по мере того, как разработка с использованием ИИ станет стандартным рабочим процессом.
В-четвёртых, конвейеры CI/CD теперь являются самыми ценными целями. Способность червя извлекать OIDC-токены из памяти раннера и создавать пакеты с действительными аттестациями происхождения SLSA означает, что стандартная криптографическая проверка — золотой стандарт целостности цепочки поставок — может быть преодолена . Если проверки происхождения пройдены, у защитников нет сигнала, чтобы отметить компрометацию. Защита конвейеров CI/CD от раскрытия учётных данных больше не является опциональной.
Наконец, государственное вмешательство достигло сферы управления зависимостями с открытым исходным кодом. Обновлённое руководство NCSC — это не рекомендация, а конкретный запрос к британским компаниям встроить безопасность цепочки поставок в процесс закупок . Организации, которые относятся к проверке зависимостей как к разовому аудиту, а не как к непрерывному процессу, работают с устаревшим, до-Miasma-уровнем безопасности.
Comments
0 comments