Beyond Takedown: Measuring Malicious Go Module Persistence in the Wild
Questo articolo rivela un attacco alla supply chain di Go su larga scala in cui gli avversari riimpacchettano moduli legittimi con malware offuscato, dimostrando che fare affidamento esclusivamente sulle ricerche su GitHub non riesce a rilevare l'intera portata del compromesso poiché oltre il 99% degli artefatti malevoli rimossi rimane recuperabile tramite i proxy di Go.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina il mondo dello sviluppo software come una biblioteca enorme e frenetica dove i programmatori prendono in prestito dei "moduli" (blocoli di codice pre-scritti) per costruire le proprie applicazioni. Nel linguaggio di programmazione Go, questa biblioteca ha un bibliotecario molto severo: il Go Proxy.
Ecco la storia di un recente furto in questa biblioteca, raccontata in modo semplice.
Il Furto: "Il Finto Club del Libro"
Gli attaccanti hanno deciso di rubare alla biblioteca, ma non hanno sfondato le porte. Inveve, hanno giocato a un gioco di impersonificazione.
- La Preparazione: Hanno trovato libri legittimi e popolari (moduli di codice legittimi) che tutti stimavano.
- Il Falso: Hanno creato copie false di questi libri sotto i propri nomi. All'interno di questi libri falsi, hanno nascosto una piccola, invisibile trappola.
- La Trappola: Nel mondo di Go, quando "importi" (prendi in prestito) un libro, la biblioteca esegue automaticamente alcune attività di configurazione. Gli attaccanti hanno nascosto un'istruzione malevola all'interno di queste attività di configurazione. Era come un libro che, non appena lo aprivi, sussurrava segretamente al tuo computer di scaricare ed eseguire un virus.
- L'Hype: Per far sembrare i loro libri falsi reali, gli attaccanti hanno usato un "esercito di bot" per dare loro migliaia di "stelle" (like) su GitHub, ingannando gli sviluppatori con il pensiero: "Oh, questo deve essere popolare e sicuro".
L'Indagine: Due Modi di Guardare
I ricercatori (Minjae Bae e Carter Yagemann) volevano vedere quanto fosse grande questo problema. Hanno usato due diverse torce elettriche per cercare i ladri.
Torcia 1: La Ricerca su GitHub (La vista dello "Scaffale")
Hanno cercato manualmente sul principale sito di hosting (GitHub), cercando pattern sospetti e seguendo le connessioni tra le "stelle" e gli account.
- Cosa hanno trovato: Hanno trovato 2.113 repository falsi.
- Il Problema: Questa torcia funziona solo se il libro falso è ancora appoggiato sullo scaffale. Se il personale della biblioteca rimuove il libro, o se il ladro non l'ha mai messo sullo scaffale principale, questa torcia non vede nulla.
Torcia 2: Lo Scan del Proxy (La vista della "Circolazione")
Hanno costruito uno scanner speciale chiamato GOAST (un robot che legge il codice senza eseguirlo) per scansionare il Go Proxy. Questo è il sistema di backup della biblioteca. Conserva una copia perfetta e immutabile di ogni libro che sia mai stato preso in prestito, anche se l'originale viene rimosso dallo scaffale.
- Cosa hanno trovato: Hanno trovato 2.289 versioni malevole.
- La Sorpresa: La torcia del Proxy ha trovato l'83% in più di libri malevoli rispetto alla torcia di GitHub. Molti di questi libri falsi non erano nemmeno sullo scaffale principale, o erano già stati rimossi, ma il Proxy li conservava ancora.
La Grande Scoperta: "Takedown" Non Significa "Risolto"
Questa è la parte più importante della storia.
Di solito, quando i team di sicurezza trovano un brutto libro, chiedono alla biblioteca di rimuoverlo (takedown). Cancellano il repository su GitHub. Pensano: "Grande, la minaccia è sparita".
I ricercatori hanno dimosttato che questo è sbagliato.
Poiché il Go Proxy conserva una copia permanente e immutabile di ogni modulo, cancellare la fonte su GitHub non cancella il virus dall'ecosistema.
- I ricercatori hanno scoperto che anche dopo che i repository degli attaccanti sono stati cancellati o sospesi (rendendoli "invisibili" su GitHub), il 99,4% di quei moduli malevoli era ancora disponibile e scaricabile tramite il Go Proxy.
- È come se il personale della biblioteca buttasse un libro falso nel cestino, ma il drone di consegna automatizzato della biblioteca (il Proxy) avesse ancora una copia perfetta nel suo magazzino e continui a consegnarla ai clienti che la richiedono.
Il Risultato
I ricercatori hanno riferito il problema al personale della biblioteca (GitHub e Google).
- GitHub ha rimosso 684 repository malevoli.
- Google (il team del Proxy) ha ripulito 1.377 versioni di moduli malevoli dal suo archivio permanente.
La Lezione
Non si può risolvere un problema della catena di approvvigionamento del software semplicemente pulendo lo strato di "hosting" (GitHub). Se lo strato di "distribuzione" (il Proxy) conserva il codice cattivo, la minaccia sopravvive. Per risolvere davvero il problema, bisogna pulire sia lo scaffale che il magazzino.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.