Atacul Shai-Hulud compromite pachetul @ctrl/tinycolor și infiltrează ecosistemul npm printr-un mecanism de tip vierme

Când o bibliotecă utilizată de milioane este compromisă, repercusiunile se propagă rapid în întreg ecosistemul: vestea despre atacul asupra pachetelor npm a pornit de la compromiterea @ctrl/tinycolor și în câteva ore s-a extins la zeci, apoi sute de pachete, inclusiv unele publicate sub numele CrowdStrike pe npmjs.com. În trecut, astfel de atacuri asupra lanțurilor de aprovizionare software au arătat cât de mult depinde industria de încrederea în pachetele terțe și de procesele de publicare; acum aceeași vulnerabilitate a fost exploatată din nou, cu o componentă automată care răspândește modificările malițioase.

Primul semnal de alarmă a fost tras de un inginer backend, Daniel Pereira, care a avertizat comunitatea să nu instaleze versiunile recente ale @ctrl/tinycolor, pachet cu peste 2 milioane de descărcări săptămânale. El a încercat inițial să contacteze GitHub pe canale mai discrete, considerând că expunerea publică a detaliilor ar putea pune în pericol utilizatori și proiecte. Socket, o companie de securitate specializată în lanțuri de aprovizionare software, a demarat investigația și a raportat la început 40 de pachete compromise; pe măsură ce alte echipe, printre care Aikido și StepSecurity, au analizat codul și mecanica atacului, numărul a urcat la cel puțin 187. Analizele tehnice includ fragmente de cod deobfuscate și diagrame care confirmă modul de operare al campaniei.

Campania, denumită Shai-Hulud după fișierele shai-hulud.yaml găsite în pachetele compromise și inspirată din viermele uriaș din seria Dune, folosește un mecanism de tip vierme care se autoreplică. Versiunile compromise descarcă alte pachete ale aceluiași maintainer, modifică package.json, injectează un fișier bundle.js, reîmpachetează și republică pachetul, troianizând astfel automat lanțul descendent. Bundle.js abuzează de TruffleHog, un instrument legitim folosit pentru detectarea secretelor expuse în repo-uri, pentru a scana gazda în căutare de tokenuri și credențiale cloud. Dacă găsește credențiale valide ale dezvoltatorilor sau ale pipeline-urilor CI, scriptul le folosește pentru a crea workflow-uri GitHub Actions neautorizate în repouri și pentru a exfiltra rezultatele către un webhook hardcodat.

Printre pachetele afectate s-au aflat și unele publicate de contul crowdstrike-publisher. CrowdStrike a comunicat public că a eliminat pachetele malițioase din registrul npm, a rotit cheile publice și că pachetele respective nu sunt utilizate în senzorul Falcon; platforma lor principală, susțin ei, nu a fost compromisă. Investigația este în curs, iar ei colaborează cu npm pentru clarificarea situației.

Contextul temporal al atacului e semnificativ: în această lună au apărut deja alte campanii ample, inclusiv atacul denumit s1ngularity, în care peste 2.000 de conturi GitHub au fost vizate de malware-uri asistate de AI. De asemenea, menținătorii unor pachete populare precum chalk și debug au fost recent victime ale phishing-ului, cu efecte similare asupra proiectelor lor. Din cauza acestor incidente, impactul poate ajunge la instrumente utilizate pe scară largă: Google a avertizat că utilizatorii care au instalat sau actualizat Gemini CLI prin npm în fereastra de atac pot fi afectați, deși codul sursă al CLI-ului și serverele Google nu au fost compromise.

Ce implică toate acestea pentru dezvoltatori și organizații? Atacurile evidențiază fragilitatea lanțului de aprovizionare software: un maintainer compromis sau un pull request malițios pot contamina sute de proiecte downstream. Măsuri practice recomandate includ auditarea mediilor și a logurilor pentru semne de compromitere, rotirea tuturor secretelor și tokenurilor CI/CD, verificarea arborilor de dependențe pentru versiuni malițioase, pinarea dependențelor la release-uri de încredere și limitarea permisiunilor pentru cheile de publicare. Aceste acțiuni reduc expunerea la compromisuri la nivel de pachet.

Shai-Hulud a scos din nou în evidență riscul concentrării pe câteva pachete foarte utilizate, precum tinycolor, și a demonstrat metode moderne de exfiltrare bazate pe instrumente legitime precum TruffleHog și pe exploatarea credențialelor dev/CI. Capacitatea malware-ului de a verifica validitatea tokenurilor, de a crea workflow-uri în GitHub Actions și de a exfiltra date către endpoint-uri fixe arată că atacatorii au planificat un flux complet automatizat: descoperirea secretelor, validarea lor, penetrare în pipeline-uri și scurgere de date. Exemple concrete din investigații includ numărul minim de pachete compromise, cel puțin 187, pachetul inițial @ctrl/tinycolor și webhook-ul folosit pentru exfiltrare. Aceste detalii indică ce trebuie monitorizat urgent: versiunile recente ale pachetelor menționate, modificările neautorizate în package.json și apariția workflow-urilor GitHub neexplicate.

Vă întreb: ați verificat recent dependențele proiectelor voastre și ați rotit tokenurile folosite în pipeline-uri?

Fii primul care comentează

Lasă un răspuns

Adresa ta de email nu va fi publicată.


*