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

Logotip del Firefox

Investigadors de la Universitat de Stanford, Universitat de Califòrnia a San Diego y la Universitat de Texas a Austin s'han desenvolupat un conjunt d'eines a què 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 què podria comprometre el projecte principal.

Mozilla planeja utilitzar RLBox a les compilacions del Firefox 74 per a Linux i les compilacions de macOS al Firefox 75 per aïllar l'execució de la biblioteca Graphite, que s'encarrega de representar les fonts.

Alhora, RLBox no és específic del Firefox i es pot utilitzar 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 del qual està configurada per vincular-se només a aquest mòdul (per exemple, una biblioteca per processar cadenes no pot obrir un socket o fitxer 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 al codi de la màquina utilitzant el compilador Lucet i s'executa en un "nanoprocés" 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 al Firefox per executar WebAssembly.

El mòdul assemblat funciona en una àrea de memòria separada i no teniu accés a la resta de l'espai d'adreces. En el cas de lexplotació de la vulnerabilitat a la biblioteca, latacant estarà limitat i no podrà accedir a les àrees de memòria del procés principal o transferir el control fora de lentorn 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 nadiu, i la sobrecàrrega passa només quan copia i verifica les 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, heu d'usar la capa invoke_sandbox_function ().

Alhora, si necessiteu trucar a funcions externes des de la biblioteca, aquestes funcions s'han de definir explícitament utilitzant el mètode register_callback (per defecte, 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ó del codi no és suficient i també cal proporcionar la verificació dels fluxos de dades retornades.

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

Sense neteja, un intent de fer servir dades contaminades 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 tornada i estructures mitjançant la còpia entre la memòria de procés i la memòria de l'entorn aïllat. Per a 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 al procés principal.

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

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


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  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ó.