Siamo lieti di presentare una serie di blog di analisi tecnica incentrati su varie vulnerabilità ed esposizioni comuni (CVE), identificate e corrette con le nostre tecnologie avanzate di rilevamento delle minacce.Tutte le ricerche sono svolte dagli studenti laureati che partecipano al programma OPSWAT Cybersecurity Fellowship, lanciato nel settembre 2023.
In questo blog spiegheremo la CVE-2019-13720 di Google Chrome e come le organizzazioni possono difendersi dagli attacchi di sfruttamento della CVE-2019-13720.
Che cos'è Google Chrome e quando è stato fondato?
Google Chrome è un browser web multipiattaforma sviluppato da Google e rilasciato ufficialmente il 2 settembre 2008. È stato sviluppato come parte degli sforzi di Google per creare un browser migliore e più moderno. All'epoca offriva molte nuove funzionalità, tra cui la navigazione a schede, la modalità privacy e la sincronizzazione con i servizi Google. Dal suo rilascio, è diventato uno dei browser web più popolari al mondo. Nel 2021, si stima che Google Chrome abbia circa 3,2 miliardi di utenti.
A causa della popolarità di Google Chrome, è diventato un punto focale per la ricerca e gli attacchi, attirando sia hacker etici che malintenzionati. Le vulnerabilità più comuni identificate in Google Chrome includono, tra le altre, il Denial of Services (DoS), la fuga di informazioni e l'esecuzione di codice remoto. Per quanto riguarda la vulnerabilità dell'esecuzione di codice in remoto, esistono due tipi di vulnerabilità in Google Chrome: sandbox escape e non-escape.
Che cos'è CVE-2019-13720?
CVE-2019-13720 è una vulnerabilità Use After Free (UAF) di WebAudio in Google Chrome prima della versione 78.0.3904.87 che consente a un aggressore remoto di sfruttare potenzialmente la corruzione dell'heap tramite una pagina HTML artigianale. Quando la vittima accede a una pagina Web dannosa o apre una pagina HTML artigianale su un browser Google Chrome vulnerabile, il codice dannoso viene eseguito sull'endpoint della vittima. Questo CVE è stato segnalato per la prima volta da Anton Ivanov e Alexey Kulaev nel 2019.
Da un punto di vista tecnico, è possibile sfruttare una vulnerabilità use-after-free a causa di una race condition tra i thread Render e Audio nel componente audio di Qt WebEngine che consente agli aggressori remoti di eseguire codice shell WebAssembly, con conseguente compromissione del dispositivo della vittima. Per risolvere questo problema, tutti gli utenti di Qt WebEngine devono aggiornare alla versione più recente.
Le fasi di attacco
Gli aggressori creano un URL speciale con il codice HTML dannoso e inviano un'e-mail di phishing con il link alla vittima. Quando la vittima apre l'e-mail e fa clic sul link, il codice dannoso viene eseguito e consente all'aggressore di assumere il controllo del sistema interessato. I dettagli delle tattiche di codice remoto, come appaiono in un documento HTML, possono essere consultati qui.
Cosa sono le vulnerabilità Use After Free (UAF) e heap spray?
Una vulnerabilità UAF è un tipo di falla di sicurezza che si verifica quando un programma continua a utilizzare la memoria dopo che è stata liberata. Questo può portare a diverse conseguenze negative, tra cui corruzione dei dati, esecuzione di codice arbitrario e crash del sistema.
L'heap spraying è una tecnica di distribuzione del payload che prevede la scrittura di diversi byte in diverse posizioni dell'heap. Ciò comporta l'iniezione di un payload artigianale (cioè dati dannosi) nell'heap della memoria, assicurando che il flusso di esecuzione salti nella memoria spruzzata anziché nel codice originale dell'applicazione. Lo scopo di questo attacco è in genere quello di ottenere il controllo del registro EIP.
Che cos'è WebAssembly?
WebAssembly, spesso abbreviato in Wasm, è un nuovo formato di istruzioni binarie che funge da target portatile per la compilazione di linguaggi di alto livello come C/C++, consentendone l'esecuzione a velocità quasi nativa nel motore JavaScript di un browser Web.
Tuttavia, poiché WebAssembly può essere compilato da linguaggi che non sono memory-safe, come C/C++, le vulnerabilità di codifica più comuni, come i buffer overflow o le vulnerabilità delle stringhe di formato, possono essere introdotte nei binari WebAssembly compilati in modo incrociato. Questa possibilità di includere vulnerabilità nei moduli WebAssembly ha aumentato la superficie di attacco delle applicazioni Web contemporanee.
Che cos'è una vulnerabilità di tipo race condition?
Una vulnerabilità race condition nel software si verifica quando più processi o thread tentano di accedere contemporaneamente a una risorsa condivisa, causando risultati imprevedibili o interruzioni operative dovute alla tempistica dell'accesso. Quando un programma presenta una vulnerabilità race condition, può causare vari problemi come crash dell'applicazione, corruzione dei dati, risultati errati o incoerenze. Gli aggressori possono sfruttare questa vulnerabilità per ottenere un accesso non autorizzato, far trapelare informazioni, aumentare i privilegi o provocare crash di sistema.
Classificata come una vulnerabilità di tipo race condition, una vulnerabilità TOCTTOU sfrutta l'intervallo di tempo tra la verifica e l'utilizzo di una risorsa.
Come funziona CVE-2019-13720?
Per sfruttare questa vulnerabilità, il ricercatore allega del codice JavaScript a un file HTML. Quando un utente lancia il file HTML, lo script tenta di trovare l'indirizzo trapelato creando due thread (thread principale e thread audio) che gestiscono gli stessi dati del buffer. L'indirizzo trapelato dell'oggetto temporary_buffer in ReverbConvolverStage viene quindi utilizzato per ottenere il puntatore del feedforward_array in IIRFilterNode (che condivide la stessa superpagina con il Convolver). Successivamente, il ricercatore cerca di ottenere il puntatore del feedforward_array nel secondo trigger UAF.
WebAssembly gestisce l'esecuzione del codice shell. Per consentire l'esecuzione del codice shell, il ricercatore tenta di liberare l'IIRFilter e scrive sul GCPreventer fino a ottenere il controllo su dove vengono effettuate le nuove allocazioni senza bisogno di spruzzi. Infine, il ricercatore scrive lo shellcode nella regione Just-In Time (JIT) della memoria. Di conseguenza, all'aggiunta di un evento di errore del lettore di file, il modulo WebAssembly eseguirà il codice shell.
Per eseguire il codice shell associato a questa vulnerabilità, l'utente deve disabilitare la sandbox nella versione vulnerabile di Chrome.
Quando il codice shell viene eseguito, apre automaticamente i servizi Notepad sul dispositivo della vittima.
Metodo di bonifica
MetaDefender Endpoint, una soluzione di sicurezza per gli endpoint progettata da OPSWAT, consente agli utenti di rilevare e difendere i propri sistemi da questi attacchi. Dopo aver disabilitato la funzione Privacy Sandbox (--no-sandbox), MetaDefender Endpoint è in grado di rilevare i CVE e di applicare le ultime patch di Google Chrome. Successivamente, l'utente può aggiornare Google Chrome all'ultima versione manualmente o attivare la funzione "aggiornamento automatico" nella scheda Patch Management per consentire a OPSWAT MetaDefender Endpoint di aggiornare automaticamente il browser non appena sono disponibili nuove patch.
Per evitare l'esposizione a codici maligni, gli utenti dovrebbero utilizzare strumenti di filtraggio delle e-mail per rilevare gli attacchi di phishing ed evitare di fare clic su URL sconosciuti nelle e-mail.
Caratteristiche e vantaggi principali di MetaDefender Endpoint
- Esaminare e correggere le applicazioni a rischio. Le applicazioni vulnerabili o non aggiornate possono essere visualizzate nell'interfaccia utente di MetaDefender Endpoint .
- Verificare che la protezione anti-malware sia configurata correttamente sul sistema operativo.
- Garantire la conformità agli standard di sicurezza dell'organizzazione.
- Garanzia di crittografia del disco rigido.
- Verifica delle patch del sistema operativo.
- Molteplici opzioni per la scansione del malware e per la creazione di annunci privi di malware sugli endpoint.
MetaDefender Endpoint for Endpoint Vulnerability and Application Patching può essere scaricato qui.
Riferimento
- https://nvd.nist.gov/vuln/detail/CVE-2019-13720
- https://bugs.chromium.org/p/chromium/issues/detail?id=1019226
- https://www.w3.org/TR/webaudio/
- https://security.gentoo.org/glsa/202004-04
- https://www.cve.org/CVERecord?id=CVE-2019-13720
- https://packetstormsecurity.com/files/167066/Google-Chrome-78.0.3904.70-Remote-Code-Execution.html
- https://devopedia.org/race-condition-software
- https://webassembly.org/
- https://www.researchgate.net/figure/WebAssembly-high-level-architecture_fig1_360232889
- https://www.researchgate.net/publication/331990070_Native_Web_Audio_API_Plugins
- https://whitehat.vn/threads/gioi-thieu-ky-thuat-khai-thac-exploit-heap-spray.5056/
- https://www.opswat.com/