Mozilla inizia ad 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 strumentazione RLBox, che può essere utilizzato come ulteriore livello di isolamento per bloccare le vulnerabilità nelle librerie di funzioni. RLBox è progettato per affrontare 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.

L'azienda Mozilla prevede implementare RLBox nelle versioni Linux di Firefox 74 e nelle versioni macOS di Firefox 75 per isolare l'esecuzione della libreria Grafite, responsabile della resa dei caratteri. Inoltre, RLBox non è specifico per Firefox e può essere utilizzato per isolare qualsiasi libreria in progetti arbitrarî. Sviluppi RLBox sono distribuite sotto licenza MIT. Attualmente RLBox supporta il funzionamento su piattaforme Linux e macOS, il supporto per Windows è previsto in seguito.

Meccanismo il funzionamento di RLBox consiste nella compilazione del codice C/C++ della libreria isolata in un codice intermedio a basso livello WebAssembly, che viene quindi confezionato sotto forma di modulo WebAssembly, le cui autorizzazioni sono definite legate esclusivamente a questo modulo (ad esempio, una libreria per la gestione delle stringhe non può aprire un socket di rete o un file). La trasformazione del codice C/C++ in WebAssembly viene effettuata mediante 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 restante memoria dell'applicazione. Il compilatore Lucet è basato sullo stesso codice del motore JIT Cranelift, utilizzato in Firefox per eseguire WebAssembly.

Il modulo compilato opera in un'area di memoria separata e non ha accesso allo spazio di indirizzamento 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 ad implementare la tecnologia di isolamento delle librerie RLBox

Per gli sviluppatori è fornita un'API di alto livello API, che consente di invocare funzioni della libreria in modalità di isolamento. I gestori WebAssembly richiedono quasi nessuna risorsa aggiuntiva e l'interazione con essi non è significativamente più lenta rispetto alla chiamata di funzioni normali (le funzioni della libreria vengono eseguite in forma di codice nativo e le spese generali si verificano solo durante la copia e il controllo dei dati nel processo di interazione con l'ambiente isolato). Le funzioni della libreria isolata non possono essere chiamate direttamente e per accedervi è necessario utilizzare
il livello invoke_sandbox_function().

A sua volta, se dalla libreria è necessario chiamare funzioni esterne, queste funzioni devono essere esplicitamente definite mediante 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 e richiede anche la verifica dei flussi di dati restituiti.

I valori formati nell'ambiente isolato sono contrassegnati come non affidabili, limitati mediante etichette tainted e per la «pulizia» richiedono verifica e copia nella memoria dell'applicazione.
Senza pulizia, il tentativo di utilizzare i dati tainted in un contesto che richiede dati normali (e viceversa) genera errori in fase di compilazione. Piccoli argomenti delle funzioni, valori restituiti e strutture vengono trasferiti tramite copia tra la memoria del processo e quella 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, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster