Come ti buco Firefox (e Windows)
Un'occhiata al gruppo filorusso RomCom e delle due vulnerabilità che hanno... scoperto
Usiamo i browser un po’ per tutto, non solo navigare pagine web: dal creare documenti, all’effettuare pagamenti, fino a giocare a videogiochi. Insomma, nel 2024 il browser è diventato, a tutti gli effetti, un secondo sistema operativo.
Ovviamente, così come le vulnerabilità dei sistemi operativi sono tra le più ricercate dagli hacker, così lo sono anche le vulnerabilità dei browser. Ed è proprio di una delle vulnerabilità più critiche degli ultimi anni di cui andremo a parlare oggi: CVE-2024-9680.
…CVE-2024-9680?
Con questa bellissima stringa di numeri, abbiamo detto tutto (se siete smanettoni come noi) e niente (se non lo siete). CVE-2024-9680 è il nome “ufficiale” di una vulnerabilità di Firefox, e applicazioni basate su Firefox (Tor Browser, Thunderbird).
Riteniamo che sia importante chiarire cosa significhi questa sigla prima di addentrarci nei meandri oscuri di questa vulnerabilità (gli hackeroni sono pregati di saltare alla prossima sezione).
Common Vulnerabilities and Exposures, o CVE (da cui la prima parte della sigla), è un sistema per archiviare e classificare tutte le vulnerabilità note. È mantenuto dalla MITRE Corporation ed è finanziato dalla National Cybersecurity FFRDC del Dipartimento della Sicurezza interna degli Stati Uniti (quindi è roba seria).
Chiunque (a patto di essere in possesso di informazioni circa una nuova vulnerabilità comprovata) può richiedere l’inserimento di un CVE. Il metodo principale è quello di fare una richiesta a una CNA (CVE Numbering Authorities), che sono organizzazioni di ricerca, ricercatori nel campo della sicurezza e produttori di sistemi operativi.
Leggere un identificatore CVE è semplicissimo: le prime quattro cifre denotano l’anno in cui è stata scoperta la vulnerabilità, e le seguenti cifre sono arbitrarie e identificano la vulnerabilità. Quindi, sappiamo che CVE-2024-9680 è stata scoperta quest’anno ed è identificata con la matricola 9680.
Come abbiamo citato, ogni vulnerabilità viene classificata tramite un punteggio da 1 () a 10 (critica), a seconda di quanto “pericolose” sono. Una vulnerabilità che permette a un hacker di eseguire qualsivoglia programma sui computer vittima, ad esempio, otterrà un punteggio vicino al 10. CVE-2024-9680 ha un punteggio di 9.8, e presto scopriremo perché.
L’attore protagonista: RomCom
Dietro ogni vulnerabilità c’è qualcuno che la scopre. Nei casi migliori, quel qualcuno è un ricercatore di sicurezza che opera per il bene dell’ecosistema cyber.
Nei casi peggiori, quel qualcuno è un gruppo di cybercriminali: nel caso di CVE-2024-9680, quel qualcuno sono proprio questi ultimi. Si tratta del gruppo filorusso RomCom, che ha cominciato a sfruttare questa vulnerabilità critica nell’ottobre di quest’anno.
L’obiettivo finale di RomCom non è chiarissimo, ma amano condurre campagne di spionaggio e cybercrimine atto al guadagno pecuniario. Nel caso della vulnerabilità di Firefox, pare che l’obiettivo fosse quello di impiantare backdoor nei computer vittima, probabilmente come parte di una campagna di spionaggio.
Come avviene la compromissione tramite CVE-2024-9680
Scendiamo ora nei dettagli tecnici. Il primo passo che porta alla compromissione del computer di una vittima è indurre il malcapitato a visitare un sito fasullo. Il sito redirige la vittima a un server che distribuisce l’exploit (di cui tratteremo meglio in seguito): se l’exploit va a buon fine, viene eseguito del codice che impianta una backdoor nel computer della vittima. Il tutto senza che la vittima se ne accorga.
L’exploit prende di mira le versioni di Firefox affette da CVE-2024-9680. In soldoni, ciò che avviene alla visita del sito fasullo è l’esecuzione di uno shellcode (un pezzo di codice che permette di avviare un exploit) che tenta di rompere il sandbox imposto dal browser (la cui funzione è quella di evitare scenari simili, e di solito ci riesce bene).
n
Il trucco magico dietro all’exploit è, appunto, una vulnerabilità di Firefox, chiamata use-after-free. Ogni programma, per funzionare, riserva (“alloca”) della memoria (in RAM): un software affetto da use-after-free riutilizza o fa riferimento a un’area di memoria dopo che questa è stata liberata.

La use-after-free è innescata da una funzione Javascript iniettata nella pagina principale del sito fasullo. Lo script controlla innanzitutto che la versione di Firefox sia vulnerabile, manipola l’HTML della pagina e poi definisce una funzione getter (che controlla l’esecuzione della use-after-free).

Un’altra funzione, prepare, crea quattro oggetti Animation, chiave per l’abuso della vulnerabilità. Infatti, quando lo script itera sui quattro oggetti creati, viene chiamata la funzione Tick (contenuta in ogni oggetto), che libera la memoria riservata agli oggetti. È proprio qui che si verifica use-after-free.
Lo shellcode
Una volta innescata la use-after-free, l’exploit lancia il suo primo shellcode, che non fa altro che recuperare un secondo shellcode. Questo, a sua volta, carica una libreria di codice che permette di “bucare” la sandbox di Firefox.
La libreria lancia processo PowerShell nascosto per scaricare dell’ulteriore codice da un server controllato da RomCom.
La libreria abusa di un’altra vulnerabilità, questa volta di Windows (CVE-2024-49039). In particolare, il codice utilizza un endpoint RPC (un protocollo di comunicazione), che normalmente non può essere chiamato da un processo non riconosciuto dal sistema.
Con questo exploit, RomCom ha impiantato con successo una backdoor nel vostro computer!
Grazie per aver letto questo post! Non dimenticate di iscrivervi!
HACK THE PLANET!
Linda 🐲




