E se qualcuno cancellasse tutte le vostre foto da Facebook?

Oggi, 12 Febbraio 2015 questo è il rischio che hanno corso i milioni di utenti Facebook. Se fosse possibile cancellare tutte le foto di un utente qualunque, per di più utilizzando un semplice browser e visitando un url nemmeno troppo difficile da scrivere?

Questo il bug scoperto oggi da 7xter, soprannome del white hat hacker indiano .

Ebbene 7xter ha scoperto che semplicemente visitando un indirizzo facebook particolare era possibile cancellare le foto di qualunque utente, pagina o gruppo esistente, che sia tra i vostri amici o no.

Fortunatamente 7xter è un “white hat hacker“, ovvero quella categoria di hackers “buoni” che si occupano di scovare falle di sicurezza e di comunicarle a chi di dovere, invece di sfruttarle per compiere azioni illegali o dannose. Per questo l’hacker indiano ha subito comunicato a Facebook il problema di sicurezza appena scoperto, il reparto di bug hunting di Facebook ha immediatamente cominciato a lavorare  e lo ha risolto nel giro di 2 ore. Come usuale, Facebook ha ricompensato 7xter con 12.500 dollari e grazie a lui possiamo dormire sonni tranquilli sapendo che i nostri selfie sono “al sicuro”…almeno fino al prossimo bug.

Di seguito un po’ di tecnicismi per gli addetti ai lavori :

Tutto il mondo di Facebook funziona grazie ad uno strumento chiamato GRAPH API.  Ogni volta che vi iscrivete ad un gioco, che premete like su un sito, che fate il login con facebook, o che un app utilizza le vostre foto o la lista dei vostri amici, viene utilizzata la GRAPH API.

Non è nulla di “complesso”, si tratta di un metodo che Facebook mette a disposizione per scambiare informazioni con chi ne ha bisogno. Ad esempio un gioco potebbe voler usare la vostra foto come avatar, ed allora cosa fa? Invia una richiesta a Facebook, il quale risponde con i dati richiesti. Ma non ci si ferma alla lettura dei dati, tramite il graph api si possono eseguire anche operazioni di vario genere. Pubblicare sul profilo di un utente, fare l’upload di una foto, cancellare messaggi o modificiare dati del profilo.

Tutto questo avviene tramite il protocollo HTTP, lo stesso che ci pemette di navigare su internet. Questo significa che tutte le operazioni vengono svolte “visitando indirizzi internet” del dominio di Facebook.

Guardate ad esempio come risulta l’oggetto del GRAPH API della Coca Cola : http://graph.facebook.com/cocacola o quello di Mark Zuckerberg in persona : http://graph.facebook.com/markzuckerberg

Il sistema è reso sicuro da dei codici detti “Access Token”, overo delle stringhe codificate che vi vengono assegnate ogni volta che date il permesso ad un applicazione di “fare cose” per conto vostro. Questi token permettono a Facebook di riconoscervi come utenti autorizzati a compiere determinate azioni di rilievo.

Nel caso di un’operazione non autorizzata facebook risponde con la scritta simile alla seguente :

    "error": {
"message": "Error invalid access token.",
"type": "OAuthException",
}

ma sperimentando con vari accessi, e varie operazioni 7xter si è imbattuto in questo messaggio mentre cercava di cancellare un album :

    "error":{
"message":"Application does not have the capability to make this API call.",
"type":"OAuthException","code":200
}

Il messaggio sembrava lasciare intendere che era possibile cancellare un album, semplicemente si stava cecando di farlo con l’access token dell’applicazione sbagliata. Ed allora quale access token potrebbe essere più adatto di quello dell’app Facebook stessa?

E BINGO! Nello specifico, chiedendo al graph api di cancellare un album qualsiasi, di nostra propietà o no, utilizzando l’access token di Facebook Mobile questa operazione veniva eseguita senza problemi.

Qui possiamo vedere un video in cui 7xter dimostra in tempo reale il funzionamento del bug.

A questo link ulteriori note tecniche sul bug.

Un grazie a 7xter che invece di cancellare i nostri selfie ha comunicato in fretta il problema a Facebook, permettendogli di risolverlo (e di pagargli i meritatissimi 12.500 dollari).