Dopo un lungo e alquanto agitato travaglio, Mozilla dà finalmente alla luce la quarta versione del proprio browser Firefox, quello che si può definire come il primo storico acerrimo nemico di Internet Explorer dopo la disfatta di Netscape e il vuoto lasciato incolmato per anni. Il browser che, più di tutti, è riuscito nell’impresa di scardinare la dittatura di Internet Explorer, dopo anni di onorato servizio, ha forse avuto la pecca di cullarsi troppo sugli allori, ritrovandosi ora a dover rincorrere chi – nel corso di questi anni – non è stato semplicemente a guardare ma ha tentato di lavorare sodo per guadagnarsi, o riguadagnarsi, un posto da leader nella neonata jungla degli web browser.
E così, dopo ben dodici beta release e due release candidate, Firefox 4 arriva sui desktop degli utenti con diverse novità sul piatto. A dire il vero arriva un po in ritardo, considerando che il suo rivale Internet Explorer è giunto già da qualche giorno alla nona versione con una roadmap di due beta e una release candidate. Come un orologio svizzero, in tempo per sostituire la versione di Internet Explorer 8, rilasciata nel 2009 e con un tempo di vita – considerato ottimale – di due anni. Sembra inutile parlare di Chrome, il browser targato Google, che da circa tre anni ha iniziato la scalata alla vetta, guadagnandosi una sempre più ampia percentuale di consensi.
Firefox 4 arriva dunque leggermente in ritardo rispetto alle major release dei concorrenti, rilasciate già nelle scorse settimane. Arriva con delle novità che, in realtà, così tanto novità non sono agli occhi dei concorrenti. Arriva con un supporto all’HTML5, implementato già in Internet Explorer 9 (e in Chrome già da diverso tempo). Arriva con un plugin container, un processo separato dal browser che contiene i vari plugin – ad esempio Flash – al fine di prevenire la spiacevole situazione nella quale un plugin in crash possa bloccare l’intera navigazione. Soluzione adottata già da tempi immemori in Google Chrome. Arriva con l’accelerazione hardware, già implementata in Google Chrome e Internet Explorer 9. Migliora la capacità di individuare siti di phishing e siti potenzialmente nocivi, grazie all’utilizzo del servizio Google Safe Browsing, implementato anche in Google Chrome – Internet Explorer utilizza invece un servizio proprietario denominato SmartScreen.
Dove invece Firefox 4 potrebbe essere ritenuto deludente è nella sicurezza a livello di architettura del software. Da ciò che si evince, esce letteralmente già vecchio nella sua quarta versione, penalizzato da un’implementazione della sicurezza a livello software obsoleta e notoriamente insicura.
Le probabilità, durante la navigazione online, di incappare in qualche pagina web contenente exploit capaci di sfruttare dei bug – noti o non noti – dei browser stessi o dei plugin installati nei browser è molto alta, e da anni la percentuale continua ad alzarsi in maniera vertiginosa. Questo fenomeno pone l’accento sull’importanza della sicurezza del codice che viene scritto e sul fatto che, in progetti di dimensioni medio/grandi – quali possono essere browser web e plugin vari – è alquanto improbabile riuscire a scrivere del codice totalmente corretto senza lasciare spazio a nessun bug. Bug che, se scoperto, potrebbe permettere ad eventuali pirati informatici di eseguire del codice nel PC vittima senza alcun intervento dell’utente.
Per questo Google Chrome e Internet Explorer hanno deciso di implementare tecnologie di sandboxing, progettate in modo da tentare di arginare eventuali bug presenti nei propri prodotti. In parole più semplici, durante la navigazione in Internet, sia Google Chrome che Internet Explorer pongono la sessione di navigazione in una modalità protetta, limitata, separata dal resto del sistema – e con essa anche gli eventuali plugin utilizzati dal browser. Se, per qualsiasi motivo, l’utente, sua sfortuna, incappa in una pagina web capace di sfruttare qualche bug presente nel browser o nei plugin, e di conseguenza riesce a far eseguire del codice nocivo nel sistema, ecco che il codice nocivo non potrà arrecare alcun danno al sistema (o potrà fare dei danni molto limitati).
Internet Explorer basa la propria tecnologia di sandboxing esclusivamente sulle nuove tecnologie Microsoft implementate in Windows Vista e Windows 7, vale a dire lo User Account Control e il Mandatory Integrity Control. Google Chrome invece implementa una propria tecnologia di sandboxing basata sulla gestione dei privilegi degli utenti unita alla possibilità di aggiungere ulteriori restrizioni grazie ai job object di Windows. In altre parole un framework di sicurezza retrocompatibile con i più vetusti Windows – il tutto senza ovviamente disdegnare anche le nuove tecnologie implementate in Windows Vista e 7 ed utilizzate già da Internet Explorer.
Due browser fondamentalmente all’avanguardia, che necessitavano di una risposta adeguata da parte di Firefox. Una risposta che però è mancata e che tarda ad arrivare.

Il browser di Mozilla non è stato adattato alle nuove tecnologie di sicurezza fornite da Microsoft: sia il processo firefox.exe che il processo plugin-container.exe vengono eseguiti ad un livello di integrità medio, senza alcun tipo di restrizione se non la restrizione fornita dall’account limitato generico configurato in Windows – ammesso che l’utente stia utilizzando il sistema come utente limitato e non come amministratore.
Un esempio su tutti: è cosa ben nota come il plugin Flash di Adobe sia spesso vittima di attacchi da parte di pirati informatici. In Firefox un eventuale attacco a Flash potrebbe avere molto più successo rispetto ad un attacco subito su Chrome o Internet Explorer. La forza di Firefox, e la sua sicurezza, ad oggi – così come in passato – sta nella massiccia disponibilità di estensioni che possono mitigare il problema. La più famosa è l’estensione NoScript, una sorta di script firewall, capace di bloccare tutti gli script presenti nelle pagine web e di eseguire solo quelli presenti nella white list configurata dall’utente. Decisamente funzionale, ma non troppo comoda – soprattutto se si parla di un’utenza medio-bassa.
Sicuramente la rivalità tra i tre browser più in voga del momento si terrà nel campo delle performance, della personalizzazione, della compatibilità e della leggerezza sul sistema. Probabilmente non si terrà nel campo della sicurezza, dove purtroppo Firefox 4 è nato già vecchio.
Per maggiori informazioni tecniche sulle tecniche di sandboxing, rimando ad un articolo scritto in precedenza QUI.
UPDATE: Per meglio specificare, Mozilla ha in programma una sandbox da diverso tempo, concetto inserito in un progetto di più ampio respiro dedicato alla separazione in diversi processi delle varie tab di navigazione. Il progetto, denominato Electrolysis, sembra tuttavia in stallo. Diviso in quattro fasi principali, l’avanzamento del progetto sembra fermo alla fase due, con termine dello sviluppo previsto per Aprile 2010. Inoltre, le quattro fasi prevedono la separazione in più processi delle varie tab, quindi una riorganizzazione completa dell’architettura interna del browser. Solo successivamente è prevista l’implementazione di una sandbox di sicurezza, progetto per il quale però non è stata ancora definita – o non è stata aggiunta pubblicamente -alcuna roadmap.
Internet Exploder 9 supporta html5?!? Ma mi faccia il piacere!
Non sembri propenso al confronto, ma solamente al flame. Hai volutamente denigrato un prodotto modificandone in maniera dispregiativa il nome, non hai portato alcuna argomentazione e non hai colto minimamente il senso del post.
Ma grazie lo stesso per l’intervento 😉
Ciao, Marco.
IE9:
http://msdn.microsoft.com/en-us/ie/ff959805
Chrome:
http://www.google.com/support/chrome/bin/answer.py?answer=95411
FF4:
http://www.mozilla.com/en-US/firefox/4.0/system-requirements/
Probabilmente Mozilla ha pagato dazio per conservare retrocompatibilita’ e portabilita’ del codice.
Comunque gia’ da FF3 c’e’ il PluginCheck che ad ogni update del browser avverte della presenza di plugin obsoleti; cosa che sugli altri mi pare non ci sia:
http://www.mozilla.com/en-US/plugincheck/
Comunque la mancanza di sandbox puo’ essere aggirata con sw di terze parti (es. Microsoft EMET:
http://support.microsoft.com/kb/2458544/it) tra l’altro utili anche per altri programmi.
Certamente preferirei una soluzione nativa come per gli altri; penso che su questa release abbiano piu’ puntato sullo “user-friendlyness” che non sulla “security by design”.
PS:
pensi sia possibile un FF o Chrome con sandbox cross-platform?
Ciao,
innanzitutto grazie per l’intervento ed il commento 🙂
Dunque, per quanto riguarda il plugin check, in Chrome c’è già da qualche tempo un controllo automatico della presenza di aggiornamenti per i plugin. In Internet Explorer 9 non sono sicuro, ma mi sembra che non sia presente al momento.
Occhio per quanto riguarda EMET, non si tratta assolutamente di un sostituto alle sandbox di Chrome e IE9. EMET serve a configurare in maniera ottimale tecniche per la prevenzione di exploit quali ASLR e DEP. Tuttavia, in caso l’exploit avvenga, EMET non si prende assolutamente cura di cosa un eventuale malware possa fare.
Le sandbox invece si pongono ad un livello di attenzione più “reattivo” nella scala della prevenzione di un attacco. Il ragionamento che fanno, per dirla in breve, è: “anche se succede qualcosa (qualche exploit), bisogna limitare i possibili danni al sistema”.
Un esempio di sandbox free (e volendo si acquista la licenza) è Sandboxie. Oppure ci sono programmi antivirus che implementano sandbox per i browser (ad esempio Avast!).
Sicuramente di programmi di terze parti che ricoprono lo stesso ruolo ce ne sono, ma il fatto che Firefox non si sia adeguato allo standard che stanno seguendo gli altri browser, non mi fa stare al sicuro. È a mio avviso una grave lacuna, visto il proliferare di attacchi web basati su exploit.
A mio modo di vedere, questo è uno dei punti che mi fa porre Firefox ancora un passo indietro rispetto agli avversari.
Per quanto riguarda la sandbox cross-platform, Chrome dovrebbe già implementare qualcosa del genere: http://code.google.com/p/chromium/wiki/LinuxSandboxing
Ciao,
Marco
e siamo già a 6.6 milioni di download! Avremo un web più libero! Grazie Firefox, fanculo internet exploder 9! AHAHAHH
IE9 non è installabile ne’ su linux, ne’ su mac, ne’ su amiga, ne’ su niente…
Se Firefox 4 è nato già vecchio IE9 e’ nato gia’ morto!!!
Non c’è bisogno di fare post multipli e cambiare nickname, abbiamo capito il tuo commento altamente tecnico e costruttivo. Grazie
Buon articolo, ma le conclusioni lasciano a desiderare (o sono palesemente di parte).
Il punto dell’articolo è che manca una sandbox, ma che è in studio (per informazione la separazione del processo dei contenuti è prevista per Firefox 7, circa un anno da ora). Tutto vero, niente da eccepire.
Però non mi sembra che Firefox abbia peccato così tanto in sicurezza negli ultimi anni, a differenza di altri, nè mi sembra che ci sia poca attenzione riguardo ad essa (il tempo di correzione degli exploit è il più basso di tutti).
Allo stesso modo mi sembra che Internet Explorer sia stato bucato comunque, pur con queste tecnologie.
Ciò che l’articolo manca è quello che c’è, che è in buona parte superiore alla concorrenza, IE9 è stato rilasciato di fretta, è un buon prodotto ma manca di molto, sia di tecnologie chiave per il web (WebGL? text-shadow?) che di personalizzazione per l’utente. Non funziona in Windows XP e non risolve il problema IE6.
HTML5? Si ne supporta una piccola parte.
Accelerazione hardware? Solo su Vista e 7, e niente WebGL.
Va bene la lamentela per la mancanza della sandbox, ma poi ci si lamenta che il processo separato per i plug-in sia stato inserito solo nella 3.6 e invece Chrome ce l’aveva prima? Dovrebbe essere un plauso, Chrome è una riscrittura, l’architettura ha aiutato e Google non manca certo di risorse economiche per accelerare lo sviluppo.
Insomma, articolo interessante che lascia l’amaro in bocca per le posizioni che nulla hanno a che vedere con il punto dell’articolo stesso. Firefox manca di una sandbox, vero, Firefox è nato vecchio, falso.
Inoltre sarebbe interessante avere dei dati percentuali sugli attacchi che hanno effettivamente avuto accesso al sistema tramite Firefox 3.6, sulla totalità degli attacchi che hanno avuto accesso al sistema su tutti i browser, nell’ultimo anno (non il numero di exploit noti ma quelli rilevati effettivamente sui sistemi degli utenti). Credo che Prevx abbia accesso a questi dati, potrebbero aiutare a capire quanto sia necessaria un’accelerazione verso la sandbox.
Ciao mak,
benvenuto tra i commentatori e grazie per il commento..
Chiaramente l’articolo si focalizza sulla sicurezza del prodotto. Non sono entrato – e non vorrei entrare – nel merito di quanto un browser implementi più o meno di una specifica tecnologia, perché a quel punto il discorso diventa veramente di parte.
Io so, per specifiche date dai vari produttori browser, ad esempio che tutti supportano HTML5. Poi dire quanto, piu o meno, lo supportino, è difficile dirlo. Soprattutto visto che HTML5 è tutto meno che uno standard al momento, ancora in fase di elaborazione e di modifiche. Microsoft ad esempio ha preferito implementare in Internet Explorer 9 quelle specifiche HTML5 che risultano già solide e stabili.
L’accelerazione hardware? Per politica aziendale Microsoft sta tentando di emarginare Windows XP, sistema ormai obsoleto ed insicuro. Qui, ad esempio, non apprezzo Mozilla, la quale fa del proprio punto di forza il fatto di non abbandonare i vecchi sistemi operativi quali XP salvo poi fornire un prodotto che potenzialmente mette il sistema a rischio. Chrome in questo è perfetto, è sì compatibile anche con XP, ma fornisce comunque un livello di sicurezza ottimale pur con tutti i limiti di XP rispetto ai nuovi Vista e 7.
Per quanto riguarda Chrome e il fatto che si tratti di una riscrittura, sono commenti che preferisco lasciar fuori, visto che sono commenti soggettivi, commenti che è possibile controbattere ma che, comunque sia, non c’entrano molto con questo blog.
L’oggettività vuole che, ad oggi, un bug in Firefox o, cosa molto piu probabile, un bug in un plugin quale Flash o QuickTime può permettere l’esecuzione di malware e l’infezione del computer molto più facilmente in Firefox che non negli altri due browser.
Le specifiche tecniche sono tutto sommato le stesse tra i tre browser, solo che Chrome e Internet Explorer implementano un meccanismo di sicurezza sandbox-like già da anni. Firefox è uscito nuovo nella sua quarta release ora, ma ancora manca di una tecnologia molto importante. Per questo motivo la definizione “è nato vecchio”.
Per le specifiche percentuali che chiedi, non è possibile avere tali numeri per due motivi: non è possibile avere una “totalità di attacchi”, visto che non possiamo sapere al 100% tutti gli attacchi conosciuti, e spesso non è possibile separare browser da browser quando l’attacco è sferrato tramite un plugin dei browser.
Il fatto che molti stiano premendo verso le sandbox, sia i browser (Chrome e IE), sia l’utilizzo sempre più massiccio di software di terze parti (Sandboxie ad esempio), sia il fatto che le società antivirus stiano aggiungendo funzionalità di sandbox per i browser ti dà la misura di quanto sia necessaria un’accelerazione verso tale tecnologia al fine di prevenire questi attacchi. E Mozilla, in questo, ha saltato la fermata del treno.
Da un punto di vista del product management non si può basare la scelta di implementare una tecnologia “perchè gli altri lo fanno”, avere dei dati su quanto questa tecnologia aiuti l’utente finale è il modo giusto.
Quindi se per esempio avessimo 1 milione di attacchi noti a Firefox, a di questi il 90% potesse essere bloccato dalla sandbox, allora avrebbe senso. Se gli attacchi fossero 10 mila, allora a fronte di 400 milioni di utenti l’investimento avrebbe un ritorno minimo, quindi priorità più bassa.
Solo una nota relativamente a HTML5, il consorzio w3c ha chiaramente dichiarato che la 5 è l’ultima versione numerata, d’ora in poi si aggiungeranno nuove caratteristiche sperimentali, si attenderà che la maggior parte dei vendor le implementi e le si modificherà in base alle richieste, questo è il nuovo modo di lavorare allo standard, non esistono più gli standard “solidi e stabili”, siccome sono sviluppatori e vendor chiamati a renderli tali.
A mio vedere è un ragionamento che fila male, per una serie di motivi.
Primo: Mozilla riduce tutto ad una questione di numeri, senza considerare la reale problematica della sicurezza? Se così fosse, sarebbe una posizione ancor più deprecabile per la società
Secondo: Se fosse un problema di product management, e la scelta abbia veramente così bassa priorità, sono quindi così poco furbi sia Google che Microsoft nell’implementare un meccanismo di sicurezza aggiuntivo, tanto più che Google lo ha implementato anche in sistemi alternativi a Windows?
Il punto è che basta guardare la diffusione di exploit kit messi a disposizione per capire che è un fenomento in crescente diffusione, e d’altronde non è un fenomeno che colpisce specificamente Firefox. Nella maggior parte dei casi si tratta di un problema trasversale. Una falla in un plugin quale ad esempio Flash Player colpisce indistintamente Chrome, Firefox e Internet Explorer. Con la differenza che, mentre Chrome e Internet Explorer mitigano il problema, Firefox non tenta in alcun modo di intercettare il problema.
Non è una questione di fare qualcosa perché “gli altri lo fanno”. Si tratta di chiedersi: “perché tutti gli altri lo stanno facendo? Perché Chrome ha una sandbox? Perché Internet Explorer ha una sandbox? Perché in Office hanno integrato una sandbox? Perché in Adobe Acrobat Reader hanno integrato una sandbox?”
Facendosi queste domande si arriverebbe alla conclusione che il problema sicurezza è un problema prioritario.
Per quanto riguarda la questione HTML5, ripeto quello che dicevo nel mio commento precedente. Carte in tavola entrambi supportano HTML5. Poi se la giocheranno su chi lo implementerà meglio, ma tecnicamente entrambi sono abilitati. Il resto è una questione di punti di vista tra Microsoft, Mozilla, Google e tutti i vari sviluppatori.
Ad esempio ci sono siti web in HTML5 che Internet Explorer ha più difficoltà a renderizzare, mentre ci sono siti web in HTML5 che Firefox 4 difficilmente digerisce.
Ma, come dicevo, non è questo il punto
Non è una questione di basarsi esclusivamente sui numeri, è una questione di costo/beneficio. Microsoft e Google non hanno limiti al budget che possono investire, inoltre Microsoft ha tutti gli interessi ad utilizzare le proprie tecnologie, e Google ha avuto costi ridotti perchè l’architettura è nata adatta alla sandbox. Mozilla ha un limite reale, per questo deve basare le proprie scelte su ciò che dà maggior beneficio ai propri utenti e per lo stesso motivo i numeri hanno un valore. Come hai ben spiegato, è necessario procedere con una modifica dell’architettura.
Attendere tale modifica prima di rilasciare una nuova versione sarebbe folle:
– porterebbe danni al Web rallentandolo (ie6 docet)
– porterebbe danni agli utenti che non avrebbero a disposizione le ultime tecnologie Web nè un browser migliore
– porterebbe danni all’immagine stessa di Mozilla
Ecco che il piano di un cammino che porterà a rendere economico implementare la sandbox ha pienamente senso, con la separazione dei processi in Firefox 7 ed in seguito l’implementazione (molto meno costosa) di tecnologie di sandboxing.
Insomma, c’è tutto l’interesse e l’attenzione verso la sicurezza, ma i miracoli informatici non esistono. Chiedere un miracolo è come spiegare che essere open source aumenta la sicurezza del prodotto (dimostrato), e chiedersi perchè Microsoft dopo tanti anni non abbia ancora messo a disposizione di tutti i sorgenti di Internet Explorer. “perché tutti gli altri lo stanno facendo?” significa forse che a Microsoft non interessi la sicurezza dei suoi utenti? Non credo.
Open source aumenta la sicurezza del prodotto? Dimostrato da chi? Da chi è pro open source. Peccato che dall’altra parte si ostinino a dimostrare il contrario.
È una guerra di religione quella. La realtà oggettiva dei fatti è che Firefox, ad oggi, è a livello di architettura più insicuro di Chrome e Internet Explorer. Tutto il resto sono disquisizioni soggettive che lasciano il tempo che trovano.
Il dato di fatto è che un exploit 0day di Flash, ad esempio, farebbe più danni su Firefox che non negli altri browser
Esatto, l’articolo potrebbe essere ridotto a questo:
“Firefox, ad oggi, è a livello di architettura più insicuro di Chrome e Internet Explorer” 9 (al momento lo 0.87% degli utenti del Web).
“Per meglio specificare, Mozilla ha in programma una sandbox da diverso tempo, concetto inserito in un progetto di più ampio respiro dedicato alla separazione in diversi processi delle varie tab di navigazione. Il progetto, denominato Electrolysis” è in programma per Firefox 7, previsto entro circa 1 anno, mentre i plug-in sono già attualmente (da Firefox 3.6) separati in un processo che comunica con il processo principale attraverso la stessa libreria IPC usata da Chrome.
Il resto si basa su supposizioni, ideologie e preferenze personali, su cui sarebbe possibile procedere di nit-picking, citando fonti ecc, ma non sarebbe ne utile, ne interessante per chi legge.
In ogni caso ci tengo a ringraziarti per aver pubblicato questo spunto sulla sicurezza, di sicura ispirazione.
la modalità protetta per siti web di Kaspersky 2011, permette un qualche aiuto, lanciando firefox 4. non sono un esperto e mi scuso per il messaggio “terra terra”.
grazie.
Ciao,
sì, programmi di terze parti quali Sandboxie, modalità protetta di Kaspersky, la sandbox di Avast e molti altri tool possono aggiungere quel livello di sicurezza di cui si parla nell’articolo.
uso prevx e KIS, spero di essere abbastanza protetto…
grazie.
IE 9 Epic Fail
http://www.tomshw.it/cont/news/ie9-e-windows-7-sp1-l-accoppiata-vulnerabile/30699/1.html
http://demotivatorsblog.com/wp-content/uploads/2010/03/epic-fail-sports-fail-epic-forehead-weak-retard-demotivational-poster-1206344902.jpg
aslr, dep, sandbox….
http://www.hwfiles.it/news/internet-explorer-9-segnalate-vulnerabilita_36231.html
Forse nel chiedere di comprendere discussioni di natura tecnica vi si chiede uno sforzo troppo grande 😉 Amen, si accetta comunque tutto in questo mondo 😉