# CanisterWorm: samoopakující se červ v dodavatelském řetězci npm po útoku na Trivy
Zlomyslní útočníci po kompromitaci Trivy nasadili červa CanisterWorm, který nakazil desítky npm balíčků. Škodlivý kód využívá ICP kontejnery blockchainu Internet Computer pro odolný C2 server. Jedná se o první zdokumentované zneužití ICP pro přístup k payloadu, což zajišťuje decentralizovanou odolnost vůči blokacím.
Mechanismus nákazy a šíření
Řetězec útoku začíná postinstall háčkem v kompromitovaných balíčcích. Hák spustí loader, který nainstaluje Python backdoor. Backdoor se připojí k ICP kontejneru pro získání URL další užitečné zátěže.
ICP kontejner implementuje metody get_latest_link, http_request a update_link. Poslední z nich umožňuje kontrolérovi měnit URL v reálném čase a aktualizovat spustitelné soubory na všech nakažených hostech bez přerušení provozu.
Backdoor dotazuje kontejner každých 50 minut s falešným User-Agent. Pokud URL obsahuje youtube.com, implant přejde do spícího režimu. Aktivace proběhne přepnutím na skutečný payload; staré procesy pokračují v chodu paralelně.
Trvalost zajišťuje systemd služba „pgmon“, která se maskuje jako monitorování PostgreSQL. Direktiva Restart=always restartuje backdoor 5 sekund po dokončení.
Postižené balíčky:
- 28 v oboru @EmilGroup;
- 16 v oboru @opengov;
- @teale.io/eslint-config;
- @airtm/uuid-base32;
- @pypestream/floating-ui-dom.
Socket zaznamenal 141 škodlivých artefaktů v 66+ unikátních balíčcích.
Evoluce CanisterWorm k plné automatizaci
Ve verzích @teale.io/eslint-config 1.8.11–1.8.12 mutovaný variant integruje krádež npm tokenů do index.js. Funkce findNpmTokens() prohledává prostředí v fázi postinstall, spustí deploy.js jako pozadí pro samoopakující se šíření.
Deploy.js publikuje škodlivé verze do všech dostupných balíčků pomocí ukradených tokenů. Červ, předpokládaně generovaný AI s technologií Vibe, nezakrývá kód.
Aktuální payload v ICP je testovací řetězec „hello123“, což naznačuje fázi ověřování řetězce před plnohodnotným útokem.
Podobný mechanismus s youtube.com kontrolou byl objeven v trojanizovaném Trivy 0.69.4 prostřednictvím sysmon.py, který odkazuje na stejný ICP kontejner.
Srovnání s předchozími kampaněmi
CanisterWorm navazuje na vzorec Shai-Hulud (září): kompromitace tinycolor se rozšířila na 40+ balíčků, poté červ nakazil 300+ prostřednictvím NpmModule.updatePackage a TruffleHog pro validaci účtů.
Sha1-Hulud (listopad) postihl 25 000+ repozitářů: preinstall skript setup_bun.js detekoval prostředí Bun, spustil bun_environment.js pro krádež dat.
| Kampaň | Postižené balíčky | Mechanismus šíření | Nástroje krádeže |
|-------------|-------------------|-----------------------------------|------------------|
| Shai-Hulud | 300+ | NpmModule.updatePackage | TruffleHog |
| Sha1-Hulud | 25 000+ | preinstall/setup_bun.js | bun_environment |
| CanisterWorm| 66+ | postinstall/deploy.js + ICP C2 | findNpmTokens |
Co je důležité
- První využití ICP kontejnerů pro C2 v malwaru: decentralizace ztěžuje takedown.
- Automatické šíření: krádež tokenů + deploy.js mění instalaci na vektor nákazy CI/CD a dev strojů.
- Odolnost: systemd s Restart=always + paralelní procesy + dynamický update_link.
- Maskování: služby pod pgmon, spící režim na youtube.com.
- Rozsah: od Trivy k 141 artefaktům; evoluce k plné automatizaci bez manuálního deploy.
Společnosti Aikido Security, Endor Labs, JFrog a Wiz potvrzují: jedná se o přechod od jednorázové kompromitace k exponenciálnímu chování červa v npm ekosystému.
— Editorial Team
Zatím žádné komentáře.