Добавить в корзинуПозвонить
Найти в Дзене
CISOCLUB

Shai-Hulud: червь npm, подрывающий цепочку поставок и крадущий GitHub-токены

Новая волна supply chain-атак в мире open source связана с червём под названием Shai-Hulud, который целенаправленно атакует пакеты в экосистеме npm. По данным исследования, вредоносное ПО распространяется через заражённые пакеты, выполняет код в момент установки и быстро реплицируется, публикуя заражённые версии в тех пакетах, на обновление которых у жертвы есть разрешение. Shai-Hulud реализует несколько механизмов, которые делают его особенно опасным для разработчиков и организаций: При активации червь формирует временный bash-скрипт, который запускает процесс сбора секретов. Для поиска и извлечения секретов злоумышленники используют TruffleHog — инструмент, сканирующий репозитории на наличие конфиденциальных данных. Вредоносная модификация включает загрузку последней версии TruffleHog, адаптированной к текущей операционной системе жертвы. Ключевой вектор саморепликации — модификация файла package.json. Червь добавляет вредоносную команду postinstall, которая вызывает скомпрометирован
Оглавление
   Источник: securelist.com
Источник: securelist.com

Новая волна supply chain-атак в мире open source связана с червём под названием Shai-Hulud, который целенаправленно атакует пакеты в экосистеме npm. По данным исследования, вредоносное ПО распространяется через заражённые пакеты, выполняет код в момент установки и быстро реплицируется, публикуя заражённые версии в тех пакетах, на обновление которых у жертвы есть разрешение.

Суть угрозы

Shai-Hulud реализует несколько механизмов, которые делают его особенно опасным для разработчиков и организаций:

  • Выполнение вредоносного кода во время установки пакета (install-time execution).
  • Автоматическая публикация заражённых версий в других пакетах с доступом у скомпрометированного пользователя — механизм быстрого самораспространения.
  • Целевое извлечение секретов из окружения жертвы, в том числе токенов доступа, связанных с текущим пользователем GitHub.

Как это работает (технические детали)

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

Ключевой вектор саморепликации — модификация файла package.json. Червь добавляет вредоносную команду postinstall, которая вызывает скомпрометированный скрипт, обычно в форме node bundle.js. В одном из зафиксированных эпизодов необычная команда предварительной установки в пакете ngx-bootstrap версии 18.1.4 послужила триггером: код запускался ещё до стандартного процесса установки, что позволило инициировать заражение раньше, чем ожидали разработчики.

В одном из случаев в package.json был обнаружен строковый триггер: "postinstall": "node bundle.js".

Масштабы и потенциальное воздействие

По текущим оценкам, Shai-Hulud затронул более 500 популярных пакетов, включая библиотеки, связанные с компаниями наподобие CrowdStrike. Это говорит о широком охвате и высоком риске для проектов, которые полагаются на эти зависимости. Вредонос может повлиять как на отдельные приложения, так и на инфраструктуру организаций, если в цепочке поставок присутствуют заражённые модули.

Индикаторы компрометации (IoC) и признаки атаки

  • Неожиданное появление или изменение поля postinstall в package.json.
  • Вызовы к загрузке и запуску бинарей/скриптов TruffleHog в процессе установки.
  • Публикация новых версий пакетов от аккаунтов, у которых могли быть скомпрометированы токены или права.
  • Необычная активность публикаций в зависимостях, имеющих доступ к вашим проектам.

Рекомендации по снижению рисков

Чтобы минимизировать вероятность заражения и распространения подобных угроз, эксперты советуют:

  • Ограничить разрешения у учетных записей, которые публикуют пакеты: предоставить доступ только тем, кому он действительно необходим.
  • Использовать специализированные инструменты мониторинга компонентов с открытым исходным кодом и сканирования supply chain (SCA — software composition analysis).
  • Проверять изменения в package.json в CI/CD и блокировать ненадёжные пост- или preinstall-скрипты.
  • Изолировать окружения сборки и запускать установки в песочницах, где доступ к секретам ограничен.
  • Переиздавать и ревокировать токены, если есть подозрение на компрометацию учётной записи.
  • Настроить мониторинг публикаций зависимостей и реагирование на аномалии в репозиториях и реестрах пакетов.

Особенно важно комбинировать технологические меры с повышением осведомлённости разработчиков о рисках исполнения кода на этапе установки и о признаках компрометации.

Вывод

Инцидент с Shai-Hulud подчёркивает уязвимость цепочек поставок ПО и необходимость проактивных мер защиты в экосистемах вроде npm. Контроль доступа, мониторинг изменений в зависимостях и ограничение прав — ключевые элементы защиты от подобных червей. Без оперативного внедрения этих практик уязвимые проекты рискуют стать рассадниками дальнейших атак.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Оригинал публикации на сайте CISOCLUB: "Shai-Hulud: червь npm, подрывающий цепочку поставок и крадущий GitHub-токены".

Смотреть публикации по категориям: Новости | Мероприятия | Статьи | Обзоры | Отчеты | Интервью | Видео | Обучение | Вакансии | Утечки | Уязвимости | Сравнения | Дайджесты | Прочее.

Подписывайтесь на нас: VK | Rutube | Telegram | Дзен | YouTube.