Avete un account su Facebook? Siete di quelli che ogni foto che fanno la mettono su Facebook e taggano gli amici? E allora sappiate che ogni foto che mettete su quel sito sarà visibile a chiunque abbia un accesso a Internet, indipendentemente dalle impostazioni sulla privacy del vostro account. Per capire come sia possibile prendiamo come esempio questa mia immagine:

http://www.facebook.com/photo.php?pid=30122749&l=ab086e4c7d&id=1509474942


Si tratta di un link a un’immagine che solo chi è loggato su Facebook e risulta tra i miei amici può vedere e in effetti avviene proprio questo, non potete vedere quell’immagine se non siete nella mia lista di contatti. Peccato però che il link precedente porti solo a una pagina di FB e non sia l’url reale della foto, con Firefox basta un click col tasto destro sull’immagine e poi su proprietà per scoprire che il vero indirizzo è questo:

http://photos-f.ak.fbcdn.net/photos-ak-snc1/v1357/182/75/1509474942/n1509474942_30122749_5029.jpg

Da questo url  la mia ‘immagine è accessibile da chiunque abbia un browser, che sia iscritto a Facebook oppure no e in barba alle mie impostazioni sulla privacy. Il mio non è un caso isolato, tutte le foto che vengono caricate sul social network finiscono su un photo server esterno alla piattaforma che permette l’accesso a chiunque, senza alcuna autenticazione e senza interrogare alcun cookie, quindi possono essere scaricate usando anche wget! Inoltre sappiate che il giorno che cancellerete le vostro foto da Facebook, esse non saranno più indicizzate dalla piattaforma, ma continueranno a essere reperibili da chiunque sul dominio fbcdn.net, anche quando disattiverete il vostro account.

Come se non bastasse, gli indirizzi “reali” delle foto rispondono ad un preciso schema matematico individuabile da qualsiasi tentativo di reverse engeeniring , prendiamo ad esempio l’ultima parte dell’url che ho riportato prima, n1509474942_30122749_5029.jpg:

  • il primo gruppo di cifre (1509474942)corrisponde all’User ID dell’utente che ha caricato la foto, è una costante ed è facile da reperire, basta andare sulla pagina dell’utente: che il profilo sia pubblico o privato, che siate tra i suoi amici o no spulciando il codice HTML trovate sempre l’UID dell’utente.
  • Il secondo gruppo di cifre (30122749) è l’ID della foto.
  • Il terzo è una specie di PIN.

La sicurezza delle nostre foto è quindi affidata al terzo gruppo di cifre, il PIN,  si tratta di 4 cifre generate in base al timestamp, quindi sempre incrementali, attaccabile con un attacco di brute force di 45 minuti! Ora la domanda è chi c’è dietro al dominio fbcdn.net, credo che fbcdn stia  per Facebook Content Distribution System, ovvero i server sono gestiti da una CDN esterna al social network, ma ne parlerò nella seconda parte di questo post.

Per approfondire: