RLBox, la nova tecnologia d'aïllament de biblioteques que fes servir Mozilla

Logotip del Firefox

Investigadors de la Universitat de Stanford, la Universitat de Califòrnia a San Diego y la Universitat de Texas a Austin s'han desenvolupat un conjunt d'eines a les que els van donar el nom de RLBox, que pot ser utilitzat com un nivell addicional d'aïllament per bloquejar vulnerabilitats a les biblioteques de funcions.

RLBox té com a objectiu resoldre el problema de seguretat de les biblioteques de tercers no fiables que no estan controlades pels desenvolupadors, però les vulnerabilitats en les que podria comprometre el projecte principal.

Mozilla pensat usar RLBox en les compilacions del Firefox 74 per a Linux i les compilacions de macOS a Firefox 75 per aïllar l'execució de la biblioteca Graphite, Que s'encarrega de representar les fonts.

A el mateix temps, RLBox no és específic de Firefox i pot usar-se per aïllar qualsevol biblioteca en projectes arbitraris.

sobre RLBox

El mecanisme d'operació RLBox es redueix a compilar el codi C / C ++ de la biblioteca aïllada en un codi intermedi de WebAssembly de baix nivell, que després s'emet com un mòdul de WebAssembly, l'autoritat està configurada per vincular-sol a aquest mòdul (per exemple, una biblioteca per processar cadenes no pot obrir un sòcol o arxiu de xarxa) la conversió de codi C / C ++ a WebAssembly es realitza mitjançant wasi-sdk.

Per a l'execució directa, el mòdul WebAssembly es compila en el codi de la màquina utilitzant el compilador Lucet i s'executa en un «nanoproceso» separat de la resta de la memòria de l'aplicació. El compilador Lucet es basa en el mateix codi que el motor Cranelift JIT utilitzat en Firefox per executar WebAssembly.

El mòdul acoblat funciona en una àrea de memòria separada i no té accés a la resta de l'espai d'adreces. En el cas de l'explotació de la vulnerabilitat a la biblioteca, l'atacant estarà limitat i no podrà accedir a les àrees de memòria de l'procés principal o transferir el control fora de l'entorn aïllat.

Es proporciona una API d'alt nivell per a desenvolupadors, que permet trucar a les funcions de la biblioteca en mode d'aïllament.

Els controladors de WebAssembly gairebé no requereixen recursos addicionals i la interacció amb ells no és molt més lenta que la crida a funcions ordinàries (les funcions de la biblioteca s'executen en forma de codi natiu, i la sobrecàrrega passa només a l'copiar i verificar dades en el procés d'interacció amb un entorn aïllat) .

Les funcions d'una biblioteca aïllada no es poden invocar directament, i per accedir-hi, ha d'usar la capa invoke_sandbox_function ().

Al seu torn, si necessiten trucar a funcions externes des de la biblioteca, aquestes funcions s'han de definir explícitament utilitzant el mètode register_callback (per omissió, RLBox proporciona accés a les funcions de la biblioteca estàndard).

Per garantir un funcionament segur amb memòria, l'aïllament de l'execució de el codi no és suficient i també cal proporcionar la verificació dels fluxos de dades retornats.

Els valors generats en un entorn aïllat estan marcats com no dignes de confiança, limitats per etiquetes contaminades i requereixen verificació i còpia en la memòria de l'aplicació per «neteja».

Sense neteja, un intent d'usar dades contaminats en un context que requereix dades regulars (i viceversa) condueix a la generació d'errors en l'etapa de compilació.

Es passen petits arguments de funció, valors de retorn i estructures mitjançant la còpia entre la memòria de procés i la memòria de l'entorn aïllat. Per conjunts de dades grans, la memòria s'assigna en un entorn aïllat i es torna un punter directe de «referència de sandbox» a el procés principal.

Els desenvolupaments de RLBox es distribueixen sota la llicència MIT. RLBox actualment és compatible amb Linux i macOS i s'espera que sigui compatible amb Windows més endavant.

Si vols conèixer més a l'respecte sobre aquesta nova tecnologia que pensa implementar Mozilla a Firefox, pots consultar el seu desenvolupament així com poder provar l'API en el següent enllaç.


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà.

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

bool (true)