RLBox, den nye biblioteket isolasjonsteknologi som brukes av Mozilla

Firefox-logo

Stanford University forskereden University of California i san diego y la University of Texas i Austin De har utviklet seg et sett med verktøy som de ga navnet på "RLBox", que kan brukes som et ekstra isolasjonsnivå for å blokkere sårbarheter i funksjonsbiblioteker.

RLBox tar sikte på å løse sikkerhetsproblemet til tredjepartsbiblioteker Utro som ikke er kontrollert av utviklerne, men sårbarheter der hovedprosjektet kan gå på akkord.

Mozilla planlegger å bruke RLBox i Firefox 74 builds for Linux og samlingene av macOS i Firefox 75 for å isolere utførelsen av grafittbiblioteket, som er ansvarlig for å representere kildene.

Samtidig er RLBox ikke spesifikk for Firefox og kan brukes til å isolere ethvert bibliotek i vilkårlige prosjekter.

Om RLBox

Betjeningsmekanismen RLBox koker ned til å kompilere C / C ++ - kode fra isolert bibliotek til mellomliggende WebAssembly-kode lavt nivå, som deretter utstedes som en WebAssembly-modul, hvis autoritet er satt til å bare binde til denne modulen (for eksempel kan et bibliotek for behandling av strenger ikke åpne en stikkontakt eller nettverksfil) C / C ++ kodekonvertering en WebAssembly gjøres ved hjelp av wasi-sdk.

For direkte utførelse, WebAssembly-modulen kompileres til maskinkode ved hjelp av Lucet-kompilatoren og den kjører i en "nanoprosess" atskilt fra resten av programmets minne. Lucet-kompilatoren er basert på samme kode som Cranelift JIT-motoren som brukes i Firefox for å kjøre WebAssembly.

Den monterte modulen fungerer i et eget minneområde og den har ikke tilgang til resten av adresseplassen. I tilfelle utnyttelse av sårbarheten i biblioteket, vil angriperen være begrenset og vil ikke kunne få tilgang til minneområdene i hovedprosessen eller overføre kontroll utenfor sandkassen.

Et API på høyt nivå er gitt for utviklere, slik at du kan ringe bibliotekfunksjoner i isolasjonsmodus.

den WebAssembly-kontrollere krever nesten ingen ekstra ressurser og samhandling med dem er ikke mye tregere enn å ringe til vanlige funksjoner (biblioteksfunksjoner kjøres i form av innfødt kode, og overbelastning skjer bare når du kopierer og verifiserer data i ferd med å samhandle med sandkassemiljø) .

Funksjonene til et isolert bibliotek kan ikke påberopes direkte, og for å få tilgang til dem, må du bruke laget påkalle_sandboks_funksjon ().

I sin tur, hvis de trenger å ringe til eksterne funksjoner fra biblioteket, må disse funksjonene defineres eksplisitt ved hjelp av register_callback-metoden (som standard gir RLBox tilgang til standard biblioteksfunksjoner).

For å sikre sikker minnedrift, å isolere kodeutførelse er ikke nok og også du må oppgi bekreftelse av de returnerte datastrømmene.

Verdier generert i et isolert miljø er merket som upålitelige, begrenset av plettede koder, og krever bekreftelse og kopiering til applikasjonsminne for "opprydding".

Uten rengjøring fører et forsøk på å bruke forurensede data i en sammenheng som krever regelmessige data (og omvendt) til generering av feil på kompileringsstadiet.

Små funksjonsargumenter, returverdier og strukturer sendes ved å kopiere mellom prosessminne og sandkasseminne. For store datasett blir minne tildelt i et isolert miljø, og en direkte "sandkassehenvisning" -peker returneres til hovedprosessen.

RLBox-utviklingen distribueres under MIT-lisensen. RLBox støtter for øyeblikket Linux og macOS og forventes å være kompatibel med Windows senere.

Hvis du vil vite mer om denne nye teknologien som Mozilla planlegger å implementere i Firefox, kan du konsultere dens utvikling samt teste API-en I den følgende lenken.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.