Col passare degli anni i browser si sono fatti sempre più complessi e centrali nella vita degli utenti. Da semplici motori di rendering per banali pagine HTML, sono ora in grado di far girare vere e proprie applicazioni complesse. Microsoft Office Live, Google Docs e iWork.com sono solo alcuni esempi. Data la complessità che hanno raggiunto e l’enorme mole di codice di cui sono composti, è quindi piuttosto normale che soffrano di vari tipi di vulnerabilità.
A dare, per ultimo, prova di ciò è stata la terza edizione della competizione Pwn2Own svoltasi la scorsa settimana alla conferenza internazionale CanSecWest e sponsorizzata dalla Zero Day Initiative. Il contest, della durata di tre giorni, si rivolgeva alla sicurezza di due target: i browser, appunto, e gli smartphone.
Secondo le regole vi erano due ambienti possibili. Su un ultraportatile Sony Vaio P girava l’ultima build beta di Windows 7, con installati Internet Explorer 8, Firefox 3.0 e Chrome 1.0. Ancora Firefox 3.0 e Safari 4.0 beta invece su un Macbook con Mac OS X 10.5. Entrambi i sistemi operativi e i software totalmente patchati e in configurazione di default. Niente Linux, presente invece l’anno scorso con Ubuntu. E niente Opera, assente discusso.
Per i dispositivi mobili sono stati invece presi in considerazione un Blackberry, un HTC Dream con Android 1.1, un iPhone 3G, un Nokia N95 con Symbian OS 9.2 e un HTC Touch con Windows Mobile 6.1.
Il primo giorno è stato l’unico veramente eccitante dei tre, ciascuno con regole d’ingaggio di difficoltà decrescente. I browser giravano senza plugins aggiuntivi e l’unica interazione ammissibile con la vittima fittizia era il click su un link.
Pochi secondi dall’inizio delle competizione ed ecco il primo browser a cadere e a permettere all’attaccante il pieno controllo della macchina vittima: Safari (sia 3.2 che la 4 beta). A portare a compimento l’impresa il ben noto ricercatore Charlie Miller, che già all’edizione dell’anno scorso del Pwn2Own aveva vinto grazie sempre ad un exploit per Safari.
Miller ha riferito che la vulnerabilità sfruttata quest’anno era già stata scoperta da lui un anno fa, ma che non era riuscito ad usarla nel contest del 2008 e aveva preferito non rivelarla. Un anno dopo, qualche ora di lavoro in più, e la vulnerabilità era ancora al suo posto e l’exploit pronto all’uso.
Miller ha affermato in un’intervista: “Mai più bug gratis. Le vulnerabilità hanno un valore di mercato, perciò non ha senso lavorare duramente per trovare un bug, sviluppare il relativo exploit e poi dare tutto via”. Molti, nella comunità underground, non concorderebbero.
La vincita che Miller si è aggiudicato è stata di $5.000 più il Macbook violato. Vendere l’exploit sul mercato nero gli avrebbe fruttato alcune decine di migliaia di dollari. Fortunatamente non sembra essere solo il puro profitto ciò che cerca.
La vulnerabilità è probabile che affligga anche Safari per Windows, chiaramente però l’exploit per sfruttarla dovrebbe essere quasi totalmente riscritto.
Il vero protagonista della giornata è stato però un altro venticinquenne hacker tedesco, noto solo col nome Nils (qui un intervista). Questo ragazzo è riuscito niente meno che a violare tutti e tre i più diffusi browser in poche decine di minuti.
Prima è toccato a Internet Explorer 8: bypassati i due principali meccanismi di protezione della memoria presenti su Windows: DEP (Data Execution Prevention) e ASLR (Address Space Layout Randomization). Poi è stata di nuovo l’ora di Safari, violato sfruttando una vulnerabilità differente da quella usata da Miller. Infine è toccato a Firefox 3 su Windows.
Tanto di cappello a Nils, $15.000 meritati (ricordo che già solo l’exploit per IE8 sarebbe potuto essere venduto con una certa facilità sul mercato nero per cifre attorno ai $100.000). Benché la versione di IE8 attaccata non fosse ancora quella definitiva (rilasciata nei giorni scorsi dalla Microsoft), l’azienda di Redmond ha già confermato come anche la versione definitiva sia vulnerabile.
Quattro importanti vulnerabilità 0day in un giorno per i tre browser più diffusi, quindi. Niente male.
Alcune riflessioni di Charlie Miller su questa giornata meritano attenzione. Alla domanda perché abbia scelto come obiettivo Safari e non si sia poi dedicato anche ad IE, il ricercatore risponde molto chiaramente: “Safari su Mac è più facile da bucare. Le cose che Windows fa per rendere più difficile il funzionamento di un exploit, Mac OS non le fa. […] Dipende soprattutto dal sistema operativo, più che dal programma attaccato. Anche Firefox su Mac è piuttosto semplice. Il sistema operativo sottostante non ha al suo interno tecniche di anti-exploitation”.
Aggiunge poi Miller: “È chiaro che tutti e tre i browser (Safari, IE e Firefox) hanno dei bug. Le falle che permettono l’esecuzione di codice arbitrario sono ovunque. Ma è solo metà dell’equazione. L’altra metà è sfruttare il bug (exploitarlo). E non c’è praticamente nessun ostacolo nel farlo su Mac OS X.”
Miller continua poi evidenziando come l’exploit di Firefox su Windows operato da Nils sia anche più impressionante di quello di IE: “Tra tutti i browser sui vari sistemi operativi, l’obiettivo più difficile è Firefox su Windows. Con Firefox su Mac OS X puoi fare quello che ti pare”.
Ricordo che parliamo di uno che sa cosa dice, che ha appena pubblicato, insieme a Dino Dai Zovi (vincitore della prima edizione del Pwn2Own grazie ad un exploit per QuickTime), The Mac Hacker’s Handbook.
Nei due giorni successivi della competizione, malgrado l’ampliamento della superficie di attacco (consentito l’uso sui browser di plugins quali Flash, Java, .NET, QuickTime; maggiore interazione nei dispositivi mobili: lettura di email/SMS/MMS, stack WiFi e Bluetooth attivo, etc.) non si è verificato nessun evento particolarmente interessante a parte i crash, non abbastanza rilevanti, di alcuni dispositivi.
Per la cronaca ricordo che Charlie Miller è stato anche il primo a sviluppare, nel 2007, un exploit per l’iPhone e che a BlackHat Japan 2008 Collin Mulliner ha portato una presentazione dal significativo titolo Symbian Explitation and Shellcode Development. Quest’anno tutti gli smartphone sono sopravvissuti, ma è naturale aspettarsi, per il prossimo futuro, risultati ben differenti.
Chrome è stato quindi l’unico browser, tra quelli in gara, ad aver resistito. Questo è un fatto, che va però interpretato. Alla domanda se fosse sorpreso che Chrome sia stato l’unico browser a stare in piedi, Miller risponde: “Ci sono dei bugs in Chrome, ma sono molto difficili da sfruttare. I ho una vulnerabilità in Chrome proprio ora ma non so come sfruttarla, è veramente complesso. Il browser ha quel modello a sandbox che è difficile da scavalcare. Con Chrome è una combinazione di cose: non puoi eseguire codice nel heap, ci sono le protezioni di Windows e poi la sandbox. I posso avere questo bug e posso anche essere in grado di ottenere l’esecuzione di codice, ma sono nella sandbox e non ho i permessi per fare niente. Ci vorrebbe un altro bug per uscire dalla sandbox. Alla fine quindi hai bisogno di due bugs e due relativi exploits”.
Attualmente non è stato rilasciato nessun dettaglio tecnico sulle vulnerabilità in gioco. Le rispettive software house sono state contattate, al momento del rilascio delle patch sarà lecito aspettarsi informazioni più complete sulle falle.
Contest come il Pwn2Own non servono in assoluto per capire quale sia il browser più sicuro, sono però comunque utili per stimolare la ricerca nel settore e per farsi un’idea dei problemi che possono affliggere i principali software di navigazione Web sulle varie piattaforme.
Come abbiamo visto, nella competizione ci si è rivolti a tipi di vulnerabilità non specificatamente relative ai browser, quanto piuttosto a quei tipi di vulnerabilità nella gestione della memoria di un programma che affliggono un po’ tutti i software (ad esempio i buffer overflow, per intenderci).
Esistono tuttavia problematiche di sicurezza strettamente legate alle funzionalità dei browser, il Browser Security Handbook di Michal Zalewski è sicuramente un’ottima lettura per chi fosse interessato.