Condividi questo articolo

Mozilla, produttore di Firefox, ha illustrato in dettaglio i suoi recenti sforzi per rafforzare il browser dagli attacchi di iniezione di codice. 

Il duro lavoro si è concentrato sulla rimozione di “artefatti potenzialmente pericolosi” nella base del codice di Firefox, inclusi script in linea e funzioni simili a eval (), secondo Christoph Kerschbaumer, responsabile della sicurezza dei contenuti di Mozilla.

La rimozione di script inline ha lo scopo di migliorare la protezione  del protocollo “about” di Firefox , più comunemente noto come about: pages. 

Ci sono dozzine di queste pagine, che consentono agli utenti di fare cose come visualizzare le informazioni di rete, vedere come è configurato il browser e visualizzare i plug-in installati.

Mozilla temeva che gli aggressori potessero usare attacchi di code injection per abusare della pagina about: config, che “espone un’API per ispezionare e aggiornare le preferenze e le impostazioni, che consente agli utenti di Firefox di adattare la configurazione di Firefox alle loro esigenze specifiche”, spiega Kerschbaumer . 

Questi  pagine sono scritte in HTML e JavaScript e quindi condividono lo stesso modello di sicurezza delle normali pagine Web, che sono anche vulnerabili agli attacchi di iniezione di codice . Un utente malintenzionato potrebbe inserire il codice nella pagina about: e quindi modificare le impostazioni di configurazione del browser, ad esempio. 

La risposta in due parti a questo rischio per la sicurezza è stata quella di riscrivere tutti i gestori di eventi inline e spostare tutto il codice JavaScript inline in “file compressi” per tutte le 45 pagine about :. In secondo luogo, Mozilla ha impostato una “forte” politica di sicurezza dei contenuti per garantire che il codice JavaScript iniettato non venga eseguito.

Ora il codice JavaScript verrà eseguito solo se caricato da una risorsa impacchettata utilizzando il protocollo chrome: internal.

“Non consentire uno script inline in nessuna delle informazioni about: pages limita la superficie di attacco dell’esecuzione di codice arbitrario e quindi fornisce una prima linea di difesa forte contro gli attacchi di iniezione di codice”, osserva Kerschbaumer.

Un altro tentativo di rafforzamento riguarda la funzione eval () in JavaScript, che Mozilla descrive come una “funzione pericolosa” e avverte gli sviluppatori Web di non utilizzarla mai. “Eval () è una funzione pericolosa, che esegue il codice passato con i privilegi del chiamante”, spiega Mozilla nelle note di supporto per gli sviluppatori . “Se esegui eval () con una stringa che potrebbe essere influenzata da una parte maligna, potresti finire con l’esecuzione di codice dannoso sul computer dell’utente con le autorizzazioni della tua pagina web / estensione. Ancora più importante, un codice di terze parti potrebbe rilevare l’ambito in cui è stata utilizzata eval () e portare a possibili attacchi in modi in cui la funzione similare non crei allarme”

Kerschbaumer descrive la funzione come uno “strumento potente ma pericoloso” che introduce “una superficie di attacco significativa per l’iniezione di codice e ne scoraggiamo l’uso a favore di alternative più sicure”.

“Abbiamo riscritto ogni uso di funzioni simili a” eval () “dai contesti privilegiati del sistema e dal processo padre nella base di codice di Firefox. Inoltre abbiamo aggiunto disposizioni, impedendo l’uso di ‘eval ()’ e dei suoi derivati negli script con privilegi di sistema “, osserva.

Lo scopo di questa misura è ridurre il rischio di attacco in Firefox e scoraggiare ulteriormente l’uso della funzione. 


Condividi questo articolo