Un vierme auto-replicant a infectat 187 de pachete în NPM

Atacul asupra pachetelor de mentenanță din depozitul NPM a trecut la un nou nivel. Pe lângă utilizarea de software malițios pentru interceptarea plăților și a informațiilor confidențiale, atacatorii au început să implementeze un vierme în pachetele compromise pentru a automatiza inserarea de software malițios în dependențe. Utilizarea viermilor a fost raportată după compromiterea pachetului NPM @ctrl/tinycolor, care are 2,2 milioane de descărcări săptămânale și este folosit ca dependență directă în 964 de pachete. Ca urmare a activității viermilor, atacul a afectat 187 de pachete pentru care au fost generate versiuni malițioase (477 de versiuni malițioase).

În cadrul unui nou atac, după ce au obținut parametrii contului de mentenanță prin phishing, atacatorii publică o versiune a pachetului cu un vierme care se activează la instalarea pachetului compromis ca parte a dependențelor. După activare, viermele caută acreditive în mediu, încărcând și rulând utilitarul TruffleHog. Dacă se descoperă un token de conexiune la directorul NPM, viermele publică automat o nouă versiune malițioasă și afectează în lanț arborele dependențelor. Pe lângă tokenul de acces la NPM, viermele salvează cheile de acces la GitHub și la serviciile cloud AWS, Azure și GCP (Google Cloud Platform), precum și alte date confidențiale pe care le poate detecta scanner-ul TruffleHog.

Versiunile malițioase sunt generate pentru cele 20 de pachete cele mai populare, la care are acces tokenul NPM găsit. Funcționalitatea de publicare a versiunii este implementată sub forma funcției NpmModule.updatePackage, care încarcă arhiva sursă a pachetului, modifică numărul versiunii și adaugă un hook postinstall în fișierul package.json, înlocuiește handler-ul bundle.js, reambalează pachetul și îl publică. Este suportată funcționarea atât pe Linux, cât și pe macOS.

Creeper-ului i s-a atribuit numele cod Shai-Hulud (un vierme gigantic menționat în romanul Dune). Datele de autentificare găsite în sistem sunt publicate pe GitHub prin crearea unor repozitorii cu numele Shai-Hulud (de exemplu, „B611/Shai-Hulud”), precum și reflectate sub formă codificată în logurile GitHub Actions. În repozitoriul creat este plasat un fișier data.json, în care se află un șir cu informații despre sistem, variabile de mediu și chei de acces interceptate, codificat prin metoda base64. În CI bazat pe GitHub, pentru a transmite informații către un gazdă externă, viermele creează un handler GitHub Actions (.github/workflows/shai-hulud-workflow.yml). Judecând după toate indiciile, atacul nu se limitează la cele 187 de pachete menționate, deoarece pe GitHub continuă să apară noi repozitorii cu numele Shai-Hulud și fișierul data.json.

Un vierme auto-replicant a infectat 187 de pachete în NPM

Printre altele, ca urmare a activității viermului, au fost afectate 25 de pachete de la CrowdStrike, care dezvoltă instrumente pentru protecția împotriva atacurilor prin dependențe (Supply Chain). Potrivit CrowdStrike, pachetele compromite nu au fost utilizate pe platforma Falcon iar atacul nu s-a extins la clienți. De asemenea, s-a aflat că valul anterior de publicare a versiunilor malițioase în NPM, care a avut loc fără vierm, a afectat proiectul gemini-cli, dezvoltat de Google.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster