Cei care creează extensii pentru Visual Studio Code și OpenVSX ar trebui să fie vigilenți: o campanie de tip supply-chain denumită GlassWorm vizează aceste marketplace-uri și distribuie un malware auto-propagant care, potrivit estimărilor cercetătorilor, a fost instalat în jur de 35.800 de ori. La fel ca incidentele anterioare din ecosisteme precum npm, acest caz evidențiază slăbiciuni în lanțul de distribuție și modul în care instrumentele moderne pot facilita atât dezvoltarea, cât și abuzul.
Campania GlassWorm ascunde cod malițios prin utilizarea de caractere Unicode invizibile, făcând porțiuni periculoase de cod practic ”invizibile” în editor. După instalare, malware-ul încearcă să extragă credențiale pentru conturi GitHub, npm și OpenVSX și date despre portofele criptomonede din 49 de extensii compromise. În plus, instalează un proxy SOCKS pentru a redirecționa traficul rău intenționat prin mașina victimei și folosește clienți VNC (HVNC) pentru acces remote discret. Pare scenariu de film cu hackeri, doar că de data aceasta se întâmplă pe calculatoarele dezvoltatorilor.
Cercetătorii Koi Security au descoperit că operațiunea folosește blockchainul Solana ca mecanism de comandă și control: tranzacțiile către un portofel hardcodat includ linkuri în base64 către payload-urile următoare. Metoda oferă reziliență la luarea offline a serverelor și o flexibilitate greu de combătut. Ca plan de rezervă, actorii au implementat un mecanism care folosește titluri de evenimente Google Calendar cu URL-uri codate, iar o altă rută directă este conectarea la adresa IP 217.69.3[.]218. Pentru redundanță, rețeaua DHT a BitTorrent este folosită pentru distribuția descentralizată a comenzilor.
Etapa finală a atacului, numită ZOMBI, reprezintă un cod JavaScript masiv obfuscat care transformă stațiile de lucru infectate în noduri ale unei infrastructuri criminale. Practic, fiecare dezvoltator compromis poate deveni fără știința sa un relayer pentru activități ilicite. Koi Security subliniază că aceasta este una dintre cele mai sofisticate forme de atac observate în lanțul de distribuție și afirmă că e prima documentată de tip ”vierme” care afectează ecosistemul VS Code.
Analiza a identificat cel puțin 11 extensii compromise pe OpenVSX și una pe marketplace-ul Microsoft VS Code. Printre ele se numără codejoy.codejoy-vscode-extension (versiunile 1.8.3 și 1.8.4), [email protected], [email protected], [email protected], [email protected], CodeInKlingon.git-worktree-menu (1.0.9 și 1.0.91), [email protected], [email protected], [email protected], [email protected], [email protected] și [email protected] (pe marketplace-ul Microsoft). Conform raportului, șapte dintre extensiile de pe OpenVSX au fost compromise pe 17 octombrie, iar alte infectări au apărut în zilele următoare, pe ambele platforme.
Problema a fost agravată de mecanismul de actualizare automată al extensiilor VS Code: când CodeJoy a publicat versiunea 1.8.3 cu cod malițios invizibil, toți utilizatorii care aveau extensia instalată au primit actualizarea automat, fără avertisment și fără nicio implicare a utilizatorului. La momentul semnalării, cel puțin patru dintre extensiile compromise identificate de Koi Security erau încă disponibile pentru descărcare pe OpenVSX, iar Microsoft a eliminat extensia malițioasă de pe marketplace-ul său după semnalare. Dezvoltatorii unor extensii, precum vscode-theme-seti-folder și git-worktree-menu, au lansat actualizări care au eliminat codul malițios.
Tehnicile folosite nu sunt în sine noi, dar combinația lor este remarcabilă: caractere invizibile pentru a ascunde codul, furtul de credențiale, folosirea blockchainului pentru livrarea payload-urilor și DHT pentru coordonare. Luna precedentă a avut un incident similar, denumit Shai-Hulud, care a compromis 187 de pachete npm și folosea TruffleHog pentru a identifica secrete și chei sensibile. Aceste cazuri arată cât de expuse pot fi lanțurile de distribuție software atunci când actorii malițioși combină instrumente automate de distribuție cu tehnici de exfiltrare și reziliență.
ZOMBI, tranzacțiile Solana care conțin linkuri codate, extensiile afectate și cifra de aproximativ 35.800 de instalări active sunt elemente concrete care evidențiază gravitatea incidentului. Blocarea unor astfel de campanii necesită un control mai strict asupra fluxului de publicare a extensiilor, verificări automate mai riguroase și atenție sporită din partea dezvoltatorilor la pachetele pe care le includ în proiecte. De asemenea, observăm că actorii folosesc multiple rute de distribuție pentru a împiedica eliminarea rapidă: Solana, Google Calendar, IP-uri directe și DHT BitTorrent. Acest lucru sugerează că soluțiile de apărare trebuie să fie la fel de flexibile și descentralizate.
Dacă folosești sau distribui extensii pe OpenVSX sau VS Code, verifică versiunile instalate, actualizările publicate de autori și alertele de securitate; dacă gestionezi publicații de extensii, implementează auditurile de cod și semnarea artefactelor pentru a reduce riscul de introducere a codului malițios. Ce măsuri concrete crezi că ar trebui adoptate de marketplace-uri și dezvoltatori pentru a împiedica reapariția unor atacuri precum GlassWorm?
Fii primul care comentează