RLBox, den nye biblioteksisoleringsteknologi, der bruges af Mozilla

Firefox-logo

Stanford University forskere, University of California i san diego y la University of Texas i Austin De har udviklet sig et sæt værktøjer, som de gav navnet på "RLBox", at kan bruges som et ekstra isolationsniveau for at blokere sårbarheder i funktionsbiblioteker.

RLBox sigter mod at løse sikkerhedsproblemet i tredjepartsbiblioteker Utro, der ikke kontrolleres af udviklerne, men sårbarheder, hvor hovedprojektet kan gå på kompromis.

Mozilla planlægger at bruge RLBox i Firefox 74 builds til Linux og samlingerne af macOS i Firefox 75 for at isolere udførelsen af ​​grafitbiblioteket, som er ansvarlig for at repræsentere kilderne.

På samme tid er RLBox ikke specifik for Firefox og kan bruges til at isolere ethvert bibliotek i vilkårlige projekter.

Om RLBox

Betjeningsmekanismen RLBox koger ned til at kompilere C / C ++ - kode fra isoleret bibliotek til mellemliggende WebAssemble-kode lavt niveau, som derefter udstedes som et WebAssembly-modul, hvis autoritet er indstillet til kun at binde til dette modul (for eksempel kan et bibliotek til behandling af strenge ikke åbne et stik eller en netværksfil) C / C ++ -kodekonvertering en WebAssemble udføres ved hjælp af wasi-sdk.

Til direkte udførelse WebAssembly-modulet kompileres til maskinkode ved hjælp af Lucet-kompilatoren og det kører i en "nanoproces" adskilt fra resten af ​​applikationens hukommelse. Lucet-kompilatoren er baseret på den samme kode som Cranelift JIT-motoren, der bruges i Firefox til at køre WebAssembly.

Det samlede modul fungerer i et separat hukommelsesområde og den har ikke adgang til resten af ​​adresseområdet. I tilfælde af udnyttelse af sårbarheden i biblioteket vil angriberen være begrænset og ikke være i stand til at få adgang til hukommelsesområderne i hovedprocessen eller overføre kontrol uden for sandkassen.

En API på højt niveau leveres til udviklere, så du kan kalde biblioteksfunktioner i isolationstilstand.

masse WebAssembly-controllere kræver næsten ingen yderligere ressourcer og at interagere med dem er ikke meget langsommere end at kalde almindelige funktioner (biblioteksfunktioner kører i form af indfødt kode, og overbelastning forekommer kun, når man kopierer og verificerer data i processen med at interagere med et sandkassemiljø) .

Funktionerne i et isoleret bibliotek kan ikke påberåbes direkte, og for at få adgang til dem skal du bruge laget invoke_sandbox_function().

Hvis de igen har brug for at kalde eksterne funktioner fra biblioteket, skal disse funktioner defineres eksplicit ved hjælp af register_callback-metoden (som standard giver RLBox adgang til standardbiblioteksfunktioner).

For at sikre sikker hukommelsesdrift, isolering af kodeudførelse er ikke nok og også du skal give verifikation af de returnerede datastrømme.

Værdier genereret i et isoleret miljø er markeret som upålidelige, begrænset af plettede tags og kræver verifikation og kopiering til applikationshukommelse til "oprydning".

Uden rengøring fører et forsøg på at bruge forurenede data i en sammenhæng, der kræver regelmæssige data (og omvendt) til generering af fejl på kompileringsstadiet.

Små funktionsargumenter, returværdier og strukturer sendes ved kopiering mellem proceshukommelse og sandkassehukommelse. For store datasæt allokeres hukommelse i et isoleret miljø, og en direkte "sandbox reference" -markør returneres til hovedprocessen.

RLBox-udvikling distribueres under MIT-licensen. RLBox understøtter i øjeblikket Linux og macOS og forventes at være kompatibel med Windows senere.

Hvis du vil vide mere om denne nye teknologi, som Mozilla planlægger at implementere i Firefox, kan du konsultere dens udvikling samt teste API'et I det følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.