E’ stata rivelata, calda calda, la vicenda di un attacco di hackers verso Facebook e si e’ detto che sono stati rubati gli access tokens di 90 milioni di utenti. Dico 90 milioni perche’ la cifra e’ oscillata da 50 a 90, a seconda degli “accertamenti” che facebook starebbe conducendo. Il problema di questi numeri e’ che si fa fatica a crederci.

Andiamo a vedere di che cosa stiamo parlando, e perche’: troviamo le dichiarazioni precise

Il punto e’ che questi numeri non funzionano tanto bene. Vanno bene per una massa di boccaloni, ma ci sono alcune parti piuttosto dubbie. E i giornalisti hanno fatto domande stupide, superficiali e non hanno voluto capire la reale entita’ del problema.

Per esempio, si parla molto genericamente un meccanismo di “Single Sign On”. Si tratta di un meccanismo che consente di usare le stesse credenziali per accedere a molti servizi. La domanda sarebbe stata “ma questo ha impattato anche sui servizi OAUTH?” Perche’ la superficie dell’attacco cambia MOLTO: avete presente quando potete usare il vostro account di Facebook per entrare in un sito che NON e’ di FAcebook?

Ecco, se ad essere rubate sono state QUESTE credenziali, cioe’ QUESTI token, cioe’ si parla di QUESTO SSO, mi spiace tanto ma non hanno craccato solo Facebook, ma migliaia e migliaia di siti ove entravate usando le credenziali di Facebook.

I due transcript parlano genericamente di “SSO”, che indica una famiglia di meccanismi usati per condividere le credenziali, ma non specificano quanto grande sia il problema. Se infatti sono state rubate credenziali valide di questo tipo, ci sono MIGLIAIA di altri siti collegati che sono diventati improvvisamente vulnerabili.

In questo caso, senza specificare chiaramente quale sia l’uso di tali credenziali, (si sa solo che possano accedere a View as Lookup), non possiamo dire che sono stati rubati dati di facebook: l’impatto potenziale e’ gigantesco. OGNI DATO salvato su siti ove accedete usando il vostro account di FAcebook potrebbe essere stato compromesso.

Quindi di per se’ le due interviste sono abbastanza superficiali.

Ma andiamo ad alcuni dati strani.

Dunque, stiamo dicendo che all’inizio della settimana si e’ acceso un allarme di outlier detection che ha rivelato uno spike sospetto. La dichiarazione e’ abbastanza vaga da non dire nulla, tuttavia contiene una data: 16 settembre. Si sono accorti all’inizio della settimana corrente (23-24 Settembre) di una violazione che andava avanti dal 16 settembre (had been ongoing since).

Perche’ stiamo dicendo che, nella migliore delle ipotesi gli attaccanti hanno avuto 8 giorni e 8 notti per scaricare dati.A questo punto, il problema e’: quanti server sono stati coinvolti e quanto era grande questo spike rilevato come anomalia?

Facciamo due conti spannometrici : 1024 servers coinvolti, in uno spike del 3% (cioe’ stiamo stimando una capacita’ di scoprire uno spike come outlier quando e’ il 3% del traffico totale, o ha un rampup del 3% del totale) , e ogni server ha 1Gb di banda, per 8 giorni e 8 notti. Fanno un totale di 2.1233664e+16 bit scaricati. In bytes, 2.654208e+15 .

265.420.800.000.000 Bytes, cioe ~265TB.

E sia chiaro, ho immaginato solo 1024 servers con una banda a disposizione di 1Gb. E ho dato una discreta fiducia a Facebook nel rilevare gli outliers (3%).

Ora, potete dirmi quello che volete, ma sono un pochino troppi per essere “i token di 90 milioni di persone”. Allora Facebook dice che gli attaccanti stavano scaricando anche i contenuti delle View As Lookup, ma qui le cose non tornano. Non tornano perche’ una volta ottenute le credenziali, potevano scaricarle piu’ tardi.

Ma il problema e’ che una volta presi i token, in gioco ci sono MOLTI piu’ dati, a seconda di quali token siano. Se infatti erano i token in uso per le autenticazioni su altri siti, i dati di Facebook erano l’ultimo dei problemi.

Con questo intendo dire che il numero di siti ove potete entrare con le credenziali di Facebook e’ cosi’ grande, che e’ come entrare dal concessionario, rubare il passepartout per le auto BMW, e poi ostinarsi a voler rubare l’auto dentro il concessionario. Non ha senso, perche’ ce ne sono molte di piu’ fuori, una volta avuto il passepartout.

Allo stesso modo, una volta avuti dei token capaci di entrare nei siti web che usano Oauth di Facebook per garantire l’autenticazione, non aveva senso scaricarsi View As Lookup: c’erano cosi’ tanti altri siti da cui scaricare dati piu’ “succosi&ricattosi” (si pensi solo alle applicazioni di dating online, gambling e videogames) che onestamente il View As Lookup e’ persino poco interessante

Ed e’ qui il punto: a meno che Facebook non stia nascondendo qualche altro dettaglio tecnico importante , e’ difficile pensare che qualcuno scarichi il contenuto del social quando ha 8 giorni per scaricare le credenziali di tutti.

Perche’ capiamoci, con 256 TB fatti solo di credenziali, praticamente avete le credenziali di tutti. Perche’ gli attaccanti dovrebbero essersi limitati a 90 milioni , sprecando banda per scaricare View As Lookup, e’ davvero poco chiaro.

Lo dico perche’ quando si parla di hacking e di sicurezza, occorre SEMPRE dare per scontato il Worst Case Scenario, ma non vedo nelle dichiarazioni di Facebook NIENTE che aiuti a limitare la portata dell’attacco al solo View As Lookup. Dovete fidarvi della parola di Facebook: gli attaccanti erano cosi’ stupidi che anziche’ rubare chiavi di accesso che valgono per MIGLIAIA di siti e di APP , si sono limitati a scaricare View As Lookup, un dato che sara’ poco attuale (perche’ e’ uno stream ) gia’ tra un mese.

Al contrario, focalizzandosi sulle credenziali si sarebbero potuti ottenere dati ben piu’ duraturi: moltissime app per android e IoS, che usano Facebook token per fare il login, hanno tempi di aggiornamento ben piu’ lunghi. I siti web che usano User Token di Facebook per fare il login sono migliaia, hanno dei cicli di vita casuali, e i loro utenti probabilmente NON SANNO NEPPURE che questo attacco riguarda, oltre a Facebook, anche la loro applicazione di Dating , che hanno conosciuto tramite facebook e nella quale hanno fatto il primo login usando il token di Facebook.

Con questa intervista, cioe’, Facebook sta cercando di venderci una cosa che suona cosi’: qualcuno e’ entrato nel caveau della nostra banca, ma ha preso solo il 5% delle carte di credito, perche’ era troppo occupato a riempire l’auto con le merendine dei distributori automatici che ha trovato nella mensa

Se voi ci credete, fate pure. Personalmente, se esamino la cosa dal punto di vista del worst case:

  1. La sicurezza delle credenziali di OGNI utente di Facebook e’ da considerarsi compromessa.
  2. Le credenziali di ogni servizio esterno che utilizzasse Facebook come autenticazione sono da considerarsi compromesse.
  3. Le credenziali di OGNI app , sia su Android che su IOS, che usano un Token di Facebook per autenticarsi, sono da considerarsi compromesse.

Il resto e’ solo una presa per il Q di Facebook a dei giornalisti sin troppo decisi a non fare domande scomode.

Cioe’ domande precise.

E’ interessante notare come, alla fine, tutto venga attribuito all’azione di leggere le pagine come utente diverso. Questo, a detta di Facebook, restringe il computo delle credenziali a quelle che si possono ottenere in quel modo. Il problema e’ che una volta ottenuto il leak, non e’ ben chiaro per quale motivo l’attaccante dovrebbe aver bisogno di scaricare l’intera pagina.

Secondo quanto detto da FB, si sarebbero insospettiti vedendo un traffico sospetto sui server che generavano la pagina in questione. E sin qui ci siamo. Ma una volta ottenute quelle credenziali, quei token, non e’ ben chiaro cosa ci stessero facendo. Nel senso che se si vogliono solo scaricare le credenziali, non c’e’ bisogno di scaricare l’intera cronologia. A meno che non si intenda attaccare pagine e gruppi ove gli utenti siano inseriti. Oppure, a meno di non cercare a quali applicazioni esterne e/o siti il nostro utente sia iscritto usando quelle credenziali.

Ci sono ancora troppe cose che non tornano: se hanno davvero causato il picco di traffico scaricando meccanicamente le pagine in questione, non si capisce cosa intendano fare con quei dati: una volta ottenute le credenziali non c’e’ bisogno di scaricare l’interapagina. Se invece si e’ scaricata davvero la pagina intera, al costo di rallentare le operazioni di raccolta delle credenziali, allora non si spiega per quale motivo l’allarme riguardi solo facebook.

In ogni caso, i numeri e la narrativa di questo attacco sono molto strani.