RLBox, noua tehnologie de izolare a bibliotecii utilizată de Mozilla

Logo Firefox

Cercetătorii Universității Stanford, Universitatea din California in san diego y la Universitatea din Texas în Austin Ei s-au dezvoltat un set de instrumente de care au dat numele „RLBox”,poate fi folosit ca un nivel suplimentar de izolare pentru a bloca vulnerabilitățile din bibliotecile de funcții.

RLBox își propune să rezolve problema de securitate a bibliotecilor terțe de încredere care nu sunt controlate de dezvoltatori, ci vulnerabilități în care proiectul principal ar putea compromite.

Mozilla intenționează să utilizeze RLBox în versiunile Firefox 74 pentru Linux și compilațiile de macOS în Firefox 75 pentru a izola execuția bibliotecii Graphite, care este responsabil pentru reprezentarea surselor.

În același timp, RLBox nu este specific Firefox și poate fi folosit pentru a izola orice bibliotecă în proiecte arbitrare.

Despre RLBox

Mecanismul de funcționare RLBox se reduce la compilarea codului C / C ++ dintr-o bibliotecă izolată în cod intermediar WebAssembly de nivel scăzut, care este apoi emis ca un modul WebAssembly, a cărui autoritate este setată să se lege numai de acest modul (de exemplu, o bibliotecă pentru procesarea șirurilor nu poate deschide un socket sau un fișier de rețea) Conversia codului C / C ++ a WebAssembly se face folosind wasi-sdk.

Pentru executarea directă, modulul WebAssembly este compilat în codul mașinii folosind compilatorul Lucet și rulează într-un „nanoproces” separat de restul memoriei aplicației. Compilatorul Lucet se bazează pe același cod ca motorul Cranelift JIT utilizat în Firefox pentru a rula WebAssembly.

Modulul asamblat funcționează într-o zonă separată de memorie și nu are acces la restul spațiului de adrese. În cazul exploatării vulnerabilității din bibliotecă, atacatorul va fi limitat și nu va putea accesa zonele de memorie ale procesului principal sau să transfere controlul în afara sandbox-ului.

Un API de nivel înalt este oferit dezvoltatorilor, permițându-vă să apelați funcțiile bibliotecii în mod izolat.

L Controlerele WebAssembly nu necesită aproape resurse suplimentare și interacțiunea cu acestea nu este mult mai lentă decât apelarea funcțiilor obișnuite (funcțiile de bibliotecă rulează sub formă de cod nativ, iar supraîncărcarea are loc numai la copierea și verificarea datelor în procesul de interacțiune cu mediul înconjurat).

Funcțiile unei biblioteci izolate nu pot fi invocate direct, iar pentru a le accesa, trebuie să utilizați stratul invoke_sandbox_function().

La rândul lor, dacă trebuie să apeleze funcții externe din bibliotecă, aceste funcții trebuie definite în mod explicit folosind metoda register_callback (în mod implicit, RLBox oferă acces la funcțiile standard ale bibliotecii).

Pentru a asigura o operare sigură a memoriei, izolarea executării codului nu este suficientă și, de asemenea, trebuie să furnizați verificarea fluxurilor de date returnate.

Valorile generate într-un mediu izolat sunt marcate ca fiind de încredere, limitate de etichete contaminate și necesită verificare și copiere în memoria aplicației pentru „curățare”.

Fără curățare, o încercare de a utiliza date poluate într-un context care necesită date regulate (și invers) duce la generarea de erori în etapa de compilare.

Argumentele funcțiilor mici, valorile returnate și structurile sunt transmise prin copierea între memoria procesului și memoria sandbox. Pentru seturile mari de date, memoria este alocată într-un mediu izolat și un indicator direct de „referință sandbox” este returnat procesului principal.

Dezvoltările RLBox sunt distribuite sub licența MIT. RLBox acceptă în prezent Linux și macOS și este de așteptat să fie compatibil cu Windows mai târziu.

Dacă doriți să aflați mai multe despre această nouă tehnologie pe care Mozilla intenționează să o implementeze în Firefox, puteți consulta dezvoltarea sa, precum și testa API-ul În următorul link.


Conținutul articolului respectă principiile noastre de etică editorială. Pentru a raporta o eroare, faceți clic pe aici.

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată.

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.