Google heeft een nieuwe functie onthuld, de V8 Sandbox, in zijn Chrome-webbrowser om problemen met geheugencorruptie aan te pakken, gericht op bescherming tegen kwetsbaarheden.
“Na bijna drie jaar sinds het oorspronkelijke ontwerpdocument en inmiddels honderden CL’s, de V8 Sandbox – een lichtgewicht, in-process sandbox voor V8 – is nu zo ver gevorderd dat het niet langer als een experimentele beveiligingsfunctie wordt beschouwd. Vanaf vandaag, de V8 Sandbox is opgenomen in het Vulnerability Reward Program van Chrome (VRP),” de officiële aankondiging zei.
De V8-sandbox uitgelegd
De V8-zandbak, ontwikkeld door V8-beveiligingstechnisch leider Samuel Groß, is ontworpen om te voorkomen dat geheugenbeschadiging zich binnen het hostproces verspreidt. Deze lichtgewicht, in-process sandbox richt zich op de JavaScript- en WebAssembly-engine, gemeenschappelijk verzachten V8-kwetsbaarheden.
Het concept achter de V8 Sandbox is om de impact van V8-kwetsbaarheden te beperken door de door V8 uitgevoerde code te beperken tot een specifieke subset van het proces’ virtuele adresruimte, door het te isoleren van de rest van het proces.
V8-kwetsbaarheden aanpakken
Google kampt met een aanzienlijk aantal zero-day-kwetsbaarheden die voortkomen uit V8-tekortkomingen, met maximaal 16 beveiligingsfouten ontdekt tussen 2021 en 2023. Het Chromium-team benadrukte dat de sandbox ervan uitgaat dat een aanvaller het geheugen binnen de adresruimte van de sandbox kan wijzigen en de rest van het proces tegen dergelijke aanvallen wil beschermen..
Samuel Groß benadrukte de complexiteit van het aanpakken van V8-kwetsbaarheden, daarbij verwijzend naar de uitdagingen bij het overschakelen naar geheugenveilige talen zoals Rust of veiligheidsbenaderingen voor hardwaregeheugen vanwege de genuanceerde aard van problemen met geheugencorruptie.
Functionaliteit van de V8 Sandbox
De V8 Sandbox is ontworpen om het heap-geheugen van V8 te isoleren om te voorkomen dat geheugenbeschadiging aan de beveiligingsbeperkingen ontsnapt en andere delen van het proces beïnvloedt’ geheugen. Door gegevenstypen die toegang hebben tot geheugen buiten de sandbox te vervangen door “sandbox-compatibel” alternatieven, de sandbox beperkt aanvallers effectief tegen ongeautoriseerde geheugentoegang.
Het inschakelen van de sandbox is eenvoudig, waarbij gebruikers moeten instellen “v8_enable_sandbox” naar true in de gn-args.
Prestatie-impact en implementatie
Benchmarkresultaten van Speedometer en JetStream geven aan dat de V8 Sandbox een minimale overhead van ongeveer ongeveer heeft 1% op typische werklasten. Deze prestatiebeoordeling heeft de weg vrijgemaakt voor het standaard inschakelen van de functie, te beginnen met de Chrome-versie 123 op verschillende platforms, waaronder Android, ChromeOS, Linux, MacOS, en Windows.
Samuel Groß merkte op dat de sandbox een 64-bits systeem nodig heeft vanwege de noodzaak van een substantiële reservering van virtuele adresruimte, bedraagt momenteel één terabyte.
Verbetering van de geheugenveiligheid
De adoptie door Google van de sandbox onderstreept de beperkingen van bestaande geheugenveiligheidstechnologieën bij het optimaliseren van JavaScript-engines. Hoewel deze technologieën tekortschieten in het voorkomen van geheugencorruptie binnen V8, ze spelen een cruciale rol bij het beschermen van het aanvalsoppervlak van de V8 Sandbox.
De ontwikkeling sluit aan bij de bredere cyberbeveiligingsinspanningen van Google, inclusief het gebruik van Kernel Address Sanitizer (KASan) om geheugenbugs in native code te detecteren en de beveiliging van Android-firmware te verbeteren. KASan-compatibele builds zijn behulpzaam bij het identificeren van kwetsbaarheden voor geheugenbeschadiging en stabiliteitsproblemen voordat deze van invloed zijn op gebruikersapparaten.
Tenslotte, de introductie van de V8 Sandbox betekent een aanzienlijke stap voorwaarts in het verbeteren van de beveiligingspositie van Chrome en het beperken van V8-gerelateerde kwetsbaarheden.