Материал Shai-Hulud: Whoever controls your package registry controls your pipeline, опубликованный The New Stack, объясняет, почему контроль над реестром пакетов означает контроль над конвейером поставки.
В сентябре 2025 года расследование Unit 42 зафиксировало самораспространяющегося червя Shai-Hulud, скомпрометировавшего сотни программных пакетов. Червь использовал украденный npm-токен, чтобы внедрять вредоносный код в другие пакеты того же разработчика и публиковать скомпрометированные версии без прямого вмешательства атакующего.
В кампании Shai-Hulud 2.0 выполнение перенесли на этап pre-install, что расширило затронутую поверхность на машины разработчиков и CI/CD-конвейеры. Этот перенос позволял обходить статическое сканирование на поздних этапах сборки.
Основной файл bun_environment.js был больше 10 МБ, сильно обфусцирован и запускался в отдельном фоновом процессе, создавая видимость штатного завершения установки. Если вредоносная программа не могла украсть учётные данные, получить токены или организовать канал эксфильтрации, она пыталась уничтожить домашний каталог жертвы.
Проверка утверждений:
- The New Stack опубликовал аналитический материал о том, почему контроль над реестром пакетов означает контроль над конвейером поставки. (подтверждено самой публикацией: доказательство; «Shai-Hulud: Whoever controls your package registry controls your pipeline»)
- В сентябре 2025 года Unit 42 расследовала самораспространяющегося червя Shai-Hulud, скомпрометировавшего сотни программных пакетов. (подтверждено первоисточником: доказательство; «In September, Unit 42 investigated the novel, self-replicating worm as “Shai-Hulud,” responsible for the compromise of hundreds of software packages.»)
- Вредоносные версии пакетов собирали чувствительные учётные данные, создавали публичный GitHub-репозиторий Shai-Hulud в аккаунте жертвы и выкладывали туда секреты. (подтверждено первоисточником: доказательство; «The malware programmatically creates a new public GitHub repository named “Shai-Hulud” under the victim’s account and commits the stolen secrets to it, exposing them publicly.»)
- Червь использовал украденный npm-токен, чтобы внедрять вредоносный код в другие пакеты того же разработчика и публиковать скомпрометированные версии без прямого вмешательства атакующего. (подтверждено первоисточником: доказательство; «Using the stolen npm token, the malware authenticates to the npm registry as the compromised developer. It then identifies other packages maintained by that developer, injects malicious code into them, and publishes the new, compromised versions to the registry.»)
- В кампании Shai-Hulud 2.0 выполнение перенесли на этап pre-install, что расширило затронутую поверхность на машины разработчиков и CI/CD-конвейеры. (подтверждено первоисточником: доказательство; «Execution during pre-install (instead of post-install): Dramatically widened the area of impact across developer machines and continuous integration and continuous delivery (CI/CD) pipelines.»)
- Перенос выполнения на pre-install позволял кампании обходить статическое сканирование на поздних этапах сборки. (подтверждено первоисточником: доказательство; «It effectively bypasses static scanning tools that inspect code during later build stages»)
- Если вредоносная программа не могла украсть учётные данные, получить токены или организовать канал эксфильтрации, она пыталась уничтожить домашний каталог жертвы. (подтверждено первоисточником: доказательство; «If the malware fails to steal credentials, obtain tokens or secure any exfiltration channel (i.e., it cannot authenticate to GitHub, create a repository or find GitHub/npm tokens) it attempts to destroy the victim’s entire home directory.»)
- Основной файл bun_environment.js в кампании Shai-Hulud 2.0 был больше 10 МБ, сильно обфусцирован и запускался в отдельном фоновом процессе, создавая видимость штатного завершения установки. (подтверждено первоисточником: доказательство; «The core payload, bun_environment.js , is a massive file (over 10 MB) that uses extreme obfuscation techniques. It delays full execution on developer machines by forking itself into a detached background process. This allows the original install process to exit cleanly, giving the user the illusion of a normal installation.»)
- Shai-Hulud 2.0 внедрил бэкдоры в 796 пакетов. (в первоисточнике не найдено: доказательство)
- Mini Shai-Hulud целенаправленно искал учётные данные Claude, Codex, Cursor и Gemini. (подтверждено только публикацией-переносчиком: доказательство; «By spring of 2026, its offspring, Mini Shai-Hulud, had evolved from hunting generic developer secrets to specifically targeting credentials belonging to Claude, Codex, Cursor, and Gemini»)
- ChainDrop за менее чем четыре часа скомпрометировал более 400 пакетов через легитимный криптографически подписанный конвейер релиза, поэтому отравленные версии получили действующие SLSA provenance attestations. (подтверждено только публикацией-переносчиком: доказательство; «In less than four hours, it compromised more than 400 packages by riding a legitimate, cryptographically signed release pipeline, which granted each poisoned version a valid SLSA provenance attestation.»)
- Командная инфраструктура ChainDrop была размещена в смарт-контракте Ethereum. (подтверждено только публикацией-переносчиком: доказательство; «Even its command infrastructure was parked inside an Ethereum smart contract»)
Публикации:
Первоисточники:
оценка 78.4 · тип analysis · ревизия 1 · истории st-2tdrci