Google har afsløret en ny funktion kaldet V8 Sandbox i sin Chrome-webbrowser for at løse problemer med hukommelseskorruption, med henblik på at beskytte mod sårbarheder.
“Efter næsten tre år siden det oprindelige designdokument og hundredvis af CL'er i mellemtiden, V8 Sandbox - en letvægter, in-proces sandbox til V8 — er nu udviklet til det punkt, hvor det ikke længere betragtes som en eksperimentel sikkerhedsfunktion. Fra i dag, V8 Sandbox er inkluderet i Chromes sårbarhedsbelønningsprogram (VRP),” den officielle meddelelse sagde.
V8-sandkassen forklaret
V8 Sandbox, udviklet af V8 sikkerhedsteknisk leder Samuel Groß, er designet til at forhindre hukommelseskorruption i at sprede sig inden for værtsprocessen. Denne letvægts, i-proces sandbox er målrettet mod JavaScript- og WebAssembly-motoren, formildende fælles V8 sårbarheder.
Konceptet bag V8 Sandbox er at begrænse virkningen af V8-sårbarheder ved at begrænse koden, der udføres af V8 til en specifik delmængde af processen’ virtuelt adresserum, isolere det fra resten af processen.
Løsning af V8-sårbarheder
Google har kæmpet med et betydeligt antal nul-dages sårbarheder, der stammer fra V8-mangler, med op til 16 sikkerhedsfejl opdaget mellem 2021 og 2023. Chromium-teamet fremhævede, at sandkassen antager en angribers evne til at ændre hukommelsen i sandkassens adresserum og sigter mod at beskytte resten af processen mod sådanne angreb.
Samuel Groß understregede kompleksiteten ved at tackle V8-sårbarheder, citerer udfordringer med at skifte til hukommelsessikre sprog som Rust eller hardware hukommelse sikkerhedstilgange på grund af den nuancerede karakter af problemer med hukommelseskorruption.
Funktionalitet af V8 Sandbox
V8 Sandbox er konstrueret til at isolere V8's heap-hukommelse for at forhindre enhver hukommelseskorruption i at undslippe sikkerhedsgrænserne og påvirke andre dele af processen’ hukommelse. Ved at erstatte datatyper, der kan få adgang til out-of-sandbox-hukommelse med “sandkasse-kompatibel” alternativer, sandkassen begrænser effektivt angribere fra uautoriseret hukommelsesadgang.
Det er ligetil at aktivere sandkassen, kræver, at brugerne indstiller “v8_enable_sandbox” til sand i gn args.
Effektivitet og implementering
Benchmark-resultater fra Speedometer og JetStream indikerer, at V8 Sandbox pådrager sig en minimal overhead på ca. 1% på typiske arbejdsbelastninger. Denne præstationsvurdering har banet vejen for at aktivere funktionen som standard fra Chrome-versionen 123 på tværs af forskellige platforme inklusive Android, ChromeOS, Linux, MacOS, og Windows.
Samuel Groß bemærkede, at sandkassen nødvendiggør et 64-bit system på grund af behovet for en betydelig reservation af virtuel adresseplads, i øjeblikket udgør en terabyte.
Fremme hukommelsessikkerhed
Googles vedtagelse af sandkassen understreger begrænsningerne ved eksisterende hukommelsessikkerhedsteknologier i optimering af JavaScript-motorer. Mens disse teknologier kommer til kort med at forhindre hukommelseskorruption i V8, de spiller en afgørende rolle i at beskytte V8 Sandbox-angrebsoverfladen.
Udviklingen stemmer overens med Googles bredere cybersikkerhedsindsats, herunder udnyttelse af Kernel Address Sanitizer (KASan) at opdage hukommelsesfejl i native kode og forbedre Android-firmwaresikkerheden. KASan-aktiverede builds er medvirkende til at identificere hukommelseskorruptionssårbarheder og stabilitetsproblemer, før de påvirker brugerenheder.
Afslutningsvis, introduktionen af V8 Sandbox repræsenterer et væsentligt skridt i at forbedre Chromes sikkerhedsposition og afbøde V8-relaterede sårbarheder.