RLBox, teknologjia e re e izolimit të bibliotekës e përdorur nga Mozilla

Logo e Firefox-it

Studiuesit e Universitetit të Stanfordit, Universiteti i Kalifornisë ne san diego y la Universiteti i Teksasit në Austin Ata janë zhvilluar një grup mjetesh për të cilat ata i dhanë emrin "RLBox",mund të përdoret si një nivel shtesë i izolimit për të bllokuar dobësitë në bibliotekat e funksioneve.

RLBox synon të zgjidhë problemin e sigurisë së bibliotekave të palëve të treta Mosbesim që nuk kontrollohen nga zhvilluesit, por dobësi në të cilat projekti kryesor mund të bëjë kompromis.

Mozilla planifikon të përdorë RLBox në ndërtimet e Firefox 74 për Linux dhe përpilimet e macOS në Firefox 75 për të izoluar ekzekutimin e bibliotekës Graphite, i cili është përgjegjës për përfaqësimin e burimeve.

Në të njëjtën kohë, RLBox nuk është specifik për Firefox dhe mund të përdoret për të izoluar çdo bibliotekë në projekte arbitrare.

Rreth RLBox

Mekanizmi i funksionimit RLBox përfundon në përpilimin e kodit C / C ++ nga biblioteka e izoluar në kodin e ndërmjetëm WebAssemble i nivelit të ulët, i cili më pas lëshohet si një modul WebAssemble, autoriteti i të cilit është vendosur të lidhet vetëm me këtë modul (për shembull, një bibliotekë për përpunimin e vargjeve nuk mund të hapë një fole ose skedar rrjeti) Shndërrimi i kodit C / C ++ a Montimi në Web bëhet duke përdorur wasi-sdk.

Për ekzekutimin e drejtpërdrejtë, moduli WebAssemble është përpiluar në kodin e makinës duke përdorur përpiluesin Lucet dhe ekzekutohet në një "nanoproces" veçmas nga pjesa tjetër e kujtesës së aplikacionit. Përpiluesi Lucet bazohet në të njëjtin kod si motori Cranelift JIT i përdorur në Firefox për të ekzekutuar WebAssemble.

Moduli i mbledhur punon në një zonë të veçantë kujtese dhe nuk ka qasje në pjesën tjetër të hapësirës së adresës. Në rastin e shfrytëzimit të cenueshmërisë në bibliotekë, sulmuesi do të jetë i kufizuar dhe nuk do të jetë në gjendje të hyjë në zonat e kujtesës të procesit kryesor ose të transferojë kontrollin jashtë sandbox.

Developshtë siguruar një API i nivelit të lartë për zhvilluesit, duke ju lejuar të thërrisni funksionet e bibliotekës në modalitetin e izolimit.

L Kontrolluesit e WebAssemble nuk kërkojnë pothuajse asnjë burim shtesë dhe bashkëveprimi me ta nuk është shumë më i ngadaltë sesa thirrja e funksioneve të zakonshme (funksionet e bibliotekës ekzekutohen në formën e kodit vendas dhe mbingarkesa ndodh vetëm kur kopjoni dhe verifikoni të dhëna në procesin e bashkëveprimit me ambientin me sandbox).

Funksionet e një biblioteke të izoluar nuk mund të thirren direkt, dhe për t'i hyrë në to, duhet të përdorni shtresën invoke_sandbox_function().

Nga ana tjetër, nëse ata kanë nevojë për të thirrur funksione të jashtme nga biblioteka, këto funksione duhet të përcaktohen qartë duke përdorur metodën Register_callback (si parazgjedhje, RLBox siguron qasje në funksionet standarde të bibliotekës).

Për të siguruar funksionimin e sigurt të kujtesës, izolimi i ekzekutimit të kodit nuk është i mjaftueshëm dhe gjithashtu duhet të siguroni verifikimin e rrjedhave të të dhënave të kthyera.

Vlerat e krijuara në një mjedis të izoluar janë shënuar si jo të besueshme, të kufizuara nga etiketat e kontaminuara dhe kërkojnë verifikim dhe kopjim në kujtesën e aplikacionit për "pastrim".

Pa pastrim, një përpjekje për të përdorur të dhëna të ndotura në një kontekst që kërkon të dhëna të rregullta (dhe anasjelltas) çon në gjenerimin e gabimeve në fazën e përpilimit.

Argumentet e funksioneve të vogla, vlerat e kthimit dhe strukturat kalohen duke kopjuar midis kujtesës së procesit dhe kujtesës së sandboxit. Për grupe të mëdha të të dhënave, kujtesa alokohet në një mjedis të izoluar dhe një tregues i drejtpërdrejtë "referimi i sandboxit" kthehet në procesin kryesor.

Zhvillimet e RLBox shpërndahen nën licencën MIT. RLBox aktualisht mbështet Linux dhe macOS dhe pritet të jetë në përputhje me Windows më vonë.

Nëse doni të dini më shumë rreth kësaj teknologjie të re që Mozilla planifikon të implementojë në Firefox, ju mund të konsultoheni me zhvillimin e saj si dhe të testoni API Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.