RLBox, la nuova tecnologia di isolamento delle librerie utilizzata da Mozilla

Logo di Firefox

Ricercatori della Stanford University, la Università della California a san diego y la Università del Texas ad Austin Si sono sviluppati una serie di strumenti a cui hanno dato il nome "RL Box", che può essere utilizzato come ulteriore livello di isolamento per bloccare le vulnerabilità nelle librerie di funzioni.

RLBox mira a risolvere il problema di sicurezza delle librerie di terze parti Untrusted che non sono controllati dagli sviluppatori, ma vulnerabilità in cui il progetto principale potrebbe compromettere.

Mozilla prevede di utilizzare RLBox nelle build di Firefox 74 per Linux e le compilazioni di macOS in Firefox 75 per isolare l'esecuzione della libreria Graphite, che è responsabile della rappresentazione delle fonti.

Allo stesso tempo, RLBox non è specifico di Firefox e può essere utilizzato per isolare qualsiasi libreria in progetti arbitrari.

Informazioni su RLBox

Il meccanismo di funzionamento RLBox si riduce alla compilazione di codice C / C ++ da una libreria isolata in codice WebAssembly intermedio basso livello, che viene quindi emesso come modulo WebAssembly, la cui autorità è impostata per legarsi solo a questo modulo (ad esempio, una libreria per l'elaborazione delle stringhe non può aprire un socket o un file di rete) Conversione del codice C / C ++ un WebAssembly viene eseguito utilizzando wasi-sdk.

Per l'esecuzione diretta, il modulo WebAssembly viene compilato in codice macchina utilizzando il compilatore Lucet e funziona in un "nanoprocesso" separato dal resto della memoria dell'applicazione. Il compilatore Lucet si basa sullo stesso codice del motore Cranelift JIT utilizzato in Firefox per eseguire WebAssembly.

Il modulo assemblato lavora in un'area di memoria separata e non ha accesso al resto dello spazio degli indirizzi. In caso di sfruttamento della vulnerabilità nella libreria, l'aggressore sarà limitato e non potrà accedere alle aree di memoria del processo principale o trasferire il controllo al di fuori della sandbox.

Viene fornita un'API di alto livello per gli sviluppatori, che consente di chiamare le funzioni di libreria in modalità di isolamento.

I I controller WebAssembly non richiedono quasi risorse aggiuntive e interagire con loro non è molto più lento che chiamare funzioni ordinarie (le funzioni di libreria vengono eseguite sotto forma di codice nativo e il sovraccarico si verifica solo durante la copia e la verifica dei dati nel processo di interazione con l'ambiente sandbox) .

Le funzioni di una libreria isolata non possono essere richiamate direttamente e per accedervi è necessario utilizzare il layer invocare_sandbox_function().

A loro volta, se devono chiamare funzioni esterne dalla libreria, queste funzioni devono essere definite esplicitamente utilizzando il metodo register_callback (per impostazione predefinita, RLBox fornisce l'accesso alle funzioni di libreria standard).

Per garantire un funzionamento sicuro della memoria, isolare l'esecuzione del codice non è sufficiente e inoltre è necessario fornire la verifica dei flussi di dati restituiti.

I valori generati in un ambiente isolato sono contrassegnati come inaffidabili, limitati da tag contaminati e richiedono la verifica e la copia nella memoria dell'applicazione per la "pulizia".

Senza pulizia, un tentativo di utilizzare dati inquinati in un contesto che richiede dati regolari (e viceversa) porta alla generazione di errori in fase di compilazione.

Piccoli argomenti di funzione, valori di ritorno e strutture vengono passati copiando tra la memoria del processo e la memoria sandbox. Per set di dati di grandi dimensioni, la memoria viene allocata in un ambiente isolato e un puntatore diretto "riferimento sandbox" viene restituito al processo principale.

Gli sviluppi di RLBox sono distribuiti con la licenza MIT. RLBox attualmente supporta Linux e macOS e dovrebbe essere compatibile con Windows in seguito.

Se vuoi saperne di più su questa nuova tecnologia che Mozilla prevede di implementare in Firefox, puoi consultare il suo sviluppo e testare l'API nel seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.