В последние годы атаки на цепочку поставок программного обеспечения становятся всё более изощрёнными и опасными. Особенно подвержена угрозам экосистема JavaScript и менеджер пакетов NPM, активно используемые разработчиками во всём мире. В сентябре 2025 года обнаружена новая угроза - вредоносный код Shai-Hulud, который представляет собой саморазмножающегося червя и поражает сотни пакетов в NPM. Его уникальность заключается в способности самостоятельно распространяться внутри экосистемы, красть конфиденциальные данные и значительно усложнять задачи безопасности для разработчиков и организаций. Shai-Hulud стал результатом успешной атаки на цепочку поставок, когда злоумышленник смог внедрить вредоносный скрипт в многочисленные популярные пакеты.
Среди заражённых были как узнаваемые проекты, например @ctrl/tinycolor, так и несколько репозиториев, связанных с компанией CrowdStrike. Этот червь активируется на этапе пост-установки пакета, когда автоматически запускается скрипт bundle.js, ответственный за выполнение вредоносных операций. Главной целью Shai-Hulud является добыча учётных данных, как локальных, так и связанных с GitHub, NPM, облачными провайдерами AWS и Google Cloud Platform. Обнаружив токены доступа (например, ghp_ и gho_), червь пытается проникнуть в репозитории пользователя на GitHub и получить доступ к секретам.
Более того, он внедряет вредоносное автоматическое действие (GitHub Action), которое запускается при пушах кода и позволяет поддерживать доступ злоумышленника в системе. Очень опасным для компаний является тот факт, что Shai-Hulud изменяет видимость репозиториев, делая приватные проекты публичными. Для маскировки он создаёт дубликаты репозиториев с добавлением суффикса "-migration" в названии, сохраняя структуру и содержимое исходного кода. Это позволяет не только распространять вредоносный код, но и приводить к утечке конфиденциальных данных и интеллектуальной собственности. Особое внимание заслуживает механизм распространения червя внутри самой экосистемы NPM.
После похищения учётных данных разработчика, Shai-Hulud использует функцию getPackagesByMaintainer(), чтобы получить список всех пакетов, поддерживаемых данным пользователем. Затем все они подвергаются заражению посредством функции updatePackage(), которая внедряет запуск вредоносного скрипта при установке пакета. Для повышения эффективности поиска секретов червь загружает и использует инструмент trufflehog - известное средство для обнаружения утечек конфиденциальных данных. Он проводит глубокий поиск по локальной файловой системе, а также запрашивает метаданные с облачных Instance Metadata Service (IMDS) для выявления облачных ключей. В конце концов собранные чувствительные данные код шифрует в base64 и загружает в специально созданный на GitHub репозиторий под названием Shai-Hulud, что демонстрирует острую целенаправленность атаки.
Интересной особенностью этого червя является то, что он сильно эволюционировал, превзойдя известные ранее атаки, такие как Nx в августе 2025 года. Именно возможность саморепликации внутри NPM придаёт Shai-Hulud потенциал быстрой и масштабной экспансии по всему экосистеме разработчиков. Защита от такого рода угроз требует современного и многоуровневого подхода. Одним из наиболее эффективных инструментов для обнаружения активности Shai-Hulud является Sysdig Secure, который базируется на поведении процессов в рантайме. Система может обнаружить аномалии, связанные с выполнением вредоносных скриптов и подозрительными сетевыми обращениями, включая трафик к веб-сервису webhook[.
]site, часто используемому для утечки данных. Кроме того, Sysdig Secure интегрируется с платформой GitHub и с помощью специальных правил может выявлять подозрительное создание публичных репозиториев с характерными именами, такими как Shai-Hulud или репозитории с суффиксом "-migration". Это позволяет реагировать на атаку быстро и с минимальными потерями. Пользователям Falco, другому популярному решению для мониторинга и обнаружения угроз, также доступны плагины для GitHub, которые улучшают видимость активности на уровне репозиториев и помогают выявлять побочные эффекты внедрения червя. Важно выстроить систему контроля за всеми установленными пакетами, использовать версионное закрепление (version pinning), чтобы избежать незапланированных обновлений и проникновения вредоносных кодов.
Также рекомендуется немедленно менять учётные данные в случае компрометации, тщательно контролировать логи и активность на рабочих станциях разработчиков и серверных средах, а при необходимости блокировать доступ к менеджеру пакетов NPM в рамках корпоративной инфраструктуры. Shai-Hulud подчёркивает реальность и опасность современных атак на цепочку поставок программного обеспечения. Угроза исходит не только от внешних злоумышленников, но и от комплексных вредоносных решений, способных к самовоспроизведению и проникновению на глубинном уровне. Успех в борьбе с такими атаками зависит от своевременного обнаружения, использования продвинутых средств мониторинга и готовности к быстрому реагированию при выявлении вредоносной активности. В будущем развитие подобных технологий, способных самостоятельно распространяться через публичные и приватные пакеты, требует от разработчиков, компаний и сообществ разработчиков более глубокого внимания к безопасности и строгого контроля над всеми используемыми компонентами.
Инвестиции в инструменты мониторинга, аудит исходного кода и безопасность процесса разработки становятся ключевыми факторами снижения киберрисков, сохраняя целостность и доверие к программному обеспечению. Таким образом, Shai-Hulud - это не просто очередной вредоносный скрипт, а серьёзный вызов, который демонстрирует, насколько быстро меняется ландшафт информационной безопасности. Многоуровневая защита, постоянный мониторинг и грамотная организация процессов контроля крайне необходимы для сохранения безопасности проектов и защиты конфиденциальных данных в современном цифровом мире. .