giovedì 31 marzo 2011

Facebook patcha vulnerabilità XSS che permetteva spam su bacheche


Una vulnerabilità cross-site scripting (XSS) su Facebook è stata utilizzata per lanciare un worm auto-spam che si moltiplicava sul social network attraverso le bacheche degli utenti inconsapevoli, secondo i ricercatori di sicurezza di Symantec. La vulnerabilità XSS si trovava nelle API Facebook mobile ed è stata causata da una insufficiente validazione JavaScript.

L’argomento della validazione dei dati di una form tramite JavaScript è noto alla maggior parte degli sviluppatori di applicazioni Web. L’approccio classico consiste nell’intercettare un determinato evento (Blur, Click, Submit) ed eseguire un’apposita funzione JavaScript che verifichi la validità dei dati inseriti dall’utente. Al fine dello sfruttamento, gli hacker hanno creato una pagina Web che contiene un elemento iframe appositamente predisposto che ha costretto tutti gli utenti Facebook registrati che vi si recano a inserire messaggi canaglia sulla loro bacheca.

Il messaggio di spam lavorava per attirare gli utenti a visitare il sito "maligno", e gli hacker sono riusciti a creare un worm che si propagava autonomamente. Gli esperti di Symantec dicono che la vulnerabilità è stata sfruttata in attacchi sempre più limitati, prima di essere usata per lanciare il worm, ma fà notare anche che i copy-cats (imitatori) hanno seguito l'ondata iniziale. Alcuni browser hanno i filtri anti-XSS built-in per impostazione predefinita, ma non sono molto efficienti. L'unico che può bloccare un numero significativo di attacchi è incluso nell'estensione NoScript per Firefox.


NoScript è un componente aggiuntivo per il browser Firefox che consente di bloccare script sospetti o generati da siti potenzialmente pericolosi. E’ possibile definire una lista di domini sicuri e di domini giudicati non attendibili. Una volta installato tutti gli script javascript, Flash, Silverlight e anche alcuni eseguibili vengono automaticamente bloccati di default. Il worm XSS è stato usato frequente nel 2009, tuttavia, i siti di social media hanno cercato di fare del loro meglio per prevenire tali attacchi.

Nonostante ciò, alcuni continuano ad apparire di volta in volta. In realtà, l'ultimo che è stato lanciato su Facebook si è verificato all'inizio di questo mese ed è stato usato per diffondere spam di prodotti per la perdita peso. La vulnerabilità esisteva nella versione mobile delle API di Facebook a causa di insufficiente filtraggio JavaScript. Esso permetteva a qualsiasi sito web di includere, ad esempio, un elemento iframe maliziosamente preparato che conteneva JavaScript o utilizzava l'attributo http-equiv col valore "refresh" per reindirizzare il browser all'URL preparato contenente il JavaScript.


Qualsiasi utente che si registrava a Facebook e visitava un sito che conteneva un elemento del genere, inviava automaticamente un messaggio di posta arbitrario sulle bacheche, anche con connessione SSL attiva. Non c'era interazione con l'utente e le altre richieste, e non c'erano trucchi coinvolti, come il clickjacking. Bastava visitare un sito infetto e ciò era sufficiente per inviare un messaggio scelto dall'attaccante. Pertanto, non sorprendeva la veloce diffusione di alcuni di questi messaggi attraverso le bacheche di Facebook. Symantec ha individuato almeno 12 diversi attacchi.

Nel mese di ottobre dello scorso anno, dei ricercatori di sicurezza francesi hanno dimostrato come rubare informazioni attraverso worm che lavorava mettendo a frutto la falsificazione delle richieste cross-site e le vulnerabilità cross-site scripting su Facebook. Secondo Candid Wueest di Symantec, Facebook ha affrontato e risolto la vulnerabilità: " Facebook ci ha informati di aver patchato la vulnerabilità XSS. Inoltre, il team di sicurezza sta attualmente lavorando su come porre rimedio ai danni causati dagli attacchi", ha detto.


Il Cross-Site Scripting è uno dei principali problemi di qualsiasi servizio Web-based. Dal momento che i browser Web sostengono l'esecuzione di comandi incorporati nelle pagine Web per consentire pagine Web dinamiche, gli attaccanti possono fare uso di questa caratteristica per far rispettare l'esecuzione di codice dannoso nel browser Web di un utente. JavaScript è il linguaggio comunemente più usato in questo contesto. Se in modo abusivo, il furto di informazioni di autenticazione possono essere possibili permettendo agli hacker di agire nel quadro di un furto identità.

L'attacco si basa sulla possibilità di inserire il codice JavaScript "maligno" in pagine visualizzate ad altri utenti. Pertanto il filtraggio di codice JavaScript "maligno" è necessario per qualsiasi applicazione web. Questo articolo descrive il problema globale ed approfondisce le possibilità di filtrare le applicazioni web in Javascript. E' presentata anche una architettura di filtraggio che consente agli sviluppatori di applicazioni Web di filtrare JavaScript a seconda dell'applicazione, per ridurre il pericolo di successo degli attacchi Cross-Site Scripting.

Nessun commento:

Posta un commento