Firefox usa sandboxing
L’aggiornamento di Firefox offre un nuovo tipo di sandbox di sicurezza
Nota – Livelli superiori al valore predefinito corrente per un particolare tipo di processo non sono implementati.
Panoramica
Sicurezza sandboxing utilizza i processi figlio come confine di sicurezza. Il modello di processo, i.e. Come Firefox è diviso in vari processi e come questi processi interagiscono tra loro è comune a tutte le piattaforme. Per ulteriori informazioni, consultare la pagina wiki di elettrolisi e il suo successore, Project Fission. Gli aspetti di sicurezza di un processo figlio sandbox sono implementati su base piattaforma. Vedere la sezione Specifiche della piattaforma di seguito per ulteriori informazioni.
Documenti tecnici
- Specifiche della piattaforma
- Restrizioni dei file Ricerca bug
- Set di regole del filtro OSX
- Ricerca di indurimento
- Modello di processo
Stato attuale
Sandbox | Tronco | Beta | Pubblicazione | |||
---|---|---|---|---|---|---|
Livello | Livello | Versione | Livello | Versione | ||
Windows (contenuto) | Livello 6 | Livello 6 | FX76 | Livello 6 | FX76 | |
Windows (compositore) | Livello 0 [1] | |||||
Windows (GMP) | abilitato | abilitato | abilitato | |||
Windows (Socket) | Livello 1 | Livello 1 | FX75 | Livello 1 | FX75 | |
Windows 64Bit (plugin NPAPI) | abilitato | abilitato | abilitato | |||
OSX (contenuto) | Livello 3 | Livello 3 | FX56 | Livello 3 | FX56 | |
OSX (GMP) | abilitato | abilitato | abilitato | |||
OSX (RDD) | abilitato | abilitato | abilitato | |||
OSX (socket) | abilitato | Disabilitato | Disabilitato | |||
OSX (Flash NPAPI) | Livello 1 | Livello 1 | Livello 1 | |||
Linux (contenuto) | Livello 4 | Livello 4 | FX60 | Livello 4 | FX60 | |
Linux (GMP) | abilitato | abilitato | abilitato |
Un valore di “livello” riflette le impostazioni di sicurezza Sandbox univoci per ciascuna piattaforma e processo. La maggior parte dei processi ha solo due livelli “attivi”, l’impostazione corrente e un’impostazione inferiore (rilasciata precedente). Impostazioni di livello diverse da questi due valori non portano alcuna garanzia di alterazione del comportamento di sicurezza, le impostazioni di livello sono principalmente una funzione di debug di lancio di rilascio.
[1] Livello 1 disponibile ma disabilitato a causa di varie regressioni con scorrimento, vedere Bug 1347710.
finestre
Contenuto
Le impostazioni relative alla sicurezza di Sandbox sono raggruppate e associate a un livello di sicurezza. I valori di livello inferiore indicano una sandbox meno restrittiva.
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Mitigazione_extension_point_disable
Mitigazione_image_load_no_remote
Mitigazione_image_load_no_low_label
Mitigazione_image_load_prefer_sys32
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Mitigazione_extension_point_disable
Mitigazione_image_load_no_remote
Mitigazione_image_load_no_low_label
Mitigazione_image_load_prefer_sys32
Bloccato DACL predefinito
Plug -in Media Gecko (GMP)
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_extension_point_disable
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Bloccato DACL predefinito
[1] dipende dal plug -in multimediale
Decoder dati remoto (RDD)
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_extension_point_disable
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Mitigazione_image_load_prefer_sys32
Mitigazione_win32k_disable
Bloccato DACL predefinito
L’aggiornamento di Firefox offre un nuovo tipo di sandbox di sicurezza
Nota – Livelli superiori al valore predefinito corrente per un particolare tipo di processo non sono implementati.
Panoramica
Sicurezza sandboxing utilizza i processi figlio come confine di sicurezza. Il modello di processo, i.e. Come Firefox è diviso in vari processi e come questi processi interagiscono tra loro è comune a tutte le piattaforme. Per ulteriori informazioni, consultare la pagina wiki di elettrolisi e il suo succo, fissione del progetto. Gli aspetti di sicurezza di un processo figlio sandbox sono implementati su base piattaforma. Vedere la sezione Specifiche della piattaforma di seguito per ulteriori informazioni.
Documenti tecnici
- Specifiche della piattaforma
- Restrizioni dei file Ricerca bug
- Set di regole del filtro OSX
- Ricerca di indurimento
- Modello di processo
Stato attuale
Sandbox | Tronco | Beta | Pubblicazione | |||
---|---|---|---|---|---|---|
Livello | Livello | Versione | Livello | Versione | ||
Windows (contenuto) | Livello 6 | Livello 6 | FX76 | Livello 6 | FX76 | |
Windows (compositore) | Livello 0 [1] | |||||
Windows (GMP) | abilitato | abilitato | abilitato | |||
Windows (Socket) | Livello 1 | Livello 1 | FX75 | Livello 1 | FX75 | |
Windows 64Bit (plugin NPAPI) | abilitato | abilitato | abilitato | |||
OSX (contenuto) | Livello 3 | Livello 3 | FX56 | Livello 3 | FX56 | |
OSX (GMP) | abilitato | abilitato | abilitato | |||
OSX (RDD) | abilitato | abilitato | abilitato | |||
OSX (socket) | abilitato | Disabilitato | Disabilitato | |||
OSX (Flash NPAPI) | Livello 1 | Livello 1 | Livello 1 | |||
Linux (contenuto) | Livello 4 | Livello 4 | FX60 | Livello 4 | FX60 | |
Linux (GMP) | abilitato | abilitato | abilitato |
Un valore di “livello” riflette le impostazioni di sicurezza Sandbox univoci per ciascuna piattaforma e processo. La maggior parte dei processi ha solo due livelli “attivi”, l’impostazione corrente e un’impostazione inferiore (rilasciata precedente). Impostazioni di livello diverse da questi due valori non portano alcuna garanzia di alterazione del comportamento di sicurezza, le impostazioni di livello sono principalmente una funzione di debug di lancio di rilascio.
[1] Livello 1 disponibile ma disabilitato a causa di varie regressioni con scorrimento, vedere Bug 1347710.
finestre
Contenuto
Le impostazioni relative alla sicurezza di Sandbox sono raggruppate e associate a un livello di sicurezza. I valori di livello inferiore indicano una sandbox meno restrittiva.
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Mitigazione_extension_point_disable
Mitigazione_image_load_no_remote
Mitigazione_image_load_no_low_label
Mitigazione_image_load_prefer_sys32
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Mitigazione_extension_point_disable
Mitigazione_image_load_no_remote
Mitigazione_image_load_no_low_label
Mitigazione_image_load_prefer_sys32
Bloccato DACL predefinito
Plug -in Media Gecko (GMP)
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_extension_point_disable
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Bloccato DACL predefinito
[1] dipende dal plug -in multimediale
Decoder dati remoto (RDD)
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_extension_point_disable
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Mitigazione_image_load_prefer_sys32
Mitigazione_win32k_disable
Bloccato DACL predefinito
Mitigazione_strict_handle_checks
Mitigazione_dynamic_code_disable
Mitigazione_dll_search_order
Mitigation_force_ms_signed_bins
Plugin a 64 bit
Mitigazione_bottom_up_aslr
Mitigazione_heap_terminate
Mitigazione_sehop
Mitigazione_dep_no_atl_thunk
Mitigazione_dep
Bloccato DACL predefinito
- Pagina wiki Firefox/Win64
- Annuncio di rilascio
- Build di Windows 64-bit
OSX
Livelli di contenuto per i processi di contenuto Web e file
I processi di contenuto MAC utilizzano Sandbox Livello 3. I processi del contenuto del file (per file: /// origins) usano anche il livello 3 con regole aggiuntive per consentire l’accesso allettura al filesystem. I livelli 1 e 2 possono ancora essere abilitati in circa: config, ma non sono supportati e non è consigliabile. Diversi livelli di sandbox sono stati utilizzati per i test e il debug durante il lancio di funzionalità di sandboxing Mac, ma ora sono previsti per essere rimossi. Mac sandboxing utilizza un criterio di elenco bianco per tutti i tipi di processo. Ogni politica inizia con una dichiarazione per negare tutto l’accesso alle risorse di sistema e quindi specifica le risorse consentite. Il sandbox di livello 3 consente l’accesso ai metadati di lettura del file system con accesso completo per le letture per directory di sistema specifiche e alcune directory degli utenti, accesso al microfono, accesso a vari servizi di sistema, Windowserver, nominati SYSCTLS e IOKIT Properties e altri articoli vari. È in corso lavori per rimuovere l’accesso al microfono, a Windowserver e ad altri servizi di sistema ove possibile. Il sandbox blocca l’accesso alla scrittura a tutto il file system, leggi l’accesso alla directory del profilo (a parte le sottodirectory di Chrome and Extension. I livelli di sandbox più vecchi 1 e 2 sono meno restrittivi. Principalmente, il livello 2 consente l’accesso a lettura del file a tutto il filesystem tranne la directory ~/libreria. Il livello 1 consente tutto l’accesso a lettura del file. Le restrizioni di livello 1 sono un sottoinsieme di livello 2. Le restrizioni di livello 2 sono un sottoinsieme di livello 3.
Il criterio Web e il contenuto del file è definito in sandboxpolicycontent.H
Processi di plug -in Media Gecko
La politica GMP (GMP) di Gecko Media Plugins è definita in SandboxpoLicyGMP.H.
Processi di decodificatore dati remoti
La politica RDD (REMOTE DATA DECODER (RDD) è definita in Sandboxpolicyutility.H.
Processo socket
La politica del processo socket è definita in sandboxpolicysocket.H. Al momento (maggio 2020), la sandbox del processo socket viene utilizzata solo sul canale notturno e solo per la rete WebRTC.
Processo flash NPAPI
Abilitato in Firefox a partire da build 62. Il sandbox Mac Flash è abilitato al livello 1. Alcune caratteristiche sono influenzate dal sandbox e quelle sono documentate in “Modifiche che influenzano Adobe Flash su Firefox per Mac” sul supporto.Mozilla.org. Il criterio flash è definito in sandboxpolicyflash.H.
Linux
Livelli di contenuto
- Molte syscall, tra cui la creazione di processi
- Tutto dal livello 1
- Scrivi l’accesso al filesystem
- Esclude memoria condivisa, tempdir, video hardware
- Tutto dal livello 1-2
- Leggi l’accesso alla maggior parte del filesystem
- Esclude temi/configurazione GTK, caratteri, dati condivisi e librerie
- Tutto dal livello 1-3
- Accesso alla rete comprese le prese locali
- Esclude la presa X11
- A meno che FGXLRX o Virtualgl non siano in uso
Regole di contenuto
Plug -in Media Gecko
Impostazioni di personalizzazione
La sandbox Linux consente una certa quantità di controllo sul criterio sandbox attraverso vari: impostazioni di configurazione. Questi hanno lo scopo di consentire a più configurazioni non standard e distribuzioni esotiche per funzionare – senza compilare versioni personalizzate di Firefox, anche se non possono essere supportati direttamente dalla configurazione predefinita.
Vedere la registrazione dell’attività per informazioni su come eseguire il debug di questi scenari.
- Vedi i livelli di contenuto sopra. Ridurre ciò può aiutare a identificare il sandboxing come causa di un problema, ma stai meglio provare le autorizzazioni a grana più fine di seguito.
- Elenco separato da virgole di percorsi aggiuntivi da cui è consentito leggere o scrivere il processo di contenuto. Per consentire l’accesso a un intero albero di directory (piuttosto che solo la directory stessa), includi un trailing / carattere.
- Elenco sevato da virgola di numeri di chiamata di sistema aggiuntivi che dovrebbero essere consentiti nel processo di contenuto. Questi influenzano il filtro SeccComp-BPF.
Preferenze
Tipo di processo Tipo di preferenza Preferenza Contenuto numerico sicurezza.sandbox.contenuto.livello Plug -in Windows NPAPI numerico Dom.IPC.plugin.A livello di sandbox.predefinito
Dom.IPC.plugin.A livello di sandbox.Plugin OS X NPAPI numerico Dom.IPC.plugin.A livello di sandbox.predefinito
Dom.IPC.plugin.A livello di sandbox.veloceCompositore numerico sicurezza.sandbox.GPU.livello Media Incorporato N / A Nota – Livelli superiori al valore predefinito corrente per un particolare tipo di processo non sono implementati.
Restrizioni del file system
SandBoxing impone le restrizioni di scrittura e lettura del file system per gli script di contenuto aggiuntivo (frame e processo) basati su XUL. Per evitare problemi poiché le funzionalità di sandboxing lanciano autori aggiuntivi dovrebbero aggiornare il loro codice aggiuntivo legacy oggi in modo tale che gli script di contenuti non tentino più di leggere o scrivere da posizioni limitate. Nota che queste restrizioni non influiscono sullo script di contenuti WEBextension o lo script aggiuntivo XUL nel processo del browser.
Regole di accesso al file system per i processi di contenuto, precedenza inversa:
Posizione Tipo di accesso Restrizione file system leggere scrivere Nega per impostazione predefinita Installa posizione scrivere negare Installa posizione Leggere permettere Posizioni delle librerie di sistema scrivere negare Posizioni delle librerie di sistema Leggere permettere profilo/* leggere scrivere Nega per impostazione predefinita profilo/estensioni scrivere negare profilo/estensioni Leggere permettere Funzionalità di debug
Registrazione dell’attività
La seguente registrazione di sandbox di controllo prefs. Su Windows, l’output viene inviato alla console del browser quando disponibile e a una console sviluppatore collegata al processo del browser in esecuzione. Su OSX, una volta abilitato, le voci del registro di violazione sono visibili nella console.App (//Applicazioni/Utilità/Console.app). Su Linux, una volta abilitato, le voci del registro di violazione vengono registrate sulla console della riga di comando.
sicurezza.sandbox.registrazione.abilitato (booleano)
sicurezza.sandbox.finestre.tronco d'albero.StackTracedEpth (intero, Windows Specifica)Le seguenti variabili di ambiente innesca anche l’output di registrazione di sandbox:
Moz_sandbox_logging = 1
Registrazione Sandbox specifica per OSX
Su Mac, la registrazione della violazione di Sandbox è disabilitata per impostazione predefinita. Per abilitare la registrazione,
- Avvia l’app OS X Console (/Applicazioni/Utilità/Console.app) e filtrare su “plugin-container”.
- O Imposta il pref sicurezza.sandbox.registrazione.abilitato = true e riavviare il browser o avviare il browser con il Moz_sandbox_logging set variabile di ambiente. Basta impostare la variabile di ambiente MOZ_SANDBOX_MAC_FLASH_LOGGING Abilita la registrazione solo per il sandbox del plug -in flash NPAPI OS X quando è abilitato.
- Se console.L’app non è già in esecuzione al momento della violazione della sandbox, la violazione non è registrata in modo affidabile.
- A partire da Build 56, in cui le restrizioni di accesso alle letture del filesystem sono state serrate, l’esecuzione di Firefox innesca sempre le violazioni della sandbox e queste saranno registrate. Ad esempio, il plugin-container tenta di accedere /applicazioni e /utenti (bug 1378968). Vogliamo affrontarli quando possibile, ma alcune violazioni sono complicate da evitare o sono attivate dal codice della libreria OS X che non può ancora essere evitato.
Registrazione Sandbox specifica per Linux
La seguente variabile di ambiente attiva l’output di debug sandbox extra:
Moz_sandbox_logging = 1
Variabili ambientali
VARIABILE D’AMBIENTE DESCRIZIONE PIATTAFORMA Moz_Disable_Content_Sandbox Disabilita il processo di contenuto sandboxing per scopi di debug. Tutto MOZ_DISABLE_GMP_SANDBOX Disabilita Sandbox plug -in multimediale per scopi di debug Tutto MOZ_DISABLE_NPAPI_SANDBOX Disabilita sandbox di processo NPAPI a 64 bit Windows e Mac MOZ_DISABLE_GPU_SANDBOX Disabilita Sandbox GPU Process finestre Moz_Disable_rdd_sandbox Disabilita il processo di decodificatore dei dati sandbox Tutto Moz_Disable_Socket_Process_Sandbox Disabilita Sandbox processo di processo socket Tutto Impostazione di un ambiente personalizzato in Windows
1) Chiudi Firefox
2) browser nella posizione dell’installazione di Firefox utilizzando Explorer
3) Maiusc + Fare clic con il tasto destro nella finestra della cartella in cui Firefox.Exe si trova, selezionare “Apri finestra di comando qui”
4) Aggiungi le variabili di ambiente che si desidera impostare sulla finestra di comando –Imposta Moz_Disable_npapi_sandbox = 1 (return)
5) Entra con Firefox.Exe e Premere INVIO per avviare Firefox con il tuo ambiente personalizzato
Opzioni di costruzione locali
Per disabilitare la costruzione della sandbox, costruire completamente con questo nel tuo MozConfig:
Per disabilitare solo le parti di sandbox di contenuto:
Elenchi di bug
Priorità
Elenchi di sandboxing di sicurezza/processo
Elenchi di triage
- Elenco di triage sandboxing: https: // è.gd/ghrow8
- Elenca i bug dei componenti sandboxing che non sono tracciati da una pietra miliare
- Ignora precedentemente triad in SB o SB+
- Ignora meta bug e bug con NeedInfos
- Elenca qualsiasi bug nel database con SB?
- Ignora i bug con NeedInfos
- Bug precedentemente triagevano che non hanno pietre miliari e nessun set di priorità
- SB Tracking + ‘WebRTC’
Tabella di marcia
2020 H1 – Focus principale del lavoro
- Operazioni di disegno in tela remoto,
- Prerequisito per Win32K.Lockdown SYS.
- Prerequisito per Win32K.Lockdown SYS.
- Follow-up in bug per averlo inadempiente
- Vedi anche compositing WebGL fuori dal processo.
- Follow-up in Making It Shippable Bug.
- Bloccato su problemi di campo non riproducibili.
- Prerequisito per Win32K.Lockdown SYS.
- Vincere all’utilizzo della sicurezza e della memoria.
- Performance vince e risolverebbe molti problemi con le persone che affrontano i problemi con le configurazioni Docker/Kubernetes predefinite che danno solo una piccola quantità di memoria condivisa.
2020 H2 – Focus principale del lavoro
- Riporto di Win32K.Prerequisiti di blocco SYS dal 2020 H1.
- Riporto del lavoro di sandboxing GPU bloccato.
- Residente Win32K.bloccanti di sistemi.
- Abilita CIG in RDD.
- Indagare/sperimentare la fattibilità della spedizione di CIG nei contenuti.
Comunicazione
- Zoom: su invito, chiedi [email protected]
- Archivio delle note di incontro
- Server: chat.Mozilla.org
- Canale: #Hardening
Persone
- Gian-Carlo Pascto (GCP)
- N / A
- N / A
- Haik Aftadilian (Haik)
- Jed Davis (JLD)
- Chris Martin (Cmartin)
- Bob Owen (Bobowen)
- David Parks (tuttofare)
- Stephen Pohl (Spohl)
- Toshihito Kikuchi (Toshi)
- Gian-Carlo Pascto (GCP)
Proprietà del modulo Repo
Link
- Pagina wiki di elettrolisi (molti collegamenti di risorse aggiuntivi)
- Security/Sandbox/MacOS_Release – Descrizione di cosa fare quando viene visualizzata una nuova versione MacOS per scoprire quali aggiornamenti hanno effettuato al sandbox.
- Sandbox Chromium
- Guida Sandbox di Apple
- “Presentazione di Sandbox Linux di prossima generazione di Chrome” (SecComp-BPF correlato)
- Cliente nativo su Wikipedia (collegamenti a documenti sulla progettazione e l’uso di SFI da parte del cliente nativo, nonché documenti su SFI stesso.)
- Caratteristiche della modalità protetta in Internet Explorer
Archivio B2G
- Pagina di sicurezza del sistema del sistema operativo Firefox su MDN
- Sandboxing su panoramica B2G
- SecComp B2G Filter Perf Data
B2G è sempre stato “Sandboxed” in una certa misura; Ogni app/scheda ottiene il proprio processo di contenuto, che utilizza il modello di sicurezza Android: un UID separato per processo, nessun abbonamento a gruppo e patch di kernel che richiedono l’appartenenza al gruppo come l’accesso alla rete. Ma l’escalation dei privilegi tramite le vulnerabilità del kernel è relativamente comune, quindi utilizziamo anche il filtro delle chiamate di sistema SECCOMP-BPF per ridurre la superficie di attacco a cui un processo di contenuto compromesso può accedere direttamente.
L’aggiornamento di Firefox offre un nuovo tipo di sandbox di sicurezza
Oggi’S a Firefox martedì, quando l’ultima versione di Mozilla’S browser esce, completo di tutti gli aggiornamenti di sicurezza che sono stati uniti al prodotto dalla versione precedente.
Li chiamavamo Quarantywosdays, Perché Mozilla ha seguito un ciclo di codifica di sei settimane, anziché mensile come Microsoft o trimestrale come Oracle, e sette giorni moltiplicati per sei settimane ti hanno dato il numero vitale 42.
In questi giorni, Mozilla fa per lo più cicli di quattro settimane, in modo che gli aggiornamenti si spostassero costantemente nel calendario mensile nello stesso modo in cui i mesi lunari scivolano gradualmente durante l’anno solare.
Questo aggiornamento porta la versione mainstream a 95.0 e include un sacco di correzioni di sicurezza, elencate in Mozilla Foundation Security Advisory MFSA-2021-52, comprese le vulnerabilità che portano a:
- Numerosi incidenti che potrebbe essere potenzialmente lovendo in buchi sfruttabili.
- Webextensions che potrebbe Lasciati alle spalle componenti indesiderati Dopo disinstallazione ufficiale.
- Trucchi per consentire siti remoti a Scopri alcune delle app installato sul tuo computer.
- Sandbox bypass ciò potrebbe consentire agli script non affidabili di fare più del previsto.
- Trucchi per mettere il cursore nel posto sbagliato, potenzialmente mascherando i clic rischiosi.
La caccia alle minacce, il rilevamento e la risposta delle minacce 24/7 consegnati da un team di esperti come servizio completamente gestito.
Saperne di più
Una sandbox completamente nuova
Il grande cambiamento in Firefox 95.0, tuttavia, è l’introduzione di un nuovo sistema di sandboxing, sviluppato nel mondo accademico e noto come rlbox. (Dobbiamo ammettere che possiamo’t Trova una spiegazione ufficiale delle lettere Rl In Rlbox, Quindi noi’Riprendendo che rappresentano Biblioteca di runtime, piuttosto che indicare le iniziali della persona che ha avviato il progetto.) Sandboxing rigoroso all’interno di un browser viene spesso ottenuto dividendo il browser in una procedura di sistema separata per ciascuna scheda, che finisce isolata l’una dall’altra dal sistema operativo stesso. Per impostazione predefinita, i processi possono’t leggere o scrivere a vicenda’S Memoria, in modo che un foro di esecuzione del codice remoto attivato da un sito criminale come Dodgy.Esempio non lo fa’t Ottieni automaticamente la possibilità di curiosare sul contenuto di una scheda che’S Accesso al tuo server di posta elettronica o collegato a un account di social network. Ma non tutte le parti di un browser’La funzionalità di rendering è facile da dividere in processi separati, in particolare se un processo esistente carica cosa’s noto come a Biblioteca condivisa – Tipicamente a .File dll su Windows, .Quindi su Unix e Linux, e .dylib su macOS. Le librerie condivise, ad esempio per rendere un tipo specifico di carattere o per riprodurre un tipo specifico di file audio, sono progettate per essere eseguite “in corso”. Ciò significa loro’rivolto nello spazio di memoria del processo corrente, praticamente come se loro’D è stato compilato nell’applicazione direttamente dall’inizio. In altre parole, una pagina web che può essere ingannata nel caricare un carattere intrappolato in genere finirà per elaborare il file di carattere rischioso direttamente all’interno dello stesso processo che’s gestire il resto della pagina. Voi’D ottenere una protezione migliore se il rendering del web e il gestore dei caratteri potrebbero funzionare separatamente e non’T hanno accesso reciproco’ memoria e dati, ma quello’è difficile da fare in un mondo in cui tu’re già utilizzando librerie condivise per fornire ulteriori funzionalità per processo. Voi’D deve tornare al tavolo da disegno e reimplementare tutte le funzioni attualmente implementate tramite librerie condivise (che, come suggerisce il nome, condividere la memoria e altre risorse di runtime con il processo genitore) in qualche altro modo.
Gallia est Omnis divisa in Partes Tres
RLBox è un modo per semplificare il processo di suddivisione dei processi in parti separate, in modo che il codice non lo faccia’T ha bisogno di una riscrittura completa. Tuttavia, RLBox chiama le librerie condivise passano attraverso un “strato di separazione” Ciò tiene separato il funzionamento interno del programma principale e almeno alcune delle sue biblioteche. Il tuo codice deve ancora cambiare per consentire a RLBox di intervenire nel modo in cui i dati vengono passati avanti e indietro tra l’applicazione principale e le sue subroutine a biblioteca condivisa, ma la quantità di sconvolgimento nell’aggiunta di questi controlli di sicurezza è, almeno se il team RLBox e gli sviluppatori di Firefox si credono. In particolare, secondo il team RLBox:
Invece di migrare un’applicazione per utilizzare rlbox […] in un singolo colpo, RLBox consente ‘migrazione incrementale’ […] Migrazione del codice esistente per utilizzare le API RLBox può essere eseguita una [operazione] alla volta. Dopo ogni tale migrazione, è possibile continuare a costruire, eseguire [e] testare il programma con la piena funzionalità per assicurarsi che la fase di migrazione sia corretta.”
Sfortunatamente, non molti di Firefox’Le funzioni di rendering sono state ancora passate a rlbox. Apparentemente, solo alcune operazioni speciali di formazione dei caratteri, il controllo ortografico e il codice di riproduzione dei media per i file OGG sono stati spostati in questa modalità più sicura. I file OGG sono quelli che trovi spesso su Wikipedia e siti Web zelanti gratuiti e aperti, perché i codec OGG non sono mai stati gravati dai brevetti, a differenza di molti altri formati audio e video. (Codec non è’T una parola alta come ci si potrebbe aspettare, a proposito: esso’è breve semplicemente per codificatore e decoder, allo stesso modo di a modem è un segnale modulatore e demodulatore.)
Cosa dopo?
Se tutto va bene, la gestione RLboxed di file XML e caratteri WOFF (il formato di file ormai ubitivo per i caratteri Web incorporati) seguirà Firefox 96.0. Presumibilmente, se tutto va bene, il team Mozilla continuerà a dividere e conquistare il suo codice del browser per creare sempre più piccoli “zone di compromesso” Associata a ciascuna libreria di programmazione (di cui una sessione tipica del browser può richiedere centinaia) necessaria per elaborare contenuti non attendibili dall’esterno. Certo, se quello non lo fa’t lavoro, lì’s sempre lynx, come abbiamo discusso in un recente podcast di nuda sicurezza. Lynx è un browser così vecchio scuola e così spogliato che non lo fa’T Do caratteri, JavaScript o addirittura grafica: solo il 100% di modalità di testo in stile terminale con una minima dipendenza dalle librerie condivise ..
IL MONDO’B browser: ascolta ora Click-and-Drag sulle onde del suono per muoversi. La sezione lince inizia a 2’10”.
Puoi anche ascoltare direttamente su Soundcloud.- Seguire @Nakedsecurity su Twitter Per le ultime notizie sulla sicurezza informatica.
- Seguire @Nakedsecurity su Instagram per foto esclusive, gif, video e lols!