Versiuni publicate recent ale pachetului node-ipc, un modul popular de comunicație între procese din ecosistemul Node.js, au fost compromise cu malware capabil să fure credențiale, potrivit unei relatări publicate de BleepingComputer. Atacul este descris ca o nouă campanie de tip supply chain care vizează npm.
Potrivit aceleiași surse, cercetători de la Socket, Ox Security și Upwind au confirmat că versiunile node-ipc@9.1.6, node-ipc@9.2.3 și node-ipc@12.0.1 conțin cod malițios. Acesta se ascunde în punctul de intrare CommonJS, node-ipc.cjs, și se execută automat atunci când aplicațiile încarcă pachetul.
Ce face malware-ul
Conform raportării, codul este puternic obfuscat, identifică sistemul infectat, colectează variabile de mediu și fișiere locale sensibile, apoi comprimă datele sustrase și le trimite mai departe prin interogări DNS TXT. Cercetătorii citați de BleepingComputer spun că malware-ul caută, printre altele, credențiale cloud pentru AWS, Azure, GCP, OCI și DigitalOcean, chei SSH, configurații Kubernetes, Docker, Helm și Terraform, tokenuri npm, GitHub, GitLab și Git CLI, fișiere .env, credențiale de baze de date, istoricul shell-ului și secrete din CI/CD.
Lista include și fișiere din macOS Keychain, keyring-uri Linux, fișierele de profil și baza de date Firefox pe macOS, precum și zone de stocare locală pentru Microsoft Teams. Malware-ul sare peste fișiere mai mari de 4 MiB și evită directoarele .git și node_modules, pentru a reduce zgomotul operațional pe gazdă.
Exfiltrare prin DNS
Un element notabil al atacului este folosirea DNS TXT în locul traficului HTTP obișnuit pentru comandă și control. Potrivit raportării, atacatorii folosesc un domeniu cu aspect Azure, sh[.]azurestaticprovider[.]net:443, ca rezolvator de bootstrap, iar datele sunt transmise către bt[.]node[.]js, cu prefixe de interogare precum xh, xd și xf.
Socket a estimat că exfiltrarea unui arhivă comprimată de 500 KB ar putea genera aproximativ 29.400 de cereri DNS TXT, ceea ce ar ajuta traficul să se amestece cu activitatea normală DNS. Înainte de trimitere, datele sunt stocate temporar în arhive tar.gz, care sunt șterse după exfiltrare, pentru a reduce urmele forensice.
Context și recomandări
BleepingComputer notează că pachetul node-ipc are în continuare peste 690.000 de descărcări săptămânale pe npm, în pofida faptului că întreținătorul a publicat în martie 2022 versiuni armate care vizau sisteme din Rusia și Belarus, ca protest față de invazia rusă în Ucraina. În cazul actual, cercetătorii spun că atacul pare să fi fost realizat de un actor extern care a compromis contul unui întreținător inactiv, numit atiertant.
Companiile și dezvoltatorii care pot fi afectați sunt sfătuiți să elimine versiunile compromise, să rotească secretele și credențialele expuse și să verifice lockfile-urile și cache-urile npm. Potrivit raportării, operațiunea nu stabilește persistență și nu descarcă payload-uri secundare, ceea ce sugerează o campanie concentrată pe furt rapid de credențiale și exfiltrare.
