Útok na obslužné balíky v repozitári NPM dosiahol novú úroveň. Okrem používania škodlivého softvéru na zachytávanie platieb a citlivých informácií prešli útočníci k vkladaniu červa do skompromitovaných balíkov na automatizáciu vkladania škodlivého softvéru do závislostí. Použitie červa bolo zaznamenané po skompromitovaní NPM balíka @ctrl/tinycolor, ktorý má 2,2 milióna týždenných stiahnutí a je používaný ako priama závislosť v 964 balíkoch. V dôsledku aktivity červa útok zasiahol 187 balíkov, pre ktoré boli vytvorené škodlivé vydania (477 škodlivých vydaní).
Počas nového útoku, keď útočníci získali parametre účtu sprievodcu výsledkom phishingu, zverejňuje útočník vydanie balíka s červom, ktorý sa aktivuje pri inštalácii skompromitovaného balíka v závislostiach. Po aktivácii červ vyhľadáva prihlasovacie údaje v aktuálnom prostredí, načítava a spúšťa utilitu TruffleHog. V prípade, že objaví pripojovací token k adresáru NPM, červ automaticky zverejní nové škodlivé vydanie a reťazovo zasahuje do stromu závislostí. Okrem prístupového tokenu k NPM si červ uchováva prístupové kľúče k GitHubu a cloudovým službám AWS, Azure a GCP (Google Cloud Platform), ako aj ďalšie citlivé údaje, ktoré dokáže objaviť skener TruffleHog.
Škodlivé vydania sú vytvárané pre 20 najpopulárnejších balíkov, ku ktorým má prístup nájdený NPM token. Funkcionalita publikovania vydania je implementovaná vo forme funkcie NpmModule.updatePackage, ktorá načíta zdrojový archív balíka, zmení číslo verzie a pridá postinstall hook do súboru package.json, vloží spracovateľa bundle.js, zabalí balík do nového formátu a zverejní ho. Podporuje sa prevádzka na Linuxe a macOS.
Červu bolo pridelené kódové meno Shai-Hulud (obrovský červ spomínaný v románe Duna). Nájdené poverenia v systéme sú umiestnené na GitHub cez vytvorenie repozitárov s názvom Shai-Hulud (napríklad „B611/Shai-Hulud“), a tiež sa v kódovanej podobe odrážajú v záznamoch GitHub Actions. V vytváranom repozitári sa umiestni súbor data.json, v ktorom je prítomný riadok s kódovanými informáciami o systéme, premenných prostredia a zachytených prístupových kľúčoch, použitou metódou base64. V CI na báze GitHub červ vytvára spracovateľ GitHub Actions (.github/workflows/shai-hulud-workflow.yml) na prenos informácií na externý hostiteľ. Zjavne útok nie je obmedzený na uvedených 187 balíkov, pretože na GitHub stále pribúdajú nové repozitáre s názvom Shai-Hulud a súborom data.json.

Medzi iným, v dôsledku aktivity červa bolo postihnutých 25 balíkov spoločnosti CrowdStrike, ktorá vyvíja nástroje na ochranu pred útokmi cez závislosti (Supply Chain). Podľa vyhlásenia CrowdStrike boli skompromitované balíky nepoužívané na platforme Falcon a útok sa nešíril medzi zákazníkmi. Okrem toho sa dozvedelo, že predchádzajúca vlna publikovania škodlivých verzií v NPM, ktorá prebiehala bez červa, zasiahla projekt gemini-cli vyvíjaný spoločnosťou Google.
Zdroj: opennet.ru
