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.