Несколько поставщиков средств безопасности (Aikido, HelixGuard, Koi Security, Socket, Step Security и Wiz) подали сигнал тревоги о второй волне атак на реестр npm, напоминающих атаку Shai-Hulud. Новая кампания в цепочке поставок получила название Sha1-Hulud и затронула более 25 000 репозиториев через npm с кражей учетных данных на этапе preinstall. Вредоносные (троянизированные) пакеты npm загрузили в реестр между 21 и 23 ноября 2025 года.

«Кампания внедряет новый вариант вируса, который выполняет вредоносный код на этапе preinstall хука, что значительно повышает потенциальный риск компрометации как в средах сборки, так и во время выполнения скриптов», — сообщили исследователи Wiz Хила Рамати, Мерав Бар, Гал Бенмоха и Гили Тикочински.

Подобно атаке Shai-Hulud, выявленной в сентябре 2025 года, нынешняя версия также публикует украденные секреты в GitHub, но теперь с описанием репозитория «Sha1-Hulud: The Second Coming» — «Sha1-Hulud: Второе пришествие».

Пример заражённых репозиториев
Пример заражённых репозиториев


В предыдущей волне атак злоумышленники компрометировали легитимные пакеты, внедряя в репозитории вредоносный код. Вредонос искал секреты на машинах разработчиков с помощью сканера учётных данных TruffleHog и передавал их на нужный сервер.

Вирус (Sha1-Hulud) обладает способностью саморазмножаться. Он публикует себя в другие npm-пакеты.

В последнем наборе атак злоумышленники добавляли preinstall скрипт (setup_bun.js) в список пакетов (package.json), который настроен на скрытую установку или обнаружение среды выполнения Bun и запуск вложенного вредоносного скрипта (bun_environment.js).

Вредоносный payload выполняет следующие действия:

  • Вредоносный код регистрирует заражённую машину в качестве self-hosted runner с именем SHA1HULUD и добавляет workflow с именем .github/workflows/discussion.yaml. Воркфлоу, в свою очередь, содержит уязвимость инъекции и запускается исключительно на self-hosted runners. Это позволяет злоумышленнику выполнять любые произвольные команды на заражённых машинах, открывая обсуждения (discussions) в репозитории GitHub.

  • Вредоносная программа получает все секреты, определённые в секции GitHub secrets, загружает их как артефакт в файл с названием actionsSecrets.json в репозиториях для утечки данных. Затем скачивает этот файл на заражённую машину и удаляет workflow, чтобы скрыть свою активность.

Схема работы
Схема работы

При выполнении вредоносный код скачивает и запускает TruffleHog, чтобы просканировать локальную машину и украсть конфиденциальную информацию, например, NPM Tokens, учётные данные AWS/GCP/Azure и переменные окружения, отметил Helixuard.

Wiz сообщил, что обнаружил более 25 000 пострадавших репозиториев, принадлежащих примерно 350 уникальным пользователям, и это число продолжает расти.

«Эта кампания продолжает тенденцию компрометации цепочки поставок npm, ссылаясь на наименование и тактику Shai-Hulud, хотя возможно участие разных злоумышленников, — говорится в заявлении Wiz. — Угроза использует скомпрометированные аккаунты мейнтейнеров для публикации троянизированных версий легитимных npm-пакетов, которые во время установки выполняют кражу и передачу учетных данных».

Компания Koi Security охарактеризовала вторую волну как гораздо более агрессивную. Если не удается пройти аутентификацию или установить устойчивое присутствие, вредонос пытается уничтожить весь домашний каталог жертвы, включая все файлы, доступные для записи. Эта функция, похожая на стирающую (wiper), срабатывает только при выполнении следующих условий:

  • недоступна аутентификация в GitHub;

  • невозможно создать репозиторий в GitHub;

  • не получается получить GitHub токен;

  • не найден npm токен.

«Другими словами, если Sha1-Hulud не удаётся украсть учётные данные, получить токены или обеспечить канал для передачи данных, он уничтожает данные, — отметили исследователи безопасности Юваль Ронен и Идан Дардикман. — Это знаменует собой существенный прогресс по сравнению с первой волной, поскольку тактика злоумышленников сменяется от чистого хищения данных к карательному саботажу».

Вредонос также пытается получить root-привилегии с помощью Docker: монтирует корневую файловую систему устройства в привилегированном контейнере и копирует вредоносный файл sudoers, для беспарольного root-доступа.

Чтобы снизить риски заражения, рекомендуется: 

  • сканировать все конечные точки на наличие скомпрометированных пакетов;

  • немедленно удалить заражённые версии; 

  • обновить все учётные данные; 

  • проверять репозитории на механизмы скрытого присутствия, просматривая директиву .github/workflows/ на предмет подозрительных файлов, таких как shai-hulud-workflow.yml, или неожиданных веток.

// статья активно дополняется.


НЛО прилетело и оставило здесь промокод для читателей нашего блога:

-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (0)