🌐
Google fa un passo avanti nella sicurezza con l'implementazione di V8 SandboxGoogle ha recentemente reso noto di aver introdotto il supporto per un elemento denominato
Sandbox V8 all'interno del
browser Chrome. Tale sandbox, come spiega il
responsabile tecnico della sicurezza V8,
Samuel Groß, è stato progettato per prevenire la diffusione della corruzione della memoria all'interno del processo principale.
Google definisce
V8 Sandbox come un sandbox "interno al processo" e leggero per il motore
JavaScript e WebAssembly, creato per contrastare le comuni vulnerabilità del V8. Il loro piano è minimizzare l'effetto delle vulnerabilità del V8 limitando il codice eseguito da quest'ultimo a una sotto-sezione dello spazio degli indirizzi virtuali del processo (detto "sandbox") e isolandolo dal resto del processo.
Tra il 2021 e il 2023, i difetti riscontrati nel
V8 costituirono una significativa porzione delle vulnerabilità zero-day che Google si trovò ad affrontare, totalizzando
16 problemi di sicurezza individuati durante tale periodo. Il team di
Chromium spiega: "La sandbox presuppone che un utente malintenzionato possa modificare arbitrariamente e contemporaneamente qualsiasi memoria all'interno dello spazio degli indirizzi della sandbox poiché questa primitiva può essere costruita a partire dalle tipiche vulnerabilità V8."
Secondo
Groß, affrontare le vulnerabilità del V8 passando a un linguaggio sicuro per la memoria come Rust o ad approcci di sicurezza della memoria hardware, come il tagging della memoria, presenta delle sfide. Questo a causa dei "
sottili problemi logici" che possono essere usati per danneggiare la memoria, distinguendosi dai classici bug di sicurezza della memoria come accessi non consentiti, accessi fuori limite e altri.
Il
V8 Sandbox è quindi progettato per
isolare la memoria heap del V8 in modo tale da prevenire una possibile fuga di corruzione della memoria verso altre parti del processo. A tal fine, vengono sostituite tutte le forme di dati che possono accedere alla memoria esterna al sandbox con alternative "compatibili con il sandbox", evitando così che un utente malintenzionato possa accedere ad altra memoria.
Il V8 Sandbox può essere abilitato impostando "
v8_enable_sandbox" su true negli argomenti gn. I resultati dei benchmark di
Speedometer e JetStream indicano che la funzione di sicurezza porta un sovraccarico di circa l'1% sulle normali operazioni, permettendone l'attivazione di default a partire dalla versione
123 di Chrome, su Android, ChromeOS, Linux, macOS e Windows.
L'implementazione di questa opera di miglioramento della sicurezza arriva nel momento in cui Google ha messo in luce l'importanza del
Kernel Address Sanitizer nel rilevare bug di memoria nel codice nativo, contribuendo in tal modo a rafforzare la sicurezza del firmware Android. Hanno dichiarato inoltre di aver utilizzato questo strumento basato sul compilatore per rivelare più di 40 bug.