Самораспространяющаяся малварь Shai-Hulud вернулась в npm, скомпрометировав более 25 000 разработчиков всего за три дня. Сотни зараженных версий популярных пакетов (включая Zapier, ENS Domains, PostHog, Postman и AsyncAPI) были размещены в npm для кражи секретов разработчиков и CI/CD.

По данным аналитиков из компании Wiz, по состоянию на 24 ноября 2025 года более 25 000 репозиториев на GitHub опубликовали украденные у жертв секреты, и еще примерно 1000 новых репозиториев добавлялись каждые 30 минут.

Издание Bleeping Computer сообщает, что на GitHub можно было найти около 27 600 результатов, связанных с этой атакой. В свою очередь, исследователи Wiz обнаружили около 350 уникальных учетных записей npm, задействованных в новой вредоносной кампании.

Эксперты объясняют, что репозитории на GitHub указывают на скомпрометированных разработчиков, которые использовали троянизированные пакеты npm и учетные данные GitHub в своей среде.

Хотя представители GitHub активно удаляют репозитории со скомпрометированными данными, червь распространяется быстрее.

Напомним, что червь Shai-Hulud впервые был замечен в середине сентября 2025 года, скомпрометировав 187 пакетов в npm. Червь использовал легитимный инструмент TruffleHog (сканер для поиска секретов, который предназначен для разработчиков и ИБ-специалистов) для поиска и кражи секретов разработчиков.

Так, червь стремился создать публичную копию любых приватных репозиториев скомпрометированного пользователя, чтобы получить доступ к жестко закодированным секретам и похитить исходный код. Все вновь созданные репозитории получали приставку «migration» к названию.

Кроме того, в зараженные версии пакетов внедрялся механизм для самостоятельного распространения малвари, нацеленный на другие пакеты пострадавших мейнтейнеров. Вредонос загружал каждый пакет мейнтейнера, модифицировал его package.json, внедрял скрипт bundle.js, переупаковывал архив и публиковал снова, тем самым «обеспечивая автоматическую троянизацию нижестоящих пакетов», как объясняли специалисты.

В новой версии червя (Shai-Hulud 2.0) ключевым отличием является выполнение вредоносного кода на стадии pre-install, что значительно увеличивает риски.

Технический анализ малвари, выполненный специалистами Step Security, показывает, что малварь состоит из двух файлов: setup_bun.js (дроппер, замаскированный под инсталлятор Bun) и bun_environment.js (10 МБ), который использует сложные техники обфускации: hex-кодированную строку с тысячами записей, отдельный цикл для антианализа, а также обфусцированную функцию для извлечения каждой строки в коде.

Теперь после заражения малварь выполняет пять стадий атаки, включая извлечение секретов (токены GitHub и npm, учетные данные AWS, GCP, Azure)  и деструктивную перезапись всего домашнего каталога жертвы при невыполнении четырех необходимых условий: если малварь не может пройти аутентификацию на GitHub, создать репозиторий, найти токены GitHub и npm.

В итоге украденные секреты публикуются в автоматически сгенерированные репозитории GitHub с описанием «Sha1-Hulud: The Second Coming» («Sha1-Hulud: Второе пришествие»).

По информации исследователей Aikido Security, им удалось выявить около 500 скомпрометированных пакетов, а специалисты Koi Security нашли более 800 вредоносных пакетов (считая все версии). Среди пострадавших:

  • Zapier — официальный тулкит для интеграций;
  • ENS Domains — инструменты и библиотеки для работы с кошельками, DApps, биржами и приложением ENS Manager для обработки имен .eth, преобразования их в адреса Ethereum, связывания содержимого IPFS, проверки имен и взаимодействия с официальными смарт-контрактами ENS;
  • AsyncAPI, PostHog, Postman — популярные инструменты с тысячами еженедельных загрузок.

Исследователи призывают разработчиков очистить кеш npm и откатиться к версиям пакетов, опубликованным до 21 ноября 2025 года. Необходимо немедленно заменить все секреты и токены CI/CD, а также вручную проверить репозитории на наличие новых публикаций и подозрительных коммитов с упоминанием «hulud». Также по возможности рекомендуется отключить postinstall-скрипты в средах непрерывной интеграции.

Отметим, что после недавних атак Shai-Hulud и S1ngularity разработчики GitHub пообещали усилить меры безопасности, в том числе требовать прохождения двухфакторной аутентификации при локальных публикациях, ограничить «срок жизни» PAT-токенов до семи дней, отказаться от временных одноразовых паролей (TOTP) в пользу аутентификации на основе FIDO и так далее. Однако эти меры внедряются постепенно.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии