Zaznamenaná masívna útok na balíky v repozitári NPM, realizovaný použitím nového samoreplikujúceho červa ChainDrop, ktorý vkladal škodlivý softvér do závislostí. V dôsledku útoku bolo publikovaných 2212 škodlivých vydaní pre 444 balíkov. Najpopulárnejšie z kompromitovaných balíkov keyv, flat-cache a file-entry-cache majú týždenne 154, 149.9 a 147.6 milióna stiahnutí.
Načítavač červa bol umiestnený v súboroch setup.mjs a Math_Symbol.js, ktoré sa spúšťali pomocou preinštalačného spracovateľa («preinstall»: «node setup.mjs»), vyvolávaného pri inštalácii postihnutého balíka. Uvedené skripty načítali legitímnu Bun runtime a obfuskovaný kód červa s veľkosťou 710 kB. Po aktivácii červ vykonal vyhľadávanie v systéme a v premenných prostredia tokenov k NPM, PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp, KubernetesK8s a ďalším službám (celkovo sa analyzovalo viac ako 140 súborových ciest, typu ~/ .npmrc), ako aj analyzoval pamäť (cez /proc//mem) prostredia GitHub Actions na prítomnosť tokenov a prihlasovacích údajov.
V prípade zistenia tokenu na pripojenie k adresáru NPM červ automaticky publikoval nové škodlivé vydania pre vyvíjané v aktuálnom prostredí balíky, čím nakazil strom závislostí. Na rozdiel od predtým zisteného červa Shai-Hulud 2.0 v ChainDrop bola implementovaná technika EtherHiding na získanie riadiacich príkazov cez verejný blockchain Ethereum, využitá bola šifrovanie na skrytie prenášaných na server útočníkov dôverných údajov a zabezpečené zavedenie do konfiguračných súborov Claude Code, VS Code a GitHub Copilot pre upevnenie prítomnosti v systéme.
Útok začal kompromitovaním procesu vytvárania vydaní na báze GitHub Actions pre balík keyv, ktorý má 154 milióna stiahnutí týždenne a používa sa ako závislosť v 1703 balíkoch. Útočníci vytvorili novú verziu 6.0.0, do ktorej vložili škodlivý kód, a publikovali ju s použitím mechanizmu «Trusted Publishers» a správnej SLSA-certifikácie. Po publikácii červ napadol mnohé závislé balíky na keyv a postupne začal napádať nepriamé závislosti.
Medzi najpopulárnejšími balíkmi, ktoré boli napadnuté červom, ktorý publikoval pre nich škodlivé vydania, sú:
- flat-cache 6.1.24 (149.8 milióna stiahnutí týždenne);
- file-entry-cache 11.1.6 (147.5 milióna);
- cacheable-request 13.0.20 (33.9 milióna);
- @cacheable/utils 2.5.1 (8.7 milióna);
- cacheable 2.5.1 (7.8 milióna);
- @cacheable/memory 2.2.1 (7.1 mil);
- cache-manager 7.2.10 (4.2 mil);
- @cacheable/node-cache 3.1.2 (1.5 mil).
Zdroj: linux.org.ru
