RLBox, den nya teknik för biblioteksisolering som används av Mozilla

Firefox-logotypen

Stanford University forskarei University of California i San Diego y la University of Texas i Austin De har utvecklats en uppsättning verktyg som de gav namnet på "RLBox", que kan användas som en extra isoleringsnivå för att blockera sårbarheter i funktionsbibliotek.

RLBox syftar till att lösa säkerhetsproblemet för tredjepartsbibliotek Otillförlitliga som inte kontrolleras av utvecklarna, men sårbarheter där huvudprojektet kan kompromissa.

Mozilla planerar att använda RLBox i Firefox 74 bygger för Linux och sammanställningarna av macOS i Firefox 75 för att isolera körningen av grafitbiblioteket, som ansvarar för att representera källorna.

Samtidigt är RLBox inte specifikt för Firefox och kan användas för att isolera vilket bibliotek som helst i godtyckliga projekt.

Om RLBox

Manövermekanismen RLBox går ner till att kompilera C / C ++ - kod från isolerat bibliotek till mellanliggande WebAssemble-kod låg nivå, som sedan utfärdas som en WebAssembly-modul, vars behörighet är inställd på att binda endast till den här modulen (till exempel kan ett bibliotek för bearbetning av strängar inte öppna ett uttag eller nätverksfil) C / C ++ kodkonvertering en WebAssemble görs med wasi-sdk.

För direkt utförande, WebAssembly-modulen kompileras till maskinkod med Lucet-kompilatorn och den körs i en "nanoprocess" som är skild från resten av programmets minne. Lucet-kompilatorn är baserad på samma kod som Cranelift JIT-motorn som används i Firefox för att köra WebAssembly.

Den monterade modulen fungerar i ett separat minnesområde och den har inte tillgång till resten av adressutrymmet. Vid utnyttjande av sårbarheten i biblioteket kommer angriparen att vara begränsad och kommer inte att kunna komma åt minnesområdena i huvudprocessen eller överföra kontroll utanför sandlådan.

Ett API på hög nivå tillhandahålls för utvecklare, vilket gör att du kan ringa biblioteksfunktioner i isoleringsläge.

mycket WebAssemble-kontroller kräver nästan inga ytterligare resurser och interagera med dem är inte mycket långsammare än att anropa vanliga funktioner (biblioteksfunktioner körs i form av inbyggd kod, och överbelastning sker bara när man kopierar och verifierar data i processen att interagera med en sandbox-miljö) .

Funktionerna i ett isolerat bibliotek kan inte åberopas direkt, och för att komma åt dem måste du använda lagret anropa_sandlåda_funktion ().

I sin tur, om de behöver anropa externa funktioner från biblioteket, måste dessa funktioner definieras uttryckligen med metoden register_callback (som standard ger RLBox tillgång till standardbiblioteksfunktioner).

För att säkerställa säker minnesdrift, isolering av kodkörning räcker inte och även du måste tillhandahålla verifiering av de returnerade dataströmmarna.

Värden som genereras i en isolerad miljö markeras som opålitliga, begränsade av smutsiga taggar och kräver verifiering och kopiering till applikationsminne för "sanering."

Utan rengöring leder ett försök att använda förorenade data i ett sammanhang som kräver regelbundna data (och tvärtom) generering av fel i sammanställningsfasen.

Små funktionsargument, returvärden och strukturer skickas genom att kopiera mellan processminne och sandboxminne. För stora datamängder allokeras minne i en isolerad miljö och en direkt "sandlåda-referens" -pekare returneras till huvudprocessen.

RLBox-utvecklingen distribueras under MIT-licensen. RLBox stöder för närvarande Linux och macOS och förväntas vara kompatibel med Windows senare.

Om du vill veta mer om den här nya tekniken som Mozilla planerar att implementera i Firefox, kan du konsultera dess utveckling samt testa API I följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.