Исследователи безопасности из нескольких компаний зафиксировали новую волну атак на цепочку поставок, связанную с семейством вредоносного ПО Mini Shai-Hulud, Miasma и Hades. Скомпрометированы как минимум 23 npm-пакета экосистем LeoPlatform и RStreams, а также Go-модуль проекта Verana Blockchain. Кампания нацелена на кражу учётных данных разработчиков и мейнтейнеров с последующим распространением через реестры пакетов, репозитории GitHub и CI/CD-конвейеры. Организациям, использующим указанные пакеты в облачных и серверлесс-рабочих нагрузках, необходимо немедленно проверить версии зависимостей и провести ротацию всех потенциально скомпрометированных токенов.
Затронутые пакеты и масштаб компрометации
По данным Socket, в новой волне атак затронуты следующие npm-пакеты с конкретными троянизированными версиями:
- [email protected], [email protected]
- [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
- [email protected], [email protected], [email protected], [email protected], [email protected]
- [email protected], [email protected], [email protected], [email protected]
- [email protected], [email protected], [email protected]
- [email protected], [email protected], [email protected]
- Go-модуль: github.com/verana-labs/[email protected]
Как сообщает StepSecurity, предположительно, атакующие скомпрометировали npm-аккаунт мейнтейнера LeoPlatform и использовали его токен для публикации троянизированных версий в течение шестисекундного окна — что свидетельствует о высокой степени автоматизации процесса.
Техническая анатомия атаки
Вредоносные npm-пакеты применяют нестандартный подход к выполнению кода при установке. Вместо типичных хуков жизненного цикла в package.json они используют файл binding.gyp — механизм сборки нативных модулей Node.js, который запускает произвольный код в момент установки пакета. Эта техника позволяет обойти инструменты статического анализа, ориентированные на проверку секции scripts в package.json.
Цепочка заражения выглядит следующим образом:
- binding.gyp запускает JavaScript-загрузчик при установке пакета
- Загрузчик проверяет наличие среды выполнения Bun и устанавливает её при отсутствии
- Запускается основная полезная нагрузка — стилер, собирающий секреты, учётные данные и токены
- Вредонос внедряет в GitHub Actions рабочий процесс с именем «Run Copilot», который извлекает секреты CI/CD-окружения из памяти раннера
- Собранные данные шифруются и выгружаются в публичные GitHub-репозитории
По данным исследователей, вредоносное ПО содержит механизм отключения для систем с русской локалью (так называемый killswitch) и проверяет наличие средств защиты конечных точек перед выполнением основной нагрузки.
Индикаторы компрометации
Исследователи выявили несколько характерных строковых маркеров, используемых кампанией:
- «Alright Lets See If This Works» — описание GitHub-репозиториев, используемых как точки сброса украденных данных. На момент публикации исследования 559 репозиториев соответствовали этому описанию
- «RevokeAndItGoesKaboom» — текущий маркер ретрансляции токенов, заменивший ранее использовавшийся «IfYouInvalidateThisTokenItWillNukeTheComputerOfTheOwner»
- «firedalazer» — строка в коммитах GitHub, по которой вредонос каждый час опрашивает платформу для получения и выполнения варианта Hades
Связь с компрометацией codfish/semantic-release-action
Маркер «RevokeAndItGoesKaboom» связывает эту кампанию с недавней компрометацией GitHub Action codfish/semantic-release-action. Согласно отчёту StepSecurity, 24 июня 2026 года в 15:39:06 UTC атакующий выполнил force-push вредоносного коммита и перенаправил несколько тегов версий на этот коммит. Все рабочие процессы, использовавшие скомпрометированные теги после этого момента, выполняли полезную нагрузку атакующего непосредственно в раннере GitHub Actions.
Полезная нагрузка в этом случае, по данным исследователей, похищала OIDC-токены GitHub, собирала персональные токены доступа (PAT), шифровала материал с помощью AES-128-GCM и пыталась распространить бэкдор в другие доступные репозитории. Использование общих маркеров указывает на принадлежность всех этих инцидентов к единому операционному кластеру или общей инструментальной базе.
Расширение на экосистему Go
Компрометация Go-модуля Verana Blockchain знаменует расширение кампании за пределы npm. Однако, как отмечает Socket, этот образец не использует binding.gyp и не опирается на механизмы разрешения модулей или сборки Go. Вместо этого угроза реализуется через выполнение кода в контексте исходного репозитория: разработчик, клонирующий или открывающий репозиторий в доверенной IDE или среде AI-ассистента для кодирования, может непреднамеренно активировать вредоносную нагрузку через конфигурацию проекта.
Это принципиальный сдвиг в тактике: Miasma перемещается между экосистемами пакетов, атакуя рабочие процессы разработчиков, а не только хуки установки менеджеров пакетов.
Оценка воздействия
Как отмечает JFrog, набор пакетов Leo/RStreams связан с облачными и серверлесс-рабочими нагрузками. Компрометация этих пакетов потенциально затрагивает:
- Рабочие станции разработчиков
- CI/CD-системы и конвейеры развёртывания
- Приложения на базе AWS
- GitHub-репозитории и учётные данные для публикации пакетов
- Нижестоящих потребителей скомпрометированных пакетов
Ключевая опасность кампании — не в радикальной новизне полезной нагрузки, а в способности Shai-Hulud последовательно перемещаться между легитимными экосистемами пакетов, меняя индикаторы ровно настолько, чтобы сделать устаревшие детекции неэффективными.
Рекомендации по реагированию
- Немедленная проверка зависимостей: сверьте используемые версии всех перечисленных пакетов с указанными скомпрометированными версиями. Используйте
npm lsилиgo list -m allдля инвентаризации - Ротация секретов: при обнаружении скомпрометированных версий выполните ротацию всех npm-токенов, GitHub PAT, OIDC-токенов, AWS-ключей и иных секретов, доступных из затронутых окружений
- Аудит GitHub Actions: проверьте рабочие процессы на наличие workflow с именем «Run Copilot» или ссылок на codfish/semantic-release-action. Закрепите все используемые Actions на конкретные хеши коммитов вместо тегов версий
- Поиск IOC: проверьте логи на наличие строк «Alright Lets See If This Works», «RevokeAndItGoesKaboom» и «firedalazer» в сетевом трафике и конфигурациях репозиториев
- Мониторинг binding.gyp: настройте оповещения в инструментах анализа зависимостей на появление файлов binding.gyp в пакетах, которые не являются нативными модулями
- Проверка IDE-окружений: при работе с клонированными репозиториями из непроверенных источников отключите автоматическое выполнение конфигурационных скриптов проекта в IDE и AI-ассистентах
Кампания Shai-Hulud/Miasma демонстрирует устойчивую модель самораспространяющейся атаки на цепочку поставок, где каждый скомпрометированный аккаунт разработчика становится вектором для заражения новых экосистем. Приоритетное действие для команд, использующих пакеты LeoPlatform, RStreams или Verana Blockchain, — немедленная фиксация версий зависимостей, ротация всех секретов из потенциально затронутых CI/CD-сред и переход на закрепление GitHub Actions по хешам коммитов вместо мутабельных тегов.