„RLBox“ - nauja bibliotekos izoliavimo technologija, kurią naudoja „Mozilla“

„Firefox“ logotipas

Stanfordo universiteto mokslininkai, Kalifornijos universitetas San Diege y la Teksaso universitetas Ostine Jie išsivystė įrankių rinkinį, kuriam jie davė vardą „RLBox“, kad gali būti naudojamas kaip papildomas izoliacijos lygis blokuoti pažeidžiamumą funkcijų bibliotekose.

„RLBox“ siekia išspręsti trečiųjų šalių bibliotekų saugumo problemą Nepatikimi, kurių nekontroliuoja kūrėjai, tačiau pažeidžiamumai, dėl kurių pagrindinis projektas gali pakenkti.

„Mozilla“ planuoja naudoti „RLBox“ „Firefox 74“ versijose, skirtose „Linux“ ir rinkiniai „MacOS“ „Firefox 75“ izoliuoti „Graphite“ bibliotekos vykdymą, kuris yra atsakingas už šaltinių atstovavimą.

Tuo pačiu metu „RLBox“ nėra būdingas „Firefox“ ir gali būti naudojamas bet kurios savavališkų projektų bibliotekos izoliavimui.

Apie „RLBox“

Veikimo mechanizmas „RLBox“ verčia surinkti C / C ++ kodą iš izoliuotos bibliotekos į tarpinį „WebAssembly“ kodą žemo lygio, kuris tada išduodamas kaip „WebAssembly“ modulis, kurio autoritetas nustatytas susieti tik su šiuo moduliu (pavyzdžiui, eilučių apdorojimo biblioteka negali atidaryti lizdo ar tinklo failo) C / C ++ kodo konversija „WebAssemble“ atliekamas naudojant „wasi-sdk“.

Tiesioginiam vykdymui „WebAssembly“ modulis yra sukompiliuotas į mašininį kodą naudojant „Lucet“ kompiliatorių ir jis veikia „nanoprocesu“ atskirai nuo likusios programos atminties. „Lucet“ kompiliatorius yra pagrįstas tuo pačiu kodu, kaip ir „Cranelift JIT“ variklis, naudojamas „Firefox“ paleidžiant „WebAssembly“.

Surinktas modulis veikia atskiroje atminties srityje ir ji neturi prieigos prie likusios adresų vietos. Išnaudojant bibliotekos pažeidžiamumą, užpuolikas bus ribotas ir negalės patekti į pagrindinio proceso atminties sritis ar perduoti valdymą už smėlio dėžės ribų.

Kūrėjams teikiama aukšto lygio API, leidžianti iškviesti bibliotekos funkcijas atskirai.

Los „WebAssembly“ valdikliams beveik nereikia papildomų išteklių ir sąveika su jais nėra daug lėtesnė nei įprastų funkcijų iškvietimas (bibliotekos funkcijos vykdomos vietinio kodo pavidalu, o perkrova atsiranda tik kopijuojant ir tikrinant duomenis sąveikaujant su „sandbox“ aplinka). .

Izoliuotos bibliotekos funkcijų negalima tiesiogiai iškviesti, o norėdami jas pasiekti, turite naudoti sluoksnį invoke_sandbox_function().

Savo ruožtu, jei jiems reikia iškviesti išorines funkcijas iš bibliotekos, šios funkcijos turi būti aiškiai apibrėžtos naudojant „register_callback“ metodą (pagal nutylėjimą RLBox suteikia prieigą prie standartinių bibliotekos funkcijų).

Norėdami užtikrinti saugų atminties veikimą, nepakanka izoliuoti kodo vykdymą ir turite pateikti grąžintų duomenų srautų patikrinimą.

Izoliuotoje aplinkoje sukurtos vertės yra pažymėtos kaip nepatikimos, jas riboja sugadintos žymos, todėl jas reikia patikrinti ir nukopijuoti į programos atmintį, kad būtų galima ją išvalyti.

Neišvalius bandymas naudoti užterštus duomenis kontekste, kuriame reikalingi reguliarūs duomenys (ir atvirkščiai), kompiliavimo etape sukelia klaidas.

Mažos funkcijos argumentai, grąžinimo vertės ir struktūros perduodamos kopijuojant tarp proceso atminties ir smėlio dėžės atminties. Dideliems duomenų rinkiniams atmintis paskirstoma izoliuotoje aplinkoje ir tiesioginis „smėlio dėžės nuorodos“ rodyklė grąžinama į pagrindinį procesą.

„RLBox“ kūriniai platinami pagal MIT licenciją. Šiuo metu „RLBox“ palaiko „Linux“ ir „MacOS“ ir tikimasi, kad vėliau bus suderinama su „Windows“.

Jei norite sužinoti daugiau apie šią naują technologiją, kurią „Mozilla“ planuoja įdiegti „Firefox“, galite pasikonsultuoti su jos kūrimu ir išbandyti API Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.