Mozilla begint met de implementatie van de bibliotheekisolatietechnologie RLBox

Onderzoekers van de Stanford Universiteit, de Universiteit van Californiƫ in San Diego en de Universiteit van Texas in Austin hebben ontwikkeld hulpmiddelen RLBox, dat kan worden toegepast als een extra niveau van isolatie om kwetsbaarheden in functie bibliotheken te blokkeren. RLBox richt zich op het probleem van de beveiliging van onbetrouwbare externe bibliotheken die niet onder controle staan van de ontwikkelaars, maar waarvan kwetsbaarheden het hoofdproject kunnen compromitteren.

Mozilla is van plan om RLBox in te schakelen in Linux-bouwversies van Firefox 74 en macOS-bouwversies van Firefox 75 voor de isolatie van de uitvoering van de bibliotheek Graphite, verantwoordelijk voor het weergeven van lettertypen. RLBox is niet specifiek voor Firefox en kan worden gebruikt voor de isolatie van elke bibliotheek in willekeurige projecten. Ontwikkelingen RLBox worden verspreid onder de MIT-licentie. Momenteel ondersteunt RLBox werking op de platforms Linux en macOS, ondersteuning voor Windows wordt later verwacht.

Mechanisme het werk van RLBox bestaat uit het compileren van C/C++-code van de te isoleren bibliotheek naar low-level tussenliggende WebAssembly-code, die vervolgens als een WebAssembly-module wordt gepresenteerd, waarvan de bevoegdheden alleen aan deze module zijn toegewezen (bijvoorbeeld een bibliotheek voor het verwerken van strings kan geen netwerk socket of bestand openen). De omzetting van C/C++-code naar WebAssembly gebeurt met behulp van wasi-sdk.

Om WebAssembly direct uit te voeren, wordt de module gecompileerd naar machinecode met behulp van de compiler Lucet en uitgevoerd in een aparte 'nano-proces', geĆÆsoleerd van de rest van het geheugen van de applicatie. De Lucet-compiler is gebaseerd op dezelfde code als de JIT-engine Cranelift, die in Firefox wordt gebruikt voor de uitvoering van WebAssembly.

De gecompileerde module werkt in een apart geheugengebied en heeft geen toegang tot de rest van de adressenruimte. In het geval van een exploitatie van een kwetsbaarheid in de bibliotheek zou de aanvaller beperkt zijn en geen toegang kunnen krijgen tot gebieden van het geheugen van het hoofdproces of controle buiten de geĆÆsoleerde omgeving kunnen overdragen.

Mozilla begint met de implementatie van de bibliotheekisolatietechnologie RLBox

Voor ontwikkelaars is er een high-level API, die het mogelijk maakt om bibliotheekfuncties in isolatiemodus aan te roepen. WebAssembly-handlers vereisen bijna geen extra middelen en de interactie met hen is niet veel langzamer dan het aanroepen van gewone functies (bibliotheekfuncties worden uitgevoerd in de vorm van native code, en overhead ontstaat alleen bij het kopiëren en controleren van gegevens tijdens de interactie met de geïsoleerde omgeving). Geïsoleerde bibliotheekfuncties kunnen niet rechtstreeks worden aangeroepen en om toegang tot hen te krijgen, moet men
de aanroeplaag invoke_sandbox_function() gebruiken.

Als het nodig is om externe functies vanuit de bibliotheek aan te roepen, moeten deze functies expliciet worden gedefinieerd met de methode register_callback (per standaard biedt RLBox toegang tot functies van de standaardbibliotheek). Voor een veilige werking met geheugen (memory safety) is het niet voldoende om alleen de uitvoering van code te isoleren; er moet ook gezorgd worden voor controle van de teruggestuurde datastromen.

Waarden die in een geïsoleerde omgeving zijn gevormd, worden gelabeld als niet vertrouwelijk, gelimiteerd door middel van tainted-labels en vereisen voor 'opschoning' validatie en kopiëren naar de applicatiegeheugen.
Zonder opschoning leidt het gebruik van tainted-gegevens in een context die gewone gegevens vereist (en vice versa) tot foutmeldingen tijdens de compilatie. Kleine functieargumenten, teruggegeven waarden en structuren worden door kopiëren tussen het procesgeheugen en het geheugen van de geïsoleerde omgeving doorgegeven. Voor grote gegevenssets wordt geheugen toegewezen in de geïsoleerde omgeving, terwijl aan het hoofdproces een directe pointer 'sandbox-referentie' wordt teruggegeven.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster