skip to main | skip to sidebar
40 commenti

La strana storia dell’uomo che poteva cancellare tutte le foto di Facebook e non l’ha fatto

Ogni giorno vengono caricate su Facebook circa 350 milioni di fotografie. Il numero complessivo d'immagini depositate nel corso degli anni nelle pagine del social network è dell'ordine delle centinaia di miliardi. Ma il software di Facebook aveva una vulnerabilità che avrebbe consentito a chiunque di cancellarle tutte di colpo.

Laxman Muthiyah, un ricercatore di sicurezza informatica, aveva questo incredibile potere. Aveva scoperto che era possibile cancellare qualunque album di foto su Facebook, anche di altri utenti, conoscendone semplicemente l'identificativo numerico. Bastava mandare quattro righe di istruzioni, come documentato (anche in video) in questo articolo.

Muthiyah a questo punto avrebbe potuto sfruttare il proprio potere in molti modi. Avrebbe potuto vendere il trucco a qualche organizzazione criminale, sfruttarlo per farsi pubblicità tenendo segreti i dettagli e dando al difetto un nome giornalisticamente spettacolare, come si usa adesso (BadUSB, JASBUG, eccetera), oppure passare alla storia come l'uomo che distrusse Facebook.

Invece Laxman Muthiyah ha fatto la cosa giusta: ha segnalato il problema all'assistenza tecnica di Facebook, che l'ha corretto nel giro di due ore e ha pagato a Muthiyah una ricompensa di 12.500 dollari.

Stavolta Facebook è salva, ma l'esistenza di difetti così fondamentali nel suo sistema di gestione delle immagini è un buon promemoria del fatto che non è il caso di affidare contenuti importanti, sensibili o potenzialmente imbarazzanti a un social network.
Invia un commento
I commenti non appaiono subito, devono essere tutti approvati da un moderatore. Lo so, è scomodo, ma è necessario per tenere lontani scocciatori, spammer, troll e stupidi: siate civili e verrete pubblicati qualunque sia la vostra opinione; gli incivili di qualsiasi orientamento non verranno pubblicati, se non per mostrare il loro squallore.
Inviando un commento date il vostro consenso alla sua pubblicazione, qui o altrove.
Maggiori informazioni riguardanti regole e utilizzo dei commenti sono reperibili nella sezione apposita.
NOTA BENE. L'area sottostante per l'invio dei commenti non è contenuta in questa pagina ma è un iframe, cioè una finestra su una pagina di Blogger esterna a questo blog. Ciò significa che dovete assicurarvi che non venga bloccata da estensioni del vostro browser (tipo quelle che eliminano le pubblicità) e/o da altri programmi di protezione antimalware (tipo Kaspersky). Inoltre è necessario che sia permesso accettare i cookie da terze parti (informativa sulla privacy a riguardo).
Commenti
Commenti (40)
No, la cosa giusta sarebbe stata distruggere Facebook :D
Tanto di cappello. A differenza di come sono stati trattati altri bachi (gridati al mondo intero con nomi sensazionalistici: Heartbleed, Shellshock...) questo ha agito bene.
Caspita ed è anche poco rassicurante che con un business di milioni di dollari, paghino relativamente nulla chi ha scoperto una falla così colossale, che li poteva distruggere. Roba che, prima o poi, la prossima volta uno meno onesto pensa che ne fa di più in altro modo.
Precisazione: in realtà poteva cancellare solo le foto pubbliche o quelle a cui aveva accesso in visualizzazione.
Unknown,

ne sei sicuro? Ancora adesso gli album di FB, anche quelli privati, sono visualizzabili da chiunque se ne conosci il link.
@dumdumderum
In realtà heartbleed è stato annunciato dopo il rilascio delle patch correttive. Anche con shellshock mi pare sia stato seguito lo stesso procedimento.

ciao
Al posto suo io mi sarei fatto una bella tazza di thé, preso qualche biscotto... e mi sarei seduto davanti al monitor guardando Roma bruciare >:D

Qualche annetto in una prigione federale (magari di quelle private, veri e proprio hotel a cinque stelle con sbarre e secondini), val bene la soddisfazione... e poi chissà, magari a fine pena si finisce per diventare un pagatissimo consulente di sicurezza informatica (Mitnick docet!).
Certo, ha fatto la cosa giusta, come se qualcuno mi restituisse il portafogli coi documenti. Ma io gli darei almeno i contanti che ho dentro, non 12 centesimi. Perchè questa è la proporzione.
Però, che splendida occasione per cancellare tutte le foto di gattini: avrebbe liberato metà dei server mondiali ;-)
Beh ora, dire che avrebbe potuto distruggere Facebook mi sembra sensazionalismo.... Troverei sconvolgente che i database che stanno dietro Facebook non siano snapshottati e multi backuppati, e che tutte le operazioni non siano loggate e rollbackabili. Tutto quello che avrebbe ottenuto da un'attacco totale sarebbe stato probabilmente un down di un'oretta mentre i tecnici annullavano tutte le sue operazioni.
Paolo,
Questo articolo di Sophos dice così https://nakedsecurity.sophos.com/2015/02/12/how-one-man-could-have-deleted-every-photo-on-facebook/
Ehm...solo una correzioncina...all'inizio <<..."il software"..."avevano"..>>?
@Paolo:
A quanto dicono per poterle vedere è necessario anche un ulteriore parametro che viene aggiunto all'url. C'è la funzione apposita in ogni album per ottenere l'url per la visualizzazione pubblico, opzione ovviamente non rinunciabile (it's not a bug, it's a feature!).
Questo è il link a un mio album che ho creato per test. Senza il parametro 'l' non dovrebbe essere visualizzabile pubblicamente.
Certo che, visto che il buco c'era e anche bello grosso, non è detto che questa "protezione" avesse una qualche utilità.

Nell'articolo dice:
So i got access to delete all of your Facebook photos (photos which are public or the photos i could see)

In realtà potrebbe anche essere che intendesse dire che può cancellare solo quelle perché solo di quelle può sapere l'id... ormai è troppo tardi per fare qualche test;)
Mosca ha minacciato di rendere pubbliche "evidenze satellitari e dei servizi russi riguardo l'11 settembre". Mmmmh cosa vorranno mai pubblicare? Ma l'avranno letto Paolone nostro? Come osano insinuare che ci sia qualcosa di poco chiaro? Ma poi, che competenza crederanno mai di avere i "servizi russi", noti per la loro superficialità e scarsa professionalità? Non c'è più religione!!
Ancora adesso gli album di FB, anche quelli privati, sono visualizzabili da chiunque se ne conosci il link..

Vero. Però a voler essere pignoli per cancellare TUTTE le foto doveva conoscerne il codice numerico. Se questo codice è di 15 cifre come nell'esempio mostrato (codice che bisogna conoscere), ciò equivale a una probabilità di 350.000.000/100.000.000.000.000 = 0.000.035% di trovare una foto digitando un ID a caso. Forse qualcosa di meno se si fanno alcune ragionevoli ipotesi sul valore di alcuni campi

Quindi sarebbe più corretto dire "che poteva cancellare tutte le foto di Facebook di cui conosceva l'ID".
@pgc
Vero. Però a voler essere pignoli per cancellare TUTTE le foto doveva conoscerne il codice numerico. Se questo codice è di 15 cifre come nell'esempio mostrato (codice che bisogna conoscere), ciò equivale a una probabilità di 350.000.000/100.000.000.000.000 = 0.000.035% di trovare una foto digitando un ID a caso.

Ma se il lavoro fosse fatto tramite un software, magari un malware, distribuito su un grande numero di pc ci accorgiamo che non si tratta di un numero grandissimo.
Se, in media, solo un tentativo su circa 300.000 andrebbe a buon fine, lavorando con solo 1.000 pc contemporaneamente infettati col malware "ammazzaFB" (numero molto esiguo se si considerano quanti pc vengono "arruolati" nelle botnet a insaputa dei loro proprietari) ci sarebbero delle "cannonate" da 1.000 ID alla volta, che significherebbe un successo in media ogni 300 "colpi". Non è poi tanto.

Un attacco del genere, forse, non avrebbe portato alla rovina FB (ci sono sempre i backup) ma il danno d'immagine sarebbe stato notevole e sono d'accordo con chi ha detto che 12.500 dollari sono stati pochini.
Ma i 12500 Dollari sono una tariffa standard che paga Facebook a chiunque segnali un baco, qualsiasi sia la sua gravità, oppure è la cifra che hanno offerto a Muthiyah? Perché nel secondo caso, secondo me sono stati taccagni parecchio. Il prossimo che trova una falla critica è incentivato a tirare sul prezzo.
Non si capisce come fa ad inviare i comandi a Facebook.
@pgc e Guastulfo:
si parla della cancellazione di album, non di foto, e i 350 milioni sono le foto caricate ogni giorno (quelle totali, come scritto, sono nell'ordine delle centinaia di miliardi).
Per calcolare la probabilità di cancellare un album per ogni singolo tentativo bisognerebbe sapere quanti sono gli album, informazione che non abbiamo, ma questo è poco importante. Quello che ci interessa sapere è quanto ci vuole a cancellarne una certa percentuale.

Per assicurarsi di cancellare tutti gli album bisognerebbe provare necessariamente 10^15 id, ovvero 1.000.000.000.000 (@pgc mancava uno zero).

Per cancellarne il 50%, ammettendo che gli id reali siano equamente distribuiti su quelli possibili, bisogna tentarne il 50%, e così via.

Con una botnet di 1000 pc, ciascuno dei quali fa 10 richieste al secondo (anche se immagino abbiano un IDS che bannerebbe a prescindere in caso di richieste così veloci), avremmo 10^4 richieste al secondo, quindi per tentare tutti gli id e cancellare tutti gli album ci vorrebbero 10^11 secondi, ovvero 3171 anni.

Mettendo caso che non abbiano un IDS, e che la botnet di 1000 pc lavori indisturbata per 7 giorni prima che qualcuno se ne accorga, ci sarebbe il tempo di 6 * 10^9 tentativi, quindi si riuscirebbe a tentare lo 0,0006% dei possibili id, cancellando lo 0,0006% degli album.
Risultato un po' scarso e poco utile per tutto questo sforzo;)
Terrificante, ben documentato e ben commentato. Grazie, Paolo.
@Claudio (l'altro)
Concordo in pieno con la tua opinione, anche se il "tirare sul prezzo" può essere interpreato come "tentativo di ricatto" (o almeno, se hai un esercito di avvocati un tribunale che lo interpreta in tal modo lo trovi di sicuro) e quindi dare il via a tutta una serie di conseguenze poco piacevoli...
C'è una apposita funzione delle API di FB per inviare i comandi, serve per scrivere le app, in pratica usi degli indirizzi (URL) appositi.

Fa ridere che il complottardo undicisettembrino posta in QUESTO articolo invece che in quello apposta. Geni come sempre.
Io non ho ancora ben capito una cosa.

Se avessi un profilo facebook, non mi stupirei troppo se un bel mattino mi svegliassi e scoprissi che un album non c'è più... voglio dire, è un servizio gratuito, ottengo più di quello che pago.
Non dovrebbe essere particolarmente spaventoso, se voglio avere la certezza assoluta che le foto stiano lì allestisco un server personalmente, se devo farci soldi, mollo qualche eurozzo a qualcuno che se succede qualcosa di simile risponde per l'interruzione del servizio... ma se uno mi regala una fettazza di hard disk nel suo server per metterci vicino cartelloni pubblicitari non è che pretendo che ci metta 20 soldati e 5 ninja intorno 24/7
@Guastulfo,

prova a fare i conti: anche supponendo che ogni computer possa inviare 10 "delete" al secondo (la funzione è di alto livello e richiede una certa quantità di tempo ad essere eseguita), ci vorrebbero 130.000 anni con 1000 computer. sicuro l'operazione impegnerebbe i server, creando un Denial of Service (e ovviamente allertando in pochi minuti i webmaster di FB). Non avrebbe potuto comunque distruggere FB. Questo ad essere pignoli...

@A:

Lo dice. Usa le API di Facebook. La cosa può essere fatta con qualsiasi linguaggio moderno in maniera del tutto automatica: php, python, java, perl... Non è così complicato interagire con internet.

Non essendo utente FB non posso dirlo con certezza, ma probabilmente lo si può fare anche dalla console di Chrome, per esempio, che può essere attivata/disattivata (su Mac) con la composizione di tasti: command-option-J. da li uno può inviare comandi come fosse un terminale JavaScript. Prova a fare un cut&paste in quel terminale di 1e15/365/24/86400/10 e premere enter e vedrai la funzione calcolatrice eseguire il conto del mio commento precedente.

E' vero comunque che, se ho capito bene

(1) in realtà lo script cancella un intero album, non la singola foto (questo non cambia la sostanza: sempre 15 cifre di ID sono).

(2) lo stesso Laxman Muthiyah dice nell'articolo: "i got access to delete all of your Facebook photos (photos which are public or the photos i could see)", confermando che Unknown ha ragione.
@ enamelina

Aspetta pure con ansia che "larussia" (tutto attaccato come fosse una persona) pubblichi queste benedette foto.

Ma mi raccomando... che sia ansia vera, di quella che non vede l'ora di esplodere in un fragoroso "AHA!LOSAPEVOCHEERATUTTAUNAMESSINSCENAECHESIETETUTTIDEIVENDUTIMASSONIBASTARDI!!1!1!"

Aspetta...

No, non ancora...

Aspetta...

Aspetta...

...

...
Anzi propongo un esperimento: chi se la sente di segnare il commento di enamelina e chiedere lumi a cadenze, boh, trimestrali sulle famigerate foto di "imminente" pubblicazione?

Quanti sono disposti a scommettere che nessuno che lo farà riceverà mai una risposta?
"chi se la sente di segnare il commento di enamelina e chiedere lumi a cadenze, boh, trimestrali sulle famigerate foto di "imminente" pubblicazione?"

Guarda che non ti paghiamo 6000 € al mese per far lavorare gli altri! :D
"Guarda che non ti paghiamo 6000 € al mese per far lavorare gli altri! :D "

Con quello che ti paghiamo possiamo capire dimenticare 1 zero, ma due è un po' troppo.
12500 dollari?
Che pezzenti. Avete idea del danno di immagine che poteva derivare dalla cancellazione di tutte le foto? Miliardi di dollaroni.
@Enamelina commento #13 che c'azzecca mo l'11 settembre? Possibile che voi gomblottisdi dovete infilare l'11/09 dappertutto a mo di sale sulle pietanze... Il pomodoro vi fa una pippa.
-
Il tipo ha scoperto un bugghetto ed è stato pagato quanto una sartina che sistema un orlo. Non credo che la cancellazione mirata di qualche foto considerato il livello medio delle foto presenti su facebook fosse tutto sto gran problema. Molti nemmeno si sarebbero accorti scommetto.
@puffolottiaccident Se avessi un profilo facebook, non mi stupirei troppo se un bel mattino mi svegliassi e scoprissi che un album non c'è più... voglio dire, è un servizio gratuito, ottengo più di quello che pago.

Quelli di Facebook, ma anche di Youtube per esempio, sono dei geni del marketing. Ti fanno credere di darti un servizio gratuito, in realtà sei tu che stai lavorando per loro, e per di più gratis!

Facebook senza il tuo contributo (e quello di chiunque altro) sarebbe vuoto, e nessuno visiterebbe un sito vuoto. La gente visita Facebook perché ci sono dei contenuti, articoli da leggere, foto da vedere, video, post da commentare. E quanto paga Facebook per ottenere questi contenuti? Zero!

Quindi non preoccuparti che i tuoi contenuti hanno un certo valore, e Facebook farà di tutto per non perderli, sono più al sicuro che non in un server casalingo.

Sul fatto che le foto sono pubbliche per definizione, certo non è molto bello, ma indovinare l'URL non è per nulla facile. E' molto - molto! - più
facile indovinare la password, anche se l'utente potrebbe aver abilitato strumenti di autenticazione aggiuntivi es. SMS.

Però gli URL sono passati in chiaro, ed il tuo fornitore di connettività li può conoscere. Una password inviata tramite HTTPS invece è al sicuro.
e gli hanno dato si e no 10.000€ ... sti spilorci...
@Federico

Ne sono più che persuaso, informazioni attendibili su psicologia della massa hanno un valore immenso, anche se a quota zero mi pare che molte persone trovano inquietante cose come una pubblicità che suggerisce loro quale collegamento aereo prendere per una vacanza di cui non hanno ancora parlato con nessuno. queste cose sono un brutto colpo per chi coltiva l'illusione del libero arbitrio... Aggiungerei che forse una pubblicità mirata a chi spende senza timori i propri soldi raggiunge meno clienti ma produce maggior profitto, anche se quelli che se ne lamentano sono la maggioranza di chi ci entra in contatto.
Si scopre che nella famosa barzelletta: "Tu hai un pesce rosso? no? allora sei invertito" c'è molta verità... Si è sempre sospettato, ma mai come oggi è stato possibile elaborare una simile mole di dati che nessuno vede come imbarazzanti così rapidamente

Tuttavia questo è dal punto di vista del fornitore del servizio, io parlavo del mio punto di vista di utente, (se lo fossi.) Devo spiegare a qualcuno come si usa un certo strumento di un programma, faccio un video su youtube, il tipo lo guarda, se gli va mi ringrazia.
Lo lascio lì perchè magari potrebbe servire a qualcun'altro, se un giorno youtube lo toglie salgurko perchè, magari qualcuno a cui non piaccio si inventa che rubo le caramelle ai bambini, non mi casca il mondo addosso.

Usufruisco di questi servizi sapendo che un giorno qualsiasi il proprietario potrebbe levarmi l'accesso ad essi.
La cosa notevole di facebook è che in linea di massima potrebbe non aver bisogno di esseri umani per funzionare.
Teoricamente il meccanismo potrebbe monetizzare i cartelloni così come un essere umano può calcolare il costo di un certo numero di volantini e confrontare un bombardamento a tappeto con un bombardamento intelligente, in effetti sarebbe anche possibile garantire una certa proporzione di risposte alla pubblicità, senza che un essere umano debba sbattersi a leggere alcunchè.
Certo che se un giorno dovessi scoprire che tutte le mie foto facebook sono andate perdute... e codesti membri, direi anche. Le foto su fb le metto solo per condividerle con gli amici (un po' il caro vecchio "vieni a vedere le diapositive della mia vacanza", ma senza il "vieni"), non per storage personale. Anzi, le foto che hanno più significato per me le stampo direttamente, perché produciamo una tale quantità di "dati spazzatura" che anche ammettendo di avere un sistema di backup infallibile e non perdere MAI un dato, ritrovare le foto migliori tra centinaia è dura.

Purtroppo, però, capisco anche che non tutti la vivono come me.
@Tukler
Con una botnet di 1000 pc, ciascuno dei quali fa 10 richieste al secondo (anche se immagino abbiano un IDS che bannerebbe a prescindere in caso di richieste così veloci), avremmo 10^4 richieste al secondo, quindi per tentare tutti gli id e cancellare tutti gli album ci vorrebbero 10^11 secondi, ovvero 3171 anni.

il problema è che le botnet possono essere di milioni di pc... e che un pc può fare più di 10 richieste a secondo ;)
Poi teoricamente puoi anche cambiare l'ip di provenienza dei pacchetti tcp ip... volendo
@puffolotti: «Se avessi un profilo facebook, non mi stupirei troppo se un bel mattino mi svegliassi e scoprissi che un album non c'è più... voglio dire, è un servizio gratuito, ottengo più di quello che pago.»

Quindi - mutatis mutandis - se tu avessi una casella gmail gratuita, non ti stupiresti troppo se un bel mattino, svegliandoti, trovassi che tutta la tua corrispondenza (magari contenente decine di migliaia di messaggi) è stata trafugata e/o distrutta. Voglio dire, in fondo anche le caselle email utilizzate dalla quasi totalità degli utenti sono gratuite, si paga sempre meno di quel che si ottiene.

No? ;)


@MacLo: «e gli hanno dato si e no 10.000€ ... sti spilorci...»

Tutt'altro!

Cito da "A Bounty Hunter's Guide to Facebook" (enfasi mie):

«How does Facebook reward bugs?
The biggest factor in our decisions about reward amounts is impact. If there is a bigger theoretical risk to people using Facebook or Facebook itself, the reward will be higher. What this means is that if you and someone else find bugs with similar severities, we will pay roughly the same amount for both issues with minor allowances given to the cleverness of the issue and clarity of the report. We try to go above and beyond here; if someone submits a bug that has more impact than they realize, we pay out at the higher level.»

12 mila 500 dollari sono 25 volte i 500 dollari che costituiscono l'ammontare minimo riconosciuto ai "cercatori di bachi". Siccome il "protocollo sperimentale" stabilito per questa operazione di "crowdsourcing" del controllo del codice è abbastanza rigoroso (bisogna essere in grado di riprodurre il baco, in grado di descriverne l'impatto potenziale, eccetera), delle due l'una: o Muthyiah ha comunque saputo "vendere" bene la sua scoperta, e allora onore al merito, perché è riuscito a beccarsi 12 mila 500 dollari per un lavoretto che potrebbe non avergli richiesto più di un paio d'ore di tempo; oppure gli ingegneri della sicurezza di FB si sono fatti due conti, e devono aver pensato che ci fosse ben più che una probabilità infinitesima di subire dei danni. Una probabilità almeno 25 volte maggiore di quella attribuita ai danni causati dalle vulnerabilità più "banali"...
@Federico:
Però gli URL sono passati in chiaro, ed il tuo fornitore di connettività li può conoscere. Una password inviata tramite HTTPS invece è al sicuro.

No, con HTTPS anche gli URL fanno parte del flusso criptato, il tuo provider non li conosce. Vede solo le richieste DNS.

@Guido Pisano:
Io ho utilizzato gli stessi numeri della persona a cui stavo rispondendo, in uno scenario puramente ipotetico, per fare un esempio di quale sarebbe il tempo richiesto, non dell'effettiva fattibilità.

il problema è che le botnet possono essere di milioni di pc

Certo, ma chi è che si brucia una botnet di milioni di pc per un attacco facilmente rilevabile da cui non ci guadagna niente?

e che un pc può fare più di 10 richieste a secondo

Può farne quante ne vuole, ma 1: non è detto che chi riceve la richiesta la soddisfi, perché potrebbe avere un limite imposto di richieste al secondo, e soprattuto 2: mandando così tante richieste in pochi secondi verresti rilevato immediatamente da un IDS.
Per passare inosservato dovresti fare, molte, molte meno richieste, sia in termini relativi che assoluti. Ciascuno se fa troppe richieste viene rilevato, ma anche milioni di PC che si svegliano all'improvviso e richiededono cancellazioni di album, pur non contemporanee e distribuite nel giro di qualche secondo, verrebbero rilevati comunque.

C'è anche il piccolo dettaglio che la richiesta viene fatta utilizzando un token valido. Quindi o usano tutti lo stesso token (e vengono bannati all'istante), oppure oltre ai milioni di PC ti servono anche i milioni di account fittizi.

Poi teoricamente puoi anche cambiare l'ip di provenienza dei pacchetti tcp ip... volendo

No, non puoi. HTTP usa TCP, e ovviamente non puoi fare un handshake con un IP fittizio.
Tuckler ha espresso in maniera estremamente chiara e tecnica le mie perplessità.

L Muthiyah avrebbe potuto cancellare qualsiasi album noto, o anche qualche album dall'ID a lui ignoto, certamente però non tutti. e il danno a FB sarebbe stato comunque limitatissimo visto la necessità di conoscere l'ID dell'album da cancellare.

p.s. Resta il fatto che il bug c'era, e che avrebbe consentito a chiunque di cancellare per dispetto o per scherzo interi album altrui se non segnalato.
Tuckler ha espresso in maniera estremamente chiara e tecnica le mie perplessità.

Tranne quella su come si scrive il suo nick:D
Aggiungo un'altra tacca...:P