La compagnia Mozilla ha annunciato l'inizio di un test massiccio nelle versioni notturne e nei rilasci beta di Firefox della modalità di isolamento rigoroso dei siti, sviluppata nell'ambito del progetto Fission. Questa modalità amplia l'applicazione dell'architettura multi-processo: invece di un pool fisso di processi, viene creato un processo separato per ogni sito. La gestione dell'attivazione della modalità Fission avviene tramite la variabile "fission.autostart=true" in about:config o nella pagina about:preferences#experimental.
Ricordiamo che il modello multi-processo utilizzato in Firefox fino ad ora prevedeva l'avvio di un pool di processi gestori: di default, 8 processi principali per l'elaborazione dei contenuti, 2 processi secondari non privilegiati per il web e 4 processi ausiliari per estensioni, interazione con la GPU, operazioni di rete e decodifica dei dati multimediali. La distribuzione delle schede tra i processi avveniva in modo casuale; ad esempio, in un processo potevano trovarsi sia l'elaborazione del sito di una banca che quella di una risorsa dubbia e non affidabile.
La nuova modalità esegue il trattamento di ciascun sito in un processo separato, non categorizzato per schede ma per domini, consentendo di isolare ulteriormente i contenuti degli script esterni e dei blocchi iframe. Per il trattamento separato dei sottodomini di servizi standard collegati a diversi siti, viene applicata una suddivisione non formale ma basata su quello reale (eTLD) domini di primo livello, contrassegnati nell'elenco Public Suffix (cioè, i siti «a.github.io» e «b.github.io» saranno eseguiti in processi distinti).
La modalità di isolamento rigoroso consente di proteggersi da attacchi attraverso canali esterni, ad esempio collegati a vulnerabilità come Spectre, che possono portare a fughe di informazioni all'interno dello stesso processo. La fuga di dati riservati trattati nello stesso processo è possibile durante l'esecuzione di codice esterno non affidabile nei motori con JIT e in macchine virtuali. Nel contesto dei browser web, il codice JavaScript dannoso proveniente da un sito può accedere a informazioni come password, chiavi d'accesso e numeri di carte di credito inseriti su un altro sito, gestito all'interno dello stesso processo. Inizialmente, per proteggere dagli attacchi tramite canali di terze parti, gli sviluppatori dei browser hanno limitato la precisione del timer e bloccato l'accesso all'API SharedArrayBuffer, ma queste misure complicavano e rallentavano solo l'esecuzione degli attacchi (ad esempio, è stato recentemente proposto un metodo per estrarre dati dalla cache della CPU che funziona senza utilizzare JavaScript).
Altri vantaggi della modalità di isolamento rigoroso includono la riduzione della frammentazione della memoria, un ritorno più efficace della memoria al sistema operativo, la minimizzazione dell'impatto della raccolta dei rifiuti e dei calcoli intensivi sulle pagine in altri processi, una migliore distribuzione del carico su diversi core della CPU e una maggiore stabilità (il crash del processo che gestisce un iframe non influenzerà il sito principale e altre schede).
Tra i problemi conosciuti che si verificano durante l'utilizzo di Fission si segnalano un notevole aumento del consumo di memoria, delle connessioni X11 e dei descrittori di file quando vengono aperte molte schede, oltre a malfunzionamenti di alcune estensioni, scomparsa di contenuti iframe durante la stampa e l'attivazione della funzione di acquisizione dello schermo, riduzione dell'efficacia della memorizzazione nella cache dei documenti con iframe e perdita dei contenuti delle forme compilate ma non inviate durante il ripristino della sessione dopo un crash.
Fonte: opennet.ru
