- Автор темы
- #1
Исследователи обнаружили компрометацию более 180 npm-пакетов, которые оказались поражены самораспространяющейся малварью, нацеленной на заражение других пакетов. Кампания получила название Shai-Hulud и, вероятно, началась со взлома пакета @Ctrl/tinycolor, который скачивают более 2 млн раз в неделю.
Название Shai-Hulud было взято из файлов воркфлоу shai-hulud.yaml, которые использует малварь. Это отсылка к гигантским песчаным червям из «Дюны» Фрэнка Герберта.
Первым на проблему обратил внимание разработчик Дэниел Перейра (Daniel Pereira), который предупредил сообщество о масштабной атаке на цепочку поставок.
Специалисты компаний Socket и Aikido уже расследуют этот инцидент, и в настоящее время они обнаружили, что компрометация затронула не менее 187 пакетов. Отмечается, что среди пострадавших числятся несколько пакетов, опубликованных npmjs-аккаунтом ИБ-компании CrowdStrike.
По словам ReversingLabs, мейнтейнера techsupportrxnt можно считать «нулевым пациентом». И ключом к раскрытию источника атаки является то, каким именно образом была скомпрометирована учетная запись techsupportrxnt. Не исключено, что все началось с фишингового письма или эксплуатации уязвимого GitHub Action.
В скомпрометированные версии пакетов внедряется механизм для самостоятельного распространения малвари, нацеленный на другие пакеты пострадавших мейнтейнеров.
Вредонос загружал каждый пакет мейнтейнера, модифицировал его package.json, внедрял скрипт bundle.js, переупаковывал архив и публиковал снова, тем самым «обеспечивая автоматическую троянизацию нижестоящих пакетов», как пишут исследователи Socket.
Скрипт bundle.js использует TruffleHog — легитимный сканер для поиска секретов, который предназначен для разработчиков и ИБ-специалистов. TruffleHog позволяет обнаруживать репозиториях и других источниках случайно утекшую конфиденциальную информацию вроде API-ключей, паролей и токенов. Вредоносный скрипт злоупотреблял инструментом для поиска токенов и облачных учетных данных.
Из-за этой особенности Дэниел Перейра предполагает, что эта вредоносная кампания может быть связана с другой массовой атакой на цепочку поставок — s1ngularity, которая совсем недавно привела к раскрытию данных 2180 учетных записей и затронула 7200 репозиториев.
Название Shai-Hulud было взято из файлов воркфлоу shai-hulud.yaml, которые использует малварь. Это отсылка к гигантским песчаным червям из «Дюны» Фрэнка Герберта.
Первым на проблему обратил внимание разработчик Дэниел Перейра (Daniel Pereira), который предупредил сообщество о масштабной атаке на цепочку поставок.
Разработчик пытался привлечь внимание команды безопасности GitHub через закрытые каналы, поскольку целью злоумышленников было «множество репозиториев», а публичное раскрытие информации об атаке могло создать дополнительные риски. Однако связаться с GitHub оказалось слишком сложно, и Перейра заявил о проблеме открыто.«Прямо сейчас, пока вы это читаете, в npm распространяется вредоносное ПО», — сообщил Перейра и призвал всех воздержаться от установки последних версий @ctrl/tinycolor.
Специалисты компаний Socket и Aikido уже расследуют этот инцидент, и в настоящее время они обнаружили, что компрометация затронула не менее 187 пакетов. Отмечается, что среди пострадавших числятся несколько пакетов, опубликованных npmjs-аккаунтом ИБ-компании CrowdStrike.
В свою очередь, специалисты компании ReversingLabs описывают этот инцидент как «первый в своем роде самовоспроизводящийся червь, поражающий пакеты npm и ворующий облачные токены». Исследователи полагают, что отправной точкой для атаки стал пакет rxnt-authentication, вредоносная версия которого была опубликована в npm 14 сентября 2025 года.«После обнаружения нескольких вредоносных пакетов в публичном npm-реестре (стороннем опенсорсном репозитории), мы быстро удалили их и превентивно обновили наши ключи, — сообщили представители CrowdStrike. — Эти пакеты не используются Falcon, наша платформа не пострадала, а клиенты остаются защищенными. Мы работаем с npm и проводим тщательное расследование».
По словам ReversingLabs, мейнтейнера techsupportrxnt можно считать «нулевым пациентом». И ключом к раскрытию источника атаки является то, каким именно образом была скомпрометирована учетная запись techsupportrxnt. Не исключено, что все началось с фишингового письма или эксплуатации уязвимого GitHub Action.
В скомпрометированные версии пакетов внедряется механизм для самостоятельного распространения малвари, нацеленный на другие пакеты пострадавших мейнтейнеров.
Вредонос загружал каждый пакет мейнтейнера, модифицировал его package.json, внедрял скрипт bundle.js, переупаковывал архив и публиковал снова, тем самым «обеспечивая автоматическую троянизацию нижестоящих пакетов», как пишут исследователи Socket.
Скрипт bundle.js использует TruffleHog — легитимный сканер для поиска секретов, который предназначен для разработчиков и ИБ-специалистов. TruffleHog позволяет обнаруживать репозиториях и других источниках случайно утекшую конфиденциальную информацию вроде API-ключей, паролей и токенов. Вредоносный скрипт злоупотреблял инструментом для поиска токенов и облачных учетных данных.

Также червь стремится создать публичную копию всех приватных репозиториев скомпрометированного пользователя, чтобы получить доступ к жестко закодированным секретам и похитить исходный код. Вновь созданные репозитории получают приставку «migration» к названию.«Скрипт проверяет и применяет учетные данные разработчиков и CI, создает воркфлоу GitHub Actions внутри репозиториев и отправляет результаты в жестко закодированный веб-хук (https://webhook[.]site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7)», — объясняют аналитики Socket.
Из-за этой особенности Дэниел Перейра предполагает, что эта вредоносная кампания может быть связана с другой массовой атакой на цепочку поставок — s1ngularity, которая совсем недавно привела к раскрытию данных 2180 учетных записей и затронула 7200 репозиториев.
«Учитывая большое количество взаимозависимостей пакетов в экосистеме npm, сложно предсказать, кто будет скомпрометирован следующим и насколько далеко может распространиться Shai-Hulud. В настоящее время мы выявили сотни npm-пакетов, зараженных этим червем», — сообщают эксперты ReversingLabs.