Самораспространяющийся вредонос ChainDrop скомпрометировал более 1300 пакетов в реестре npm, на которые суммарно приходится около 2 млрд установок в месяц. Заражение затронуло такие популярные библиотеки, как Keyv, Cacheable, flat-cache и file-entry-cache.

Сразу несколько ИБ-компаний сообщают, что за этой кампанией стоит червь под названием ChainDrop, основанный на исходном коде Shai-Hulud, а общее количество скомпрометированных пакетов уже превышает 1300 и продолжает расти.

По данным специалистов компании Aikido, эта атака на цепочку поставок началась после компрометации аккаунта мейнтейнера Keyv на GitHub, а после распространилась на пакеты, связанные с крупными компаниями и сервисами, включая Deliveroo, Ornikar, OneReach, Picsart, Qlik и ServiceTitan.

Исследователи пишут, что злоумышленники добавляли вредоносные файлы прямо в основные ветки проектов, после чего создавали новые релизы. Так как пакеты собирались и публиковались через пайплайны GitHub Actions, зараженные релизы сохраняли действительную provenance-метку и выглядели легитимными.

Атакующие включали в состав пакетов загрузчик setup.mjs и обфусцированный инфостилер Math_Symbol.js (в некоторых случаях полезная нагрузка называлась math_init.js), а в package.json появлялся preinstall-скрипт node setup.mjs.

В результате вредонос запускался автоматически при выполнении npm install, еще до завершения установки пакета. Загрузчик скачивал официальный рантайм Bun с GitHub, запускал с его помощью инфостилер, а затем удалял временную директорию.

Малварь ChainDrop собирает с зараженных машин переменные окружения, локальные конфигурационные файлы и учетные данные разработчиков. В частности, вредонос охотится за токенами GitHub и npm, секретами GitHub Actions, ключами AWS, данными Kubernetes и HashiCorp Vault, паролями от баз данных, приватными ключами, а также учетными данными Stripe, Slack, Twilio, Azure и Google Cloud.

Кроме того, червь ищет в зараженных системах и CI/CD-раннерах учетные данные, открывающие доступ к другим репозиториям и пакетам npm. Благодаря этому ChainDrop способен самостоятельно заражать проекты других мейнтейнеров и продолжать атаку без прямого участия операторов.

Как отмечают исследователи, перед кражей токены npm проверяются в реальном времени через эндпоинт registry.npmjs[.]org/-/whoami. Затем все собранные в системе данные шифруются и отправляются в публичный репозиторий GitHub с описанием «Shai-Hulud: Here We Go Again». По информации аналитиков компании Wiz, также для эксфильтрации используется домен npm-cache[.]com, который можно считать надежным индикатором компрометации.

Эксперты предупреждают, что после установки зараженной версии пакета любую рабочую станцию или CI/CD-раннер следует считать полностью скомпрометированными, даже если зависимость уже удалена. В этом случае администраторам советуют пересобрать системы с нуля или восстановить их из доверенных бэкапов, сменить токены, а также проверить репозитории на предмет подозрительных коммитов.

Атака еще продолжается, поэтому число пострадавших, скорее всего, будет увеличиваться. Списки скомпрометированных пакетов и индикаторы компрометации уже подготовили специалисты компаний WizStepSecurityAikidoSocket и Ox Security.

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

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

    Подписаться

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