Mozilla inizia a implementare la tecnologia di isolamento delle librerie RLBox

I ricercatori dell'Università di Stanford, dell'Università della California a San Diego e dell'Università del Texas ad Austin hanno sviluppato un toolkit RLBox, che può essere utilizzato come ulteriore livello di isolamento per bloccare le vulnerabilità nelle librerie di funzioni. RLBox mira a risolvere il problema della sicurezza delle librerie di terze parti non affidabili, che non sono sotto il controllo degli sviluppatori, ma le cui vulnerabilità possono compromettere il progetto principale.

Azienda Mozilla intende utilizzare RLBox nelle versioni di Firefox 74 su Linux e nelle versioni di Firefox 75 su macOS per isolare l'esecuzione della libreria Graphite, responsabile del rendering dei caratteri. RLBox, tuttavia, non è specifico per Firefox e può essere utilizzato per isolare qualsiasi libreria in progetti arbitrari. Sviluppi RLBox sono distribuiti sotto licenza MIT. Attualmente, RLBox supporta il funzionamento sulle piattaforme Linux e macOS, mentre il supporto per Windows è previsto in seguito.

Il meccanismo il lavoro di RLBox consiste nella compilazione del codice C/C++ della libreria isolata in codice intermedio a basso livello in WebAssembly, che viene poi confezionato come modulo WebAssembly, i cui privilegi sono assegnati in modo limitato a quel modulo (ad esempio, una libreria per l'elaborazione delle stringhe non potrà aprire un socket di rete o un file). La trasformazione del codice C/C++ in WebAssembly avviene tramite wasi-sdk.

Per l'esecuzione diretta, il modulo WebAssembly viene compilato in codice macchina tramite il compilatore Lucet ed eseguito in un 'nanoprocesso' separato, isolato dalla memoria rimanente dell'applicazione. Il compilatore Lucet è basato sullo stesso codice del motore JIT Cranelift, utilizzato in Firefox per eseguire WebAssembly.

Il modulo compilato funziona in un'area di memoria separata e non ha accesso allo spazio indirizzabile rimanente. In caso di sfruttamento di una vulnerabilità nella libreria, l'attaccante sarà limitato e non potrà accedere alle aree di memoria del processo principale o trasferire il controllo al di fuori dell'ambiente isolato.

Mozilla inizia a implementare la tecnologia di isolamento delle librerie RLBox

Per gli sviluppatori è fornito un alto livello di API, che permette di chiamare le funzioni della libreria in modalità isolata. I gestori WebAssembly richiedono quasi nessuna risorsa aggiuntiva e la loro interazione non è molto più lenta della chiamata di funzioni normali (le funzioni della libreria vengono eseguite sotto forma di codice nativo, con sovraccarichi che si verificano solo durante la copia e il controllo dei dati nell'interazione con l'ambiente isolato). Le funzioni della libreria isolata non possono essere chiamate direttamente e per accedervi è necessario utilizzare
il layer invoke_sandbox_function().

D'altra parte, se nella libreria è necessario chiamare funzioni esterne, queste funzioni devono essere esplicitamente definite utilizzando il metodo register_callback (per impostazione predefinita, RLBox fornisce accesso alle funzioni della libreria standard). Per garantire un lavoro sicuro con la memoria (memory safety), l'isolamento dell'esecuzione del codice non è sufficiente; è necessario garantire anche il controllo dei flussi di dati restituiti.

I valori formati nell'ambiente isolato sono contrassegnati come non fidati, limitati attraverso etichette tainted e per la 'pulizia' richiedono verifica e copia nella memoria dell'applicazione.
Senza pulizia, il tentativo di utilizzare dati tainted in un contesto che richiede dati normali (e viceversa) genera errori durante la fase di compilazione. Piccoli argomenti delle funzioni, valori di ritorno e strutture vengono trasmessi tramite copia tra la memoria del processo e la memoria dell'ambiente isolato. Per grandi set di dati, la memoria viene allocata nell'ambiente isolato e al processo principale viene restituito un puntatore diretto 'sandbox-reference'.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster