Github e supply chain attack: attenzione ai repository clonati con codice malevolo
Una campagna di distribuzione di malware iniziata lo scorso maggio con una manciata di pacchetti software dannosi caricati sul Python Package Index (PyPI) si è diffusa su GitHub e si è espansa fino a raggiungere almeno 100.000 repository compromessi. Secondo la società di sicurezza Apiiro, questa campagna di “code poison” prevede la clonazione di repository legittimi, l’infezione con caricatori di malware, il caricamento dei file alterati su GitHub con lo stesso nome, il fork del repository avvelenato migliaia di volte e la promozione del codice compromesso nei forum e sui canali dei social media.
Gli sviluppatori alla ricerca di codice utile possono quindi trovare un repo che viene descritto come utile e a prima vista sembra appropriato, per poi vedersi sottrarre i propri dati personali da un payload nascosto che esegue codice Python dannoso e un eseguibile binario.
“Il codice maligno (in gran parte una versione modificata di BlackCap-Grabber) raccoglie le credenziali di accesso a diverse app, le password e i cookie del browser e altri dati riservati”, si legge in un report dei ricercatori di sicurezza Matan Giladi e Gil David. “A questo punto li rimanda al server C&C (command-and-control) degli attori maligni ed esegue una lunga serie di attività dannose aggiuntive”.
Un’analisi approfondita di Trend Micro risalente allo scorso ottobre descrive le tecniche del codice maligno per nascondere la sua vera natura. Ad esempio, il codice nasconde l’uso della funzione exec – per l’esecuzione dinamica di codice – attraverso una tecnica chiamata “exec smuggling”. Questi attacchi aggiungono centinaia di caratteri di spazio bianco (521) per spingere la funzione exec fuori dallo schermo come difesa contro il controllo manuale.
GitHub è conscia del problema e un suo portavoce ha dichiarato a The Register: “Abbiamo team dedicati al rilevamento, all’analisi e alla rimozione dei contenuti e degli account che violano le nostre policy di utilizzo. Impieghiamo revisioni manuali e rilevamenti su larga scala che utilizzano il machine learning e che si evolvono e si adattano costantemente alle tattiche avversarie. Incoraggiamo inoltre i clienti e i membri della comunità a segnalare abusi e spam”.
La consapevolezza e la scansione automatizzata vanno benissimo, ma resta il fatto che GitHub non ha individuato molti fork di repo automatizzati, oltre a quelli caricati manualmente. “Poiché l’intera catena di attacco sembra essere per lo più automatizzata su larga scala, l’1% che sopravvive ammonta comunque a migliaia di repo dannosi”, hanno scritto Giladi e David, aggiungendo che, se si contano i repo rimossi nel totale, la campagna ha probabilmente coinvolto milioni di cloni e fork dannosi.
Gli autori del report sottolineano anche che la scala dell’attacco è talmente ampia che gli sviluppatori creano fork di repository dannosi senza l’intenzione di utilizzare il software e non si rendono conto di convalidare e propagare il malware. Secondo i ricercatori, GitHub rappresenta inoltre un modello efficace per compromettere la catena di fornitura del software grazie sia al suo supporto per la generazione automatica di account e repository, sia alle sue dimensioni.