Problemi di sicurezza per Twitter

Posted by Stefano |26 Sep 10 | 0 comments

Il 21 Settembre 2010 Twitter ha vissuto delle ore di panico dovute ad un attacco Cross-Site-Scripting (XSS). Questo tipo di attacco consiste nell’inserire in un sito, sfruttando dei bachi, del codice Javascript capace di compiere delle azioni direttamente sul Browser del visitatore.

Nel caso di Twitter, questo tipo di attacco, comportava diverse modalità come il retweet dei post con solo righe nere oppure al passaggio del mouse reindirizzare l’utente in alcuni siti per Adulti. Nella sua semplicità questo tipo di insicurezza poteva comportare rischi maggiori per gli utenti perchè le pagine di destinazione dello script, invece di essere semplici siti per adulti, potevano essere delle pagine sviluppate ad-hoc per prelevare informazioni dal computer dell’utente.

L’attacco XSS interessava solamente il sito Web di Twitter e tutte le Web Application ad esso associate mentre le Twitter Apps per iPhone, iPad, Android, PC Desktop non risentivano di questa falla in quanto non sono delle applicazioni web.


Ma che cosa è successo?

Cercherò, mediante questi semplici esempi, di spiegare la causa di questo problema. Infatti, quanto accaduto è molto semplice… come si può vedere dall’immagine seguente, quando si usano le Twitter API si ottiene un file XML con i tweets come testo in chiaro i quali poi vengo elaborati e visualizzati nel nostro computer.

A questo punto ogni web application proverà ad individuare i link presenti nel file XML e convertirli in qualche cosa di cliccabile per l’utente.

Il problema,come nel caso di Twitter, si presenta quando non vengono gestiti correttamente gli URL lasciando la possibilità alle persone di aggiungere codice extra, come codice Javascript , per ottenere comportamenti anomali e fuori controllo. Come si vede dall’immagine seguente:

il problema è stato causato dalle “ (ma poteva essere bene qualsiasi altro carattere) che permettevano l’aggiunta di codice Javascript per reindirizzare l’utente a siti per adulti, oppure creare retweet colorati e messaggi sullo schermo dell’utente.

Solitamente per evitare questo tipo di problemi si ricorre all’uso di espressioni regolari che indicano i tipi di caratteri “sicuri” da accettare negli URL.

Un esempio di espressione regolare può essere: (https?|ftp|file)://[a-zA-Z0-9;/?:@&=+$,-_.!~*()]+

Per chi non avesse ben compreso il tipo di problema avvenuto in Twitter può visionare il seguente video:

Poche ore dopo l’attacco XSS, lo staff di Twitter ha risolto il problema in un modo curioso; infatti, invece di utilizzare degli algoritmi di matching mediante espressioni regolari, come abbiamo visto in precedenza, ha pensato semplicemente di convertire le ” nel corrispondente carattere speciale HTML &quote… Si tratta sicuramente di una soluzione funzionante ma non la più elegante!


No Responses

Leave a Reply