Campania PhantomRaven țintește dezvoltatori JavaScript prin pachete npm malițioase care extrag token-uri de autentificare, secrete CI/CD și credențiale GitHub; activitatea a început în august și a afectat pachete cu peste 86.000 de descărcări pe npm.
NPM, managerul de pachete implicit pentru Node.js, este folosit zilnic de numeroși dezvoltatori pentru instalarea bibliotecilor și utilitarelor. În istorie, ecosistemele de pachete au fost o țintă frecventă pentru atacuri asupra lanțului de aprovizionare, de la pachete cu denumiri foarte apropiate până la injectări de cod prin dependințe. PhantomRaven exploatează această vulnerabilitate și o tendință recentă: încrederea sporită în sugestiile asistenților AI care, uneori, inventează nume de pachete ce par autentice. Rezultatul: 126 de pachete false publicate pe npm, multe imitând proiecte cunoscute, unele ajungând deja la mii de descărcări.
Metoda atacului este simplă și eficace. Pachetele din campanie declară aparent zero dependențe, dar folosesc un mecanism de remote dynamic dependencies (RDD), în timpul instalării descarcă payload-uri de pe URL-uri externe și le execută automat la npm install, fără niciun pas suplimentar din partea utilizatorului. Această încărcare externă este dificil de detectat prin analiză statică, deoarece codul malițios nu se regăsește în pachetul inițial; este adus din exterior la momentul instalării.
Odată activ, payload-ul profilează sistemul compromis pentru a evalua valoarea țintei și caută în mediul utilizatorului variabile sau fișiere ce conțin adrese de e-mail. Mai îngrijorător, malware-ul colectează token-uri pentru servicii și pipeline-uri CI: NPM, GitHub Actions, GitLab, Jenkins și CircleCI. Aceste token-uri permit actorilor rău intenționați să introducă modificări în alte proiecte sau să lanseze atacuri de tip lanț asupra distribuției software.
Cercetătorii Koi Security au identificat trei metode folosite de operatori pentru exfiltrare: cereri HTTP GET cu date codate în URL, cereri HTTP POST cu JSON și conexiuni WebSocket. Deoarece payload-urile sunt preluate dinamic de pe servere externe, PhantomRaven a rămas camuflat pentru o perioadă îndelungată, o tactică care complică detectarea prin instrumentele tradiționale bazate pe analiză statică.
Recomandările practice pentru dezvoltatori sunt directe: utilizați pachete publicate de furnizori de încredere, verificați autorul și istoricul pachetului și nu acceptați automat sugestiile de nume de pachete oferite de LLM-uri fără verificări suplimentare, asistenții AI pot propune denumiri plauzibile dar inexistente, fenomen numit slopsquatting. Căutările pe npm trebuie abordate cu atenție pentru a distinge proiectele autentice de cele care imită nume sau rezultă din halucinațiile AI. Raportul Koi Security include indicatori de compromitere (IoC) și lista completă a pachetelor identificate pentru cei care vor să verifice concret.
PhantomRaven reamintește că, în dezvoltarea modernă, nu doar codul pe care îl scrii contează, ci și sursele externe pe care le accepți automat. Detectarea rapidă a pachetelor suspecte, revizuirea permisiunilor token-urilor și minimizarea expunerii secretelor în mediile CI/CD rămân măsuri esențiale. Un exemplu practic: dacă folosești GitHub Actions, verifică token-urile stocate ca secrete și restricționează-le la cel mai mic nivel necesar; similar, confirmă că pachetele npm provin de la autori cunoscuți, nu de la nume inventate care sună credibil.
Raportul Koi Security și lista pachetelor compromise oferă puncte de plecare pentru audituri și pentru administratorii care doresc să blocheze infrastructura folosită de atacatori. E util să rulezi scanări periodice pentru a detecta pachete instalate recent care efectuează activitate externă la instalare și să implementezi mecanisme care monitorizează traficul outbound în timpul proceselor CI pentru a identifica exfiltrări prin HTTP sau WebSocket.
PhantomRaven pune problema concret: 126 de pachete, zeci de mii de descărcări și canale directe de exfiltrare către token-urile care alimentează pipeline-urile. Ce verificări specifice include rutina ta de securitate care ar fi fost utile în acest caz?

Fii primul care comentează