Malware in agguato nei collegamenti “ufficiali” di GitHub e GitLab

Si può essere colpiti da malware scaricando file dai repository di Microsoft su GitHub? A quanto pare, sì. Stiamo all’erta!

Come proteggersi da phishing e malware su GitHub e GitLab

Uno dei consigli più longevi sulla sicurezza è: “scaricare software solo da fonti ufficiali”. Le “fonti ufficiali” sono in genere i principali app store di ciascuna piattaforma, ma per milioni di app open source utili e gratuite, la fonte più “ufficiale” che c’è è il repository dello sviluppatore stesso su un sito dedicato come GitHub o GitLab. Lì puoi trovare il codice sorgente del progetto, le correzioni e le aggiunte al codice e spesso una build pronta all’uso. Questi siti sono familiari a chiunque abbia il minimo interesse in computer, software e programmazione. Ecco perché è stata una spiacevole scoperta per molti (inclusi gli specialisti della sicurezza IT e gli stessi sviluppatori) che un file accessibile a un link come github{.}com/{nome_utente}/{nome_repo}/files/{id_file}/{nome_file} potesse essere pubblicato da qualcuno diverso dallo sviluppatore e contenere… qualsiasi cosa.

Naturalmente, i criminali informatici ne hanno subito approfittato.

Definiamo il problema

GitHub e il suo parente stretto GitLab si basano sulla collaborazione nei progetti di sviluppo software. Uno sviluppatore può caricare il proprio codice e altri possono offrire aggiunte, correzioni o creare fork, cioè versioni alternative dell’app o della libreria. Se un utente trova un bug in un’app, può segnalarlo allo sviluppatore creando un apposito report. Altri utenti possono confermare il problema nei commenti. Si possono anche commentare le nuove versioni dell’app. Se necessario, è possibile allegare file ai commenti, ad esempio schermate che mostrano l’errore o documenti che causano l’arresto anomalo dell’applicazione. Questi file sono archiviati nei server GitHub utilizzando link del tipo sopra descritto.

Tuttavia, GitHub ha una particolarità: se un utente prepara un commento e carica i file di accompagnamento ma non fa clic su “Pubblica”, le informazioni rimangono “congelate” nella bozza, invisibili sia al proprietario dell’applicazione che agli altri utenti di GitHub. Viene però creato un link diretto al file caricato nel commento, pienamente funzionante, e chiunque segua il thread di commenti riceverà il file dal CDN di GitHub.

Un link per il download di un file dannoso viene generato dopo l'aggiunta del file a una bozza di commento su GitHub

Un link per il download di un file dannoso viene generato dopo l’aggiunta del file a una bozza di commento su GitHub

Nel frattempo, i proprietari del repository in cui è pubblicato questo file nei commenti non possono eliminarlo, né bloccarlo. Non sanno nemmeno che esiste! Inoltre non vi è alcuna impostazione per limitare il caricamento di tali file nell’ambito del repository. L’unica soluzione è disabilitare completamente i commenti (su GitHub è possibile farlo per un massimo di sei mesi), ma ciò priverebbe gli sviluppatori dei feedback.

Il meccanismo di commento di GitLab è simile, in quanto consente la pubblicazione di file tramite bozze di commenti. I file sono accessibili tramite un link del tipo gitlab.com/{nome_utente}/{nome_repo}/uploads/{id_file}/{name_file}.

Il problema in questo caso è in qualche modo mitigato dal fatto che solo gli utenti GitLab registrati e connessi possono caricare file.

Un regalo alle campagne di phishing

Grazie alla possibilità di pubblicare file arbitrari su collegamenti che iniziano con GitHub/GitLab e contengono i nomi di sviluppatori rispettati e progetti popolari (perché un commento non pubblicato contenente un file può essere lasciato in quasi tutti i repository), i criminali informatici hanno l’opportunità di apportare attacchi di phishing molto convincenti. Sono già state scoperte campagne dannose in cui “commenti”, presumibilmente contenenti app per barare nei giochi vengono lasciati nei repository di Microsoft.

Un utente attento potrebbe chiedersi cosa ci faccia un cheat di gioco in un repository di Microsoft: https://github{.}com/microsoft/vcpkg/files/…../Cheat.Lab.zip . Ma è molto più probabile che le parole chiave “GitHub” e “Microsoft” rassicurino la vittima, che non esaminerà ulteriormente il link. I criminali più intelligenti potrebbero camuffare il loro malware in modo ancora più accurato, ad esempio presentandolo come una nuova versione di un’app distribuita tramite GitHub o GitLab e pubblicandone il link nei commenti relativi a tale app.

Come proteggersi da contenuti dannosi su GitHub e GitLab

Questo difetto di progettazione rimane irrisolto e chiunque può caricare liberamente file arbitrari nei CDN di GitHub e GitLab, pertanto gli utenti di queste piattaforme devono stare estremamente attenti.

  • Non scaricare file da link GitHub/GitLab diretti che trovi in fonti esterne, ad esempio altri siti Web, e-mail o chat. Apri invece la pagina del progetto ( github{.}com/{nome_utente}/{nome_repo} o gitlab{.}com/{nome_utente}/{nome_repo}) e assicurati di poter scaricare il file da lì. I file ufficiali degli sviluppatori devono essere tutti pubblicati e visibili nel repository.
  • Assicurati di essere nella pagina giusta: in GitHub, GitLab e altri repository open source, le frodi di typosquatting sono diffuse: si tratta della creazione di progetti falsi con nomi che differiscono dall’originale per una o due lettere (ad esempio, Chaddev anziché Chatdev).
  • Evita di scaricare applicazioni con poche stelle (equivalenti a un “mi piace”) e create di recente.
  • Usa la protezione da malware e phishing su tutti i tuoi computer e smartphone. Kaspersky Premium fornisce una protezione completa per gamer e appassionati di informatica.
Consigli