Google ha presentato una nuova funzionalità chiamata V8 Sandbox nel suo browser Web Chrome per risolvere i problemi di corruzione della memoria, con l’obiettivo di proteggersi dalle vulnerabilità.
“Dopo quasi tre anni dal documento di progettazione iniziale e centinaia di CL nel frattempo, il V8 Sandbox: un peso leggero, sandbox in-process per V8: è ora progredito al punto in cui non è più considerato una funzionalità di sicurezza sperimentale. A partire da oggi, il Sandbox V8 è incluso nel programma Vulnerability Reward di Chrome (VRP),” l'annuncio ufficiale disse.
Spiegazione del Sandbox V8
Il Sandbox V8, sviluppato dal responsabile tecnico della sicurezza V8 Samuel Groß, è progettato per impedire la diffusione del danneggiamento della memoria all'interno del processo host. Questo leggero, La sandbox in-process prende di mira il motore JavaScript e WebAssembly, comune attenuante Vulnerabilità V8.
Il concetto alla base del Sandbox V8 è quello di confinare l'impatto delle vulnerabilità V8 limitando il codice eseguito da V8 a un sottoinsieme specifico del processo’ spazio degli indirizzi virtuali, isolandolo dal resto del processo.
Affrontare le vulnerabilità della V8
Google è alle prese con un numero significativo di vulnerabilità zero-day derivanti dalle carenze del V8, con fino a 16 difetti di sicurezza rilevati tra 2021 e 2023. Il team di Chromium ha sottolineato che il sandbox presuppone la capacità di un utente malintenzionato di modificare la memoria all'interno dello spazio degli indirizzi del sandbox e mira a proteggere il resto del processo da tali attacchi.
Samuel Groß ha sottolineato la complessità della gestione delle vulnerabilità V8, citando le sfide legate al passaggio a linguaggi sicuri per la memoria come Rust o approcci alla sicurezza della memoria hardware a causa della natura sfumata dei problemi di corruzione della memoria.
Funzionalità del Sandbox V8
Il Sandbox V8 è progettato per isolare la memoria heap di V8 per impedire che qualsiasi danneggiamento della memoria esca dai confini di sicurezza e influisca su altre parti del processo’ memoria. Sostituendo i tipi di dati che possono accedere alla memoria fuori sandbox con “compatibile con sandbox” alternative, la sandbox impedisce efficacemente agli aggressori l'accesso non autorizzato alla memoria.
Abilitare la sandbox è semplice, richiedendo agli utenti di impostare “v8_enable_sandbox” a true negli argomenti gn.
Impatto sulle prestazioni e implementazione
I risultati dei benchmark di Speedometer e JetStream indicano che il Sandbox V8 comporta un sovraccarico minimo di circa 1% sui carichi di lavoro tipici. Questa valutazione delle prestazioni ha aperto la strada all'abilitazione della funzionalità per impostazione predefinita a partire dalla versione di Chrome 123 su varie piattaforme, incluso Android, ChromeOS, Linux, Mac OS, e Windows.
Samuel Groß ha osservato che il sandbox necessita di un sistema a 64 bit a causa della necessità di una sostanziale prenotazione dello spazio degli indirizzi virtuali, attualmente ammonta a un terabyte.
Miglioramento della sicurezza della memoria
L'adozione della sandbox da parte di Google sottolinea i limiti delle tecnologie di sicurezza della memoria esistenti nell'ottimizzazione dei motori JavaScript. Anche se queste tecnologie non riescono a prevenire il danneggiamento della memoria all'interno della V8, svolgono un ruolo fondamentale nella salvaguardia della superficie di attacco V8 Sandbox.
Lo sviluppo è in linea con gli sforzi più ampi di Google in materia di sicurezza informatica, compreso l'utilizzo di Kernel Address Sanitizer (KASan) per rilevare bug di memoria nel codice nativo e migliorare la sicurezza del firmware Android. Le build abilitate per KASan sono fondamentali per identificare le vulnerabilità di danneggiamento della memoria e i problemi di stabilità prima che abbiano un impatto sui dispositivi degli utenti.
Insomma, l'introduzione della Sandbox V8 rappresenta un passo avanti significativo nel miglioramento del livello di sicurezza di Chrome e nella mitigazione delle vulnerabilità legate alla V8.