top space  top space  top space  top space  top space       Visualizza il sito in italiano Visualizza il sito in inglese

Cosa i Social Network sanno di te...e viceversa


L’evoluzione di questi ultimi anni dei social network (Facebook, Linkedin, Twitter, Google …) ha coinvolto tutti, sia i privati che le aziende, offrendo agli utenti nuovi strumenti per condividere le informazioni e alle aziende nuovi canali di comunicazione. Dal punto di vista della sicurezza delle informazioni i social network hanno sicuramente contribuito a cambiare radicalmente il concetto di privacy abituando sempre di più l’utente a condividere i propri dati sulla rete internet (basti pensare al fatto che la maggior parte degli utenti di Facebook è presente sul social network con il suo nome e cognome reale e non più con nick name “virtuali”). I rischi legati alla presenza e all’utilizzo dei social network sono molteplici, non si fermano alle sole problematiche di privacy e sono stati molto discussi e trattati negli ultimi anni (suggeriamo pertanto al lettore che volesse approfondire l’argomento il testo “La sicurezza nei Social Media”1 realizzato dall’Oracle Community for Security2 ). Obiettivo di quest’articolo, dopo una introduzione sulle problematiche note è invece quello di soffermarsi su tutte quelle informazioni che i social network riescono ad ottenere sui propri utenti senza che gli stessi le condividiamo e alle tecniche che un agente di minaccia potrebbe utilizzare per ottenere informazioni da canali come Facebook e Linkedin.

 

Le informazioni condivise e la privacy


Come anticipato nel paragrafo introduttivo il primo dato d’interesse legato all’uso dei social network è il numero di informazioni che utenti e aziende condividono attraverso di essi.
 

Se pensiamo ad un utente Facebook tradizionale le informazioni che il social network può ottenere su di lui sono molteplici: nome e cognome, foto, informazioni anagrafiche e non (età, istruzione, lavoro, famiglia, …), informazioni di contatto (telefono, email, indirizzo, …), location geografiche (attuale posizione geografica, luogo di residenza, luogo di nascita, …), la rete di amicizie, le informazioni sui gusti personali (libri letti, film visti, musica preferita, …), ma anche i testi delle conversazioni effettuate attraverso gli strumenti messi a disposizione dal social network (nel caso di Facebook chat e messaggi mail), informazioni sulle condivisioni, sui “like” e più in generale sulle abitudini di navigazione dell’utente (profili che visita più spesso, gruppi che segue, commenti, …).

La condivisione delle informazioni non riguarda però solo la sfera privata degli individui ma coinvolge sempre di più anche le aziende, pensiamo ad esempio alle informazioni aziendali
(sedi, contatti, …), alle informazioni sulle risorse umane, la loro struttura, l’organigramma o i movimenti di carriera interni all’azienda (tutte informazioni che un canale come Linkedin riesce ad aggregare attraverso i singoli account dei dipendenti di un organizzazione), alle reti di collegamenti (clienti, collaboratori, …) o alle comunicazioni con i clienti (ad esempio quelle presenti sulle bacheche pubbliche delle pagine aziendali su Twitter o Facebook).

Tutte le informazioni sopra citate non sono in possesso dei soli canali sociali ma andando a leggere le policy privacy si scopre che possono essere cedute a terze parti. Inoltre andando ad esempio ad analizzare le applicazioni mobile dei social network Facebook e Linkedin scopriamo che sono molte le informazioni che vengono richieste all’utente e che a tutti gli effetti non dovrebbero servire alle applicazioni stesse (ad esempio il modello di dispositivo mobile utilizzato, il suo identificativo univoco, l’operatore telefonico,…).

 

 

 

 

Problematiche note e meno note

 

Ad oggi sono molti i rischi, le minacce e le problematiche note legate ai social network, a scopo puramente riassuntivo elenchiamo le principali: agevolare la profilazione di un utente, ottenere informazioni utili ad attacchi di social engineering e a frodi informatiche, nuovi canali per il phishing o il whaling, agevolare frodi come la sostituzione e/o il furto di identità, canali per lo stalking, ottenere la geolocalizzazione di un utente, distribuire malware (trojan, worms, rootkits, …), effettuare spam, rischio di perdere dati riservati e/o di proprietà intellettuale, danni alla reputazione e/o alla privacy, perdita del controllo dei canali sociali, etc.
 

Esistono però sicuramente aspetti meno noti, in primis i rischi legati ai “social plugins”, ovvero quei plugin che se inseriti all’interno di un sito permettono ai suoi utenti di condividere le esperienze e le azioni compiute sul sito stesso direttamente con i loro amici / follower. La diffusione di questi plugin è esponenziale, si trovano ormai su tutti i siti più importanti e per la stesura di questo articolo abbiamo analizzato il comportamento del più famoso, ovvero il Facebook Like (tenendo in considerazione che quanto segnalato però vale per quasi tutti gli altri presenti ad oggi sul mercato).
Il plugin in questione, se integrato in una pagina di un sito (ad esempio un giornale online), ogni volta che un utente visita una pagina del sito invia una chiamata web a Facebook contenente all’interno del campo “Referer” la pagina web da cui è richiamato.
L’immagine qui sotto riportata un esempio preso dal sito www.repubblica.it in cui si vede che richiamando il plugin sull’host s-static.ak.facebook.com viene passata l’informazione sulla pagina visualizzata, in questo caso “/ambiente/2014/03/04/foto/spazzatura sull everest”.

 

Burp session

 

Attraverso il plugin e in particolar modo con il campo “Referer” Facebook è quindi in grado di recuperare informazioni sulla navigazione degli utenti anche fuori dal suo dominio e anche senza che questi interagiscano con il plugin stesso (in questo caso specifico senza il click sul tasto like).
Un utente che naviga altri siti mentre è connesso a Facebook può quindi condividere informazioni quali ad esempio le pagine visitate e nel caso di interazione con il plugin le pagine di interesse, l’ora di visita, il tempo dedicato alla consultazione della pagina e la posizione da cui naviga (ad esempio attraverso l’indirizzo ip dell’ufficio o quello di casa).

Nelle immagini sotto sono riportate le pagine di una navigazione tipo dell’autore di quest’articolo contenti il like social plugin. Si evidenziano due aspetti: il primo quanto la presenza del plugin sia diffusa su siti anche molto eterogeni (giornali on line, corsi universitari, conferenze di security, servizi di stampa on line, siti istituzionali) il secondo come diventi facile aggregare le informazioni e ottenere una ottima profilazione dell’utente (addirittura arrivando a capire quale è la sua banca).

 

Sessione navigazione

 

Per evitare questo “tracciamento” può bastare non esseri collegati ai social network durante la navigazione? In teoria si ma esistono due tecniche che possono permettere di ricondurre alla propria identità anche se non collegati in quel momento al social network.

La prima è attraverso l’uso di strumenti quali cookies o similari che memorizzino l’identità dell’utente sul computer dello stesso anche in caso di sessione non attiva, e che magari possano risultare cross-browser, ovvero che possono essere letti da tutti i browser utilizzati dall’utente (per approfondimenti a riguardo: http://samy.pl/evercookie/). Questa tecnica non riuscirebbe a tracciare utenti che sfruttino la modalità di navigazione anonima dei browser o che cancellino i cookies terminata la navigazione. C’è però una seconda tecnica che risulta efficace anche nei due casi sopra citati: il Browser Fingerprinting, ovvero l’utilizzo delle informazioni inviate dal browser dell’utente per identificarlo univocamente. I browser inviano infatti ai server molte informazioni sul dispositivo da cui arriva la chiamata (sistema operativo, user agent, i plugin installati, i font, i mime types, …) che se aggregate possono identificare in maniera univoca l’utente. Ad esempio attraverso il progetto panopticlick3 il browser che utilizzo normalmente per la navigazione risulta apparire unico sui 3.963,188 testati (per maggiori informazioni vedere anche i progetti: http://fingerprint.pet-portal.eu e http://ip-check.info).

Come scritto all’inizio ricordiamo che la problematica di “tracciamento” sopra segnalata vale per la maggior parte dei social plugin ad oggi presenti sul mercato (elencati nell’immagine sottostante).

 

 

La contromisura principale che può adottare un utente è l’utilizzo di particolari plugin sul browser che vadano a bloccare le connessioni verso siti di terze parti. Sul browser Firefox ad esempio potrebbero essere installati i seguenti plugin: Ghostery (https://www.ghostery.com/ - See which companies are tracking you. Block over 1900 trackers), Disconnect.me (https://disconnect.me/ - visualize & block the invisible websites that track you), NoScript (http://noscript.net/ - Allows JavaScript, Java, Flash and other plugins to be executed only by trusted web sites of your choice) o Adblock Plus (https://adblockplus.org/ - Blocks banners, pop-ups and video ads - even on Facebook and YouTube).

Anche questi accorgimenti potrebbero però non bastare se pensiamo a servizi di tracciamento nuovi e/o non mappati, al browser fingerprinting o alle tecniche che mirano a identificare i visitatori in base alle abitudini e alle modalità di comportamento.

 

Cosa possiamo ottenere dai social

 

In questa seconda parte dell’articolo analizziamo i frutti di una ricerca effettuata dal security advisory team di @ Mediaservice.net che si poneva come obiettivo quello di invertire il flusso di informazioni che vanno da un sito verso il social e più nello specifico ottenere le informazioni in possesso di Facebook e Linkedin per identificare i visitatori di un sito.
 

Il primo modo per poter ottenere informazioni su un visitatore è quello di sfruttare le funzionalità di SSO (single sign-on) offerte dai social network. Nel caso di Facebook al visitatore apparirà un popup (figura a fianco) in cui verrà chiesto all’utente di confermare la condivisione di alcune informazioni (definibili dal proprietario dell’applicazione) con il sito. In casi come questi, sempre più diffusi, l’utente prima di dare conferma deve quindi porre molta attenzione alle informazioni che andrà a condividere con la terza parte in questione semplicemente cliccando il tasto ok.

Sempre attraverso Facebook esiste un secondo modo per poter ottenere informazioni sull’utente: il social plugin Like Box (https://developers.facebook.com/docs/plugins/like-button) che non bisogna confondere con il più tradizionale Like Button (https://developers.facebook.com/docs/plugins/like-button).

 

Come evidenziato dalla tabella a lato, l’output dei due plugin è molto simile, tuttavia una volta effettuato il click sul tasto del Like Box sull’account Facebook ad esso collegato viene visualizzato l’utente che ha effettuato il click mentre attraverso il Like Button quella informazione non è nota al proprietario dell’account.

 

Lo scenario per ottenere le informazioni dell’utente è formato dai seguenti step:

  1. L’utente visita il sito, viene creato un suo identificativo univoco basato sul suo browser
  2. Quando l’utente clicca sul Like Box viene catturato questo evento (attraverso la funzionalità “edge.create”) e in background uno script cattura sulla pagina Facebook collegata al plugin l’identificativo dell’ultimo utente che ha cliccato sul tasto
  3. Attraverso il Facebook graph (http://graph.facebook.com/id) si ottengono le informazioni pubbliche dell’utente e le correlo all’identificativo creato nello step 1

Si segnala inoltre che con una serie di step molto simili è possibile ottenere informazioni anche all’interno di Facebook stesso, attraverso l’inserimento di contenuti statici (ad esempio con un iframe che punti a una pagina esterna inserito tramite l’applicazione http://woobox.com/statichtml).

Proponiamo infine un ultimo esempio per ottenere informazioni sugli utenti che a differenza dei precedenti non necessita di nessuna interazione da parte dell’utente. In questo caso ci si appoggia al social network Linkedin ed in particolare all’abuso della funzionalità “Who’s Viewed Your Profile” (chi ha visto il tuo profilo). La funzionalità in questione mostra al proprietario dell’account gli utenti che hanno visualizzato il suo profilo. Questa funzionalità presenta dei controlli atti a impedire il suo utilizzo al di fuori del portale Linkedin basati sul campo referer che sono stati elusi utilizzando una tecnica che svuota il contenuto del campo prima della chiamata web alla pagina (con tecniche di offuscamento attraverso javascript o altro). Grazie al superamento di questa limitazione è quindi possibile proporre il seguente scenario:

  1. Si inserisce all’interno di una pagina un rimando (ad esempio attraverso un iframe) alla pagina Linkedin dell’account “XYZ”
  2. Quando l’utente autenticato a Linkedin visita la pagina si avvia uno script in background che cattura sulla pagina dell’account “XYZ” l’identificativo dell’ultimo utente che ha visualizzato il profilo
  3. Viene correlata l’informazione dell’utente presa da Linkedin con un suo identificativo univoco basato sul suo browser in modo da poterlo riconoscere anche nelle visite successive

 

 

I tre scenari sopra descritti dimostrano quindi come può essere facile ottenere informazioni su un utente semplicemente sfruttando quella che sono funzionalità originali offerte dai social network (arrivando addirittura ad ottenerle senza necessità di interazioni dell’utente).
In generale l’argomento rimane molto vasto e crediamo che siano ancora molti ambiti di ricerca, basti pensare al continuo sviluppo di nuove feature, alle applicazioni mobile, o a altre funzionalità “interessanti” quali gli algoritmi di friend suggestion.

 

 


Chiunque volesse approfondire l’argomento o è interessato a ricevere il codice dei tre proof of concept sopra descritti può scrivere all’autore di quest’articolo.
 

Inoltre questo studio è stato oggetto di una apposita presentazione al Security Summit 2014 e online sono scaricabili le slide dell'intervento all'indirizzo: https://www.securitysummit.it/static/files/atti_milano_2014/18/18.03.2014_GAI-AGAZZINI.pdf
 

 

14/04/2014 - Alessandro Gai, Security Advisory Team @ Mediaservice.net

(alessandro.gai [-at-] mediaservice [-dot-] net)



1 http://social.clusit.it/views/Social/Homepage.html

2 http://c4s.clusit.it/views/C4S/Homepage.html

3 https://panopticlick.eff.org