RLBox, nova tehnologija izolacije knjižnice koju koristi Mozilla

Firefox logotip

Istraživači sa Sveučilišta Stanfordje University of California u San Diegu y la Sveučilište u Teksasu u Austinu Razvili su se skup alata kojima su dali ime "RLBox", ovo može se koristiti kao dodatna razina izolacije za blokiranje ranjivosti u knjižnicama funkcija.

RLBox ima za cilj riješiti sigurnosni problem knjižnica trećih strana Nepouzdani koje programeri ne kontroliraju, već ranjivosti u kojima bi glavni projekt mogao ugroziti.

Mozilla planira koristiti RLBox u Firefoxovim 74 verzijama za Linux i kompilacije macOS u Firefoxu 75 kako bi se izoliralo izvršavanje biblioteke Graphite, koja je odgovorna za predstavljanje izvora.

Istodobno, RLBox nije specifičan za Firefox i može se koristiti za izoliranje bilo koje knjižnice u proizvoljnim projektima.

O RLBoxu

Mehanizam rada RLBox se svodi na kompajliranje C / C ++ koda iz izolirane knjižnice u srednji WebAssembly kôd niska razina, koja se zatim izdaje kao modul WebAssembly, čije je ovlaštenje postavljeno da se veže samo na ovaj modul (na primjer, knjižnica za obradu nizova ne može otvoriti utičnicu ili mrežnu datoteku) C / C ++ pretvorba koda a WebAssembly se vrši pomoću wasi-sdk.

Za izravno izvršenje, modul WebAssembly kompajlira se u strojni kod pomoću Lucet kompajlera i radi u "nanoprocesu" odvojenom od ostatka memorije aplikacije. Kompajler Lucet temelji se na istom kodu kao i motor Cranelift JIT koji se koristi u Firefoxu za pokretanje WebAssemblya.

Sastavljeni modul radi u zasebnom memorijskom području i nema pristup ostatku adresnog prostora. U slučaju iskorištavanja ranjivosti u knjižnici, napadač će biti ograničen i neće moći pristupiti memorijskim područjima glavnog procesa ili kontroli prijenosa izvan pješčanika.

Za programere je predviđen API visoke razine koji vam omogućuje pozivanje funkcija knjižnice u izolacijskom načinu.

The Kontrolori WebAssembly ne zahtijevaju gotovo nikakve dodatne resurse a interakcija s njima nije puno sporija od pozivanja uobičajenih funkcija (funkcije knjižnice izvode se u obliku izvornog koda, a preopterećenje se događa samo prilikom kopiranja i provjere podataka u procesu interakcije s okruženjem u zaštićenom okruženju).

Funkcije izolirane knjižnice ne mogu se pozvati izravno, a da biste im pristupili, morate koristiti sloj funkcija invoke_sandbox_function ().

Zauzvrat, ako trebaju pozvati vanjske funkcije iz knjižnice, te funkcije moraju biti izričito definirane metodom register_callback (prema zadanim postavkama RLBox omogućuje pristup standardnim funkcijama knjižnice).

Da biste osigurali siguran rad memorije, izoliranje izvršenja koda nije dovoljno i trebate osigurati provjeru vraćenih tokova podataka.

Vrijednosti generirane u izoliranom okruženju označene su kao nepouzdane, ograničene oštećenim oznakama i zahtijevaju provjeru i kopiranje u memoriju aplikacije radi "čišćenja".

Bez čišćenja, pokušaj upotrebe zagađenih podataka u kontekstu koji zahtijeva redovite podatke (i obrnuto) dovodi do generiranja pogrešaka u fazi sastavljanja.

Argumenti male funkcije, povratne vrijednosti i strukture prenose se kopiranjem između procesne memorije i memorije pješčanika. Za velike skupove podataka memorija se dodjeljuje u izoliranom okruženju, a izravni pokazivač "referentnog okruženja u pijesku" vraća se glavnom procesu.

Razvoj RLBox-a distribuira se pod licencom MIT. RLBox trenutno podržava Linux i macOS a očekuje se da će kasnije biti kompatibilan sa sustavom Windows.

Ako želite znati više o ovoj novoj tehnologiji koju Mozilla planira implementirati u Firefox, možete se posavjetovati s njezinim razvojem, kao i testirati API U sljedećem linku.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.