Scoperta falla di sicurezza su Facebook

Ecco spiegato in esclusiva il bug che consente di invitare i non amici

4 feb
0

Falla di sicurezza in FacebookFacebook non ha bisogno di presentazioni: con più di 400 milioni di utenti attivi in tutto il mondo, è il social network più conosciuto e probabilmente il più remunerativo. Il valore stimato infatti è di 15-20 miliardi di dollari e una buona parte degli introiti deriva dalle inserzioni pubblicitarie.

Il meccanismo con il quale gli utenti possono pubblicizzare i propri eventi e gruppi sulle pagine del portale è semplice: dopo aver creato la propria pagina, ad esempio relativa a un evento, l’utente preme sul collegamento “Promuovi l’evento con un’inserzione” che gli consente di creare l’inserzione pubblicitaria, visualizzata poi dai visitatori del network.

Questo servizio naturalmente è a pagamento. Ma cosa succederebbe, se qualcuno trovasse il modo di aggirare il meccanismo, e avere pubblicità gratis verso un bacino potenziale di utenti grande come 20 volte il numero degli abbonati RAI? La falla che ho scoperto nella sicurezza di Facebook permette di fare proprio questo, e ora vi spiego come.

Eventi e lista degli amici

Quando create un gruppo o un evento su Facebook, molti di voi già lo sapranno, potete invitare a partecipare solo gli utenti compresi nella vostra lista di amici. Questo meccanismo di sicurezza naturalmente è stato pensato per evitare la diffusione di pubblicità indesiderata. Se siete iscritti a Facebook, avete presente la quantità di inviti che si può ricevere in una sola giornata dagli amici; immaginate quindi il caos che si verrebbe a creare senza questo filtro: gli inviti aumenterebbero in maniera esponenziale, fino a raggiungere diverse centinaia o migliaia ogni giorno.

E’ vero che esistono anche gli inviti tramite indirizzo e-mail ma, in questo caso, se volessimo spedire messaggi di “spam”, è perlomeno necessario conoscere degli indirizzi validi a cui inviare l’invito all’evento. Sarebbe molto più semplice se si potesse aggirare il controllo di sicurezza di Facebook: in questo modo si avrebbe virtualmente “accesso” alle caselle e-mail di tutti gli utenti registrati, senza sforzo e senza dover conoscere effettivamente tutti i singoli indirizzi di posta elettronica. Cioè, in pratica, si potrebbero invitare anche i “non amici” a qualsiasi evento.

Facebook Hacking: spiegazione tecnica dell’exploit

Se avete letto qualcuno dei miei articoli sulle tecniche di hacking del web, saprete già che nella programmazione di applicazioni web la validazione dell’input degli utenti è fondamentale per evitare brutte sorprese. Una svista in tal senso può arrivare a compromettere l’intero sistema su cui viene eseguita l’applicazione.

La falla che ho trovato nella piattaforma di Facebook riguarda proprio la validazione dell’input degli utenti, non al livello più evidente, cioè quello dell’interfaccia con i visitatori, ma al livello subito inferiore, cioè quello più sottile di comunicazione fra il browser e il server del sito web.

Di fatto, quindi, l’interfaccia di Facebook permette di selezionare esclusivamente gli amici per invitarli ad un evento, salvo poi dimenticarsi di controllare “lato server” i valori trasmessi. Chiunque, con una conoscenza della comunicazione HTTP che avviene tra le pagine web, può modificare gli identificativi (ID) degli amici con quelli di altri utenti, non compresi nella lista degli amici.

Tutorial: l’exploit passo passo

Il video seguente e le istruzioni sono forniti esclusivamente come proof-of-concept. Per evitare che la falla potesse essere sfruttata su larga scala da qualche malintenzionato, provocando un danno economico a Facebook, ho segnalato il bug in data 11/10/2009 e il Team di Facebook ha già provveduto a risolvere il problema di validazione. Questo tutorial rimane comunque uno strumento interessante per capire come funziona l’hacking del web.

Prima di tutto, servono gli strumenti adatti: può bastare un qualsiasi web browser affiancato da un proxy capace di intercettare e modificare i dati grezzi delle comunicazioni HTTP. Nell’esempio verrà utilizzato Burp Suite, tool gratuito che non necessita di installazione, ma per funzionare richiede la presenza di Java sul sistema utilizzato.

Dopo aver avviato Burp Suite, e impostato il browser per utilizzarlo (per Firefox il percorso è Strumenti > Opzioni > Avanzate > Rete > Connessione, si imposta un Proxy HTTP all’indirizzo 127.0.0.1 e porta 8080), prima di iniziare si disabilita l’opzione Intercept nella scheda Proxy di Burp Suite (intercept off).

Fatto questo, si seguono i seguenti passi:

1. Aprite la pagina dell’evento

2. Fate click su Invita persone a partecipare

3. Selezionate uno degli amici dalla lista che compare a schermo

4. Abilitate l’opzione Intercept nella scheda Proxy di Burp Suite (intercept on)

5. Fate click su Manda inviti

6. Tornate nella finestra Proxy di Burp Suite: noterete che il programma ha “bloccato” la richiesta che avete appena inviato, in attesa di una vostra conferma (Forward) o meno (Drop) per inoltrarla

7. All’interno del testo visualizzato, troverete gli identificativi dell’amico o degli amici selezionati, nella forma

ids[x]=yyyyyyy

dove x è un numero progressivo e la sequenza di y corrisponde al numero identificativo dell’utente selezionato. Cambiate questo numero con quello di un altro utente, non incluso fra i vostri amici (l’identificativo lo potete trovare guardando l’URL del profilo dell’utente)

8. Fate click su Forward, poi disabilitate l’intercept

9. Tornate nella pagina del browser, e guardate il risultato: avete appena invitato un “non amico” a visualizzare la vostra pagina!

O, perlomeno, questo sarebbe potuto accadere se la falla non fosse già stata corretta dopo la mia segnalazione ;)

Dato che Facebook monetizza le inserzioni pubblicitarie, come già accennato prima, se questo sistema avesse avuto una discreta diffusione il danno economico per il social network sarebbe stato ingente. Potete immaginare la difficoltà di rilevare un attacco di questo genere, che sfrutta una falla sconosciuta su un sito con milioni di pagine movimentate ogni giorno.

Concludo segnalando un link che può essere utile per chiunque abbia scoperto una vulnerabilità di Facebook e voglia segnalarlo agli addetti alla sicurezza del portale, e che pochi conoscono dato che purtroppo non è messo nella dovuta evidenza fra le pagine di aiuto del sito: Segnala una possibile vulnerabilità alla sicurezza di Facebook.


Autore: Roberto Dapino - Articolo pubblicato il 04-02-2010 alle ore 23:47

Aggiungi commento: