Lunedì scorso Jeremiah Grossman ha pubblicato le Top Ten Web Hacking Techniques of 2008, ovvero una selezione delle 10 migliori pubblicazioni in fatto di (in)sicurezza Web rilasciate durante il 2008, tra le 70 sottoposte all’attenzione della giuria composta da Rich Mogull, Chris Hoff, H D Moore e Jeff Forristal. E’ utile dare un’occhiata a queste tecniche per comprendere dove si sta dirigendo e dove si è giunti sin ora nel campo della sicurezza Web, sicuramente il settore più in fermento e mutevole del IT security.
Al primo posto si è qualificato un gruppo di famosi ricercatori composto da Billy Rios, Nathan McFeters, Rob Carter e John Heasman con quello che viene chiamato attacco GIFAR.
Il nome deriva dall’unione degli acronimi GIF + JAR, l’attacco consiste infatti nel prendere due differenti tipi di file come appunto un’immagine GIF (ma anche una JPG o un DOC) e un archivio Java JAR e combinarli tra loro (per esempio sotto Windows con il comando copy a.gif + b.jar c.gifar). Il file risultante sarà trattato come un’immagine GIF dalla maggior parte delle Web applications e dei browser ma come un file JAR da Java, e poiché molti siti permettono l’upload di immagini ma non di archivi JAR proprio per ragioni di sicurezza, un’attaccante sarà ora in grado di superare questo ostacolo e caricare sul sito codice Java potenzialmente malevolo per chi dovesse visualizzarlo.
La Sun e Google sono stati i primi grossi soggetti ad aver sistemato la vulnerabilità nei loro prodotti (Java e Picasa).
Al secondo posto troviamo Yair Amit con Breaking Google Gears’ Cross-Origin Communication Model.
Google Gears è un plug-in che gira su molti browser e ha il compito di estendere le funzionalità del browser stesso al fine di gestire applicazioni Web molto più potenti ed innovative in particolare per quanto riguarda i contenuti off-line. Viene utilizzato in diversi prodotti e siti Web come Google Docs, Google Reader, Picasa, MySpace, Zoho Writer e WordPress.
L’attacco permette di violare l’importantissima same origin policy dei browser che dovrebbe garantire una necessaria disparità di trattamento tra ciò a cui possono accedere script residenti sullo stesso dominio del sito che si sta visitando ed eventuali script esterni. Immaginate che un attaccante, facendovi visitare un link innocente, riesca a carpire il contenuto dello storage locale del vostro blog WordPress o dati ancora più sensibili; certo non fa piacere.
Al terzo posto c’è Nitesh Dhanjani con la Safari Carpet Bomb che permetteva a qualsiasi sito Web di scaricare eventuali file malevoli sul computer dell’utente senza bisogno del suo consenso qualora egli utilizzasse il browser della Mela. Dopo un’iniziale disinteresse, la Apple ha corretto questa falla.
Al quarto posto troviamo uno dei temi caldi del 2008: il Clickjacking. Questo particolare e abbastanza coreografico attacco, ideato da Jeremiah Grossman e Robert Hansen, consiste nell’indurre un utente ad effettuare uno o più click sua una pagine Web apparentemente innocua ma che in realtà ne nasconda un’altra attraverso un frame e che è la vera destinataria dei click. Uno dei primi esempi di questo attacco permetteva il controllo a distanza video e audio di un utente (ipotizzandolo provvisto di webcam e microfono, come quindi tutti i portatili degli ultimissimi anni) tramite la riconfigurazione involontaria del proprio plugin Flash. Un video siginificativo è reperibile a questo indirizzo.
Al quinto posto troviamo un italiano, Stefano Di Paola, che ha messo in luce alcune interessanti vulnerabilità del browser Opera tra cui un cross-site scripting nella cronologia e la possibilità per un attaccante di sniffare l’intero traffico Web della vittima. Tutto per colpa di un click.
Al sesto posto troviamo un altro italiano, Alberto Trivero, cioè me. La mia pubblicazione, Abusing HTML 5 Structured Client-side Storage, riguarda alcuni attacchi realizzabili contro le tre nuove metodologie di storage lato client che sono state introdotte nelle bozze del futuro standard HTML 5 e che quasi tutti i browser hanno già iniziato, almeno in parte, a supportare. Grazie a questi attacchi è possibile rubare i dati che un sito che utilizzi queste tecnologie avesse salvato sul computer dell’utente, parliamo di anche diversi MegaByte; oppure è possibile realizzare veri e propri attacchi di SQL injection lato client, invece che lato server come si è sempre visto.
Al settimo posto ci sono Chris Evans e Michal Zalewski con Cross-domain leaks of site logins via Authenticated CSS, dove descrivono come sia possibile, in molti browser, caricare codice CSS proveniente da un dominio diverso da quello del sito che si sta visitando. Le implicazioni per la sicurazza sono variabili, nella loro demo i ricercatori si sono limitati a dimostrare come sia possibile capire da un qualsiasi sito se un utente sia loggato a MySpace o no.
All’ottavo posto ci sono Glenn Wilkinson, Marco Slaviero e Haroon Meer con Tunneling TCP over HTTP over SQL Injection. I ricercatori hanno sviluppato un tool, reDuh, in grado di creare qualsiasi tipo di connessione TCP facendola passare su semplici richieste HTTP. Se un attaccante sarà in grado di uppare o creare una pagina JSP/PHP/ASP su un server, gli sarà perciò anche possibile connettersi agli host dietro quel server con facilità, visto che peraltro il traffico HTTP è quasi sempre consentito dai firewall.
Al nono posto troviamo Haroon Meer con ActiveX Repurposing, in cui vengono descritte alcune interessanti vulnerabilità logiche in un controllo ActiveX che sarebbero impossibili da individuare tramite le classiche tecniche di analisi statica del codice o di fuzzing e che permettono di eseguire codice arbitrario sul computer della vittima.
Infine, al decimo posto, troviamo Yuval Baror, Ayal Yogev, e Adi Sharabani con Flash Parameter Injection, dove i tre ricercatori mostrano cinque tecniche con cui è possibile iniettare parametri globali all’interno di oggetti Flash, col risultato di modificare in maniera arbitraria il comportamento dell’oggetto stesso.