giovedì, Aprile 18, 2024
Uncategorized

Facebook conserva milioni di password in chiaro: diagnosi dell’incidente

Lunedì 8 aprile 2019 l’attenzione di molti utenti di Facebook è stata catturata da un avviso inusuale apparso in testa alla sezione notizie del social network. L’immagine seguente è il risultato di uno screenshot che ho effettuato nel mio account personale:

Facebook password in chiaro

L’avviso mostrato nell’immagine descrive una situazione molto particolare: infatti, vengo avvertito che la mia password di Facebook è stata conservata per errore nei server interni della società in formato leggibile.

I fatti

Ciò che ha spinto Facebook ad avvertire centinaia di milioni di utenti di Facebook Lite (l’app dedicata ai dispositivi meno performanti e agli utenti con connessioni a bassa velocità), decine di milioni di utenti di Facebook (la versione standard per browser e per smartphone) e decine di migliaia di utenti di Instagram è stato l’articolo contenente un annuncio da parte di un anonimo dipendente senior della società, riportato dal blog KrebsonSecurity gestito da Brian Krebs, giornalista specializzato in cybersecurity. Nell’articolo si evince che le password di innumerevoli account dei predetti servizi sono state conservate in chiaro, visualizzabili e potenzialmente disponibili alle ricerche di circa 20.000 dipendenti. In aggiunta a ciò, per alcuni casi sono stati individuati archivi contenenti password in chiaro datati 2012 ed inoltre si è rilevato come l’indagine da parte della società sia iniziata nel gennaio del 2019[1], senza tuttavia determinare un avviso immediato agli utenti ad inizio anno. Il predetto articolo infatti è stato pubblicato alle 11:17 della mattina del 21 marzo 2019; alle 11:43, Facebook ha pubblicato un annuncio in merito alla questione, quindi esattamente 26 minuti dopo l’articolo di Brian Krebs, ma tre mesi dopo l’effettiva scoperta del problema[2].

L’annuncio della società descrive il problema concentrandosi su come non sia stata trovata alcuna prova che dimostri un uso improprio delle password oppure la visualizzazione delle stesse da parte dei dipendenti di Facebook[3]. A peggiorare la situazione interviene però il 18 aprile un aggiornamento del predetto annuncio che corregge il numero di utenti di Instagram interessati dal problema: non più decine di migliaia ma ormai milioni.

La seconda parte dell’annuncio di Facebook descrive come la società implementi i migliori standard di sicurezza in relazione alla conservazione delle password, creando una situazione paradossale visto l’oggetto della questione:

In line with security best practices, Facebook masks people’s passwords when they create an account so that no one at the company can see them. In security terms, we “hash” and “salt” the passwords […] With this technique, we can validate that a person is logging in with the correct password without actually having to store the password in plain text[4].

Leggendo questo breve estratto dell’annuncio si comprende come in linea teorica i dipendenti di Facebook non dovrebbero poter visionare le password in chiaro perché in fase di creazione dell’account viene applicata una specifica tecnica di hashing: l’hash con salt, attraverso cui è comunque possibile autenticare un utente senza la necessità di conservare in chiaro la password dello stesso.

Il metodo di archiviazione sicura delle password

Di regola, i servizi online devono poter verificare la corrispondenza della coppia e-mail (o nome utente) e password per consentire all’utente l’accesso al servizio, tuttavia senza dare la possibilità a nessuno di poter visualizzare le password in chiaro, per evidenti questioni di riservatezza. Per fare questo viene mantenuto nei server un file contenente la corrispondenza tra e-mail e password, dove però quest’ultima viene conservata in modo tale da essere illeggibile e incomprensibile da chiunque.

Considerando una generica procedura di registrazione ad un servizio online, un utente inserisce una password a scelta alla quale viene applicata una funzione di hash. Una funzione di hash (letteralmente “sminuzzare”) calcola a partire da un insieme di caratteri di lunghezza arbitraria una stringa alfanumerica di lunghezza determinata, che può variare a seconda della tipologia di funzione di hash utilizzata[5]. Il servizio online non conosce né può leggere la password in chiaro proprio perché il sistema si limita a conservare solo l’hash della stessa. Quindi, ogni volta che l’utente effettua il login, il sistema applica la funzione di hash alla password inserita e confronta la stringa risultante con quella che è conservata sui server; se l’e-mail e l’hash della password corrispondono alla coppia degli stessi salvata nei server, viene consentito l’accesso all’account.

Per aumentare il grado di sicurezza nell’archiviazione delle password, Facebook aggiunge una sorta di “potenziamento” alla funzione di hash: il salt (letteralmente “sale”). Il valore del “sale” è costituito da alcuni caratteri generati in modo casuale, che vengono aggiunti in coda al testo della password[6]. A tale testo viene poi applicata la funzione di hash.

L’utente di Facebook quindi in fase di registrazione inserisce la password, alla quale il sistema aggiunge in coda un certo numero di caratteri casuali, cioè il salt, che viene salvato nei server. Fatto questo viene applicata la funzione di hash alla password con il salt. La stringa risultante viene quindi salvata nei server. Facebook in definitiva per l’autenticazione dell’utente conserva tre elementi nei server:

  • e-mail;
  • salt: un certo numero di caratteri casuali che vengono aggiunti al testo della password;
  • hash con salt: la stringa alfanumerica risultante all’applicazione di una funzione di hash al testo della password unito con il salt.

Per i successivi login, quindi, quando l’utente inserisce le credenziali, il sistema unisce alla password digitata il salt conservato nei server associato all’e-mail inserita. Successivamente viene applicata la funzione di hash alla password alla quale è stato aggiunto il salt e il sistema verifica la corrispondenza della stringa risultante a quella conservata nei server.

Cause e rischi dell’incidente

Secondo questa procedura, dovrebbe essere impossibile per i dipendenti di Facebook visionare le password in chiaro, semplicemente perché non vengono conservate in un formato leggibile. Tuttavia, uno specifico passo del sopra citato articolo di Brian Krebs illustra come Facebook abbia scoperto che molte password erano state “registrate inavvertitamente”. La parola “inavvertitamente” permette di descrivere la modalità attraverso cui si è manifestato il problema.

Le password sono state registrate in chiaro attraverso una pluralità di meccanismi interni e sistemi di archiviazione, tra cui i crash log (“registri degli arresti anomali”), utili per attività di debugging[7]. Ciò significa che Facebook, mantiene registri del traffico di rete per comprendere meglio i bug, le interruzioni del servizio ed altri incidenti. Questi specifici registri tuttavia raccolgono qualsiasi dato passi nella rete, tra cui anche le password in chiaro[8].

Una società come Facebook, che opera quindi su vasta scala, ha certamente bisogno di mantenere i registri del traffico di rete per attività di debugging, ma essi devono essere conservati per un periodo di tempo adeguato alla finalità per i quali sono stati creati (si pensi al principio della “limitazione della conservazione” descritto dall’art. 5, comma 1, lett. e) del GDPR[9]). Come specificato in precedenza, alcuni registri risalgono al 2012, quindi sette anni di conservazione in relazione a file contenenti dati personali che estinguono la loro utilità una volta che sono stati corretti i bug. Questa conservazione sproporzionata deriva dal fatto che Facebook stessa non conosceva il contenuto di questi registri[10], dimostrando scarsa attenzione nei confronti dei sistemi di gestione della privacy degli utenti. Si consideri inoltre che la questione ha mostrato come l’uso della soluzione di hash con salt veniva di fatto vanificato in relazione ad un grandissimo numero di utenze, dal momento che comunque le password potevano essere visualizzate.

Nonostante Facebook stessa dichiari che le password non siano state visibili a nessuno al di fuori di Facebook, che non siano stati rilevati internamente utilizzi impropri e che il problema che ha generato questa situazione sia  stato risolto, rimangono diverse perplessità in merito all’accaduto. 20.000 dipendenti potevano accedere ai file contenenti le password in chiaro determinando un rischio enorme di data breach[11]. Si consideri che uno dei rischi a cui è soggetta un’organizzazione che opera con dati personali riguarda proprio la possibilità che si verifichino attacchi che coinvolgono attori interni all’organizzazione. Infatti, secondo il Data Breach Investigations Report del 2018, redatto da Verizon[12], il 28% delle violazioni di dati personali occorse nel 2018, percentuale che è destinata a crescere, ha coinvolto attori interni alle organizzazioni[13]. La percentuale è significativa considerando l’elevato numero di dipendenti di Facebook coinvolti nell’incidente.

Facebook e privacy: una relazione complicata

Questo episodio è solo uno dei diversi eventi relativi alla sicurezza e alla privacy dell’utenza del famoso social network. Si pensi per esempio al problema riscontrato il 25 settembre 2018 secondo cui alcuni hacker hanno approfittato di una vulnerabilità causata dall’interazione di tre bug presenti nel sistema per ottenere i token di accesso di circa 50 milioni di account[14].

I fatti che hanno messo in pericolo la privacy di milioni di utenti più e più volte fanno pensare alla mancanza nel social network dell’attitudine alla prevenzione dei problemi in relazione alla sicurezza ed alla protezione dei dati personali, che vanno valutati sin dalla fase di progettazione del servizio (si fa qui riferimento al principio della privacy by design espresso nell’art. 25 del GDPR[15]).

Tuttavia, un desiderio di cambiamento proviene proprio dal fondatore di Facebook, Mark Zuckerberg, che il 30 marzo 2019 ha pubblicato su diverse testate giornalistiche e sul proprio profilo Facebook un editoriale con il quale promuove l’emanazione di norme sempre più affini al GDPR per raggiungere una regolamentazione comune e internazionale in materia di privacy[16].

Risulta evidente, quindi, come il percorso che sta affrontando Facebook per garantire un’adeguata protezione dei dati personali dell’utenza sia caratterizzato da innumerevoli incidenti di percorso, che determinano una crescente sfiducia da parte degli utenti del social network[17], i quali stanno lentamente acquistando una consapevolezza maggiore sul valore dei propri dati personali.

[1] B. Krebs, Facebook Stored Hundreds of Millions of User Passwords in Plain Text for Years, 21 marzo 2019, https://krebsonsecurity.com/2019/03/facebook-stored-hundreds-of-millions-of-user-passwords-in-plain-text-for-years/

[2] Ibid.

[3] P. Canahuati, Keeping Passwords Secure, 21 marzo 2019, https://newsroom.fb.com/news/2019/03/keeping-passwords-secure/

[4] Ibid.

[5] Per approfondire le funzioni di hash: D.Stefanello, Come proteggere i dati personali? Anonimizzazione, pseudonimizzazione e cifratura a confronto, 6 febbraio 2019, nota 25, https://www.iusinitinere.it/come-proteggere-i-dati-personali-anonimizzazione-pseudonimizzazione-e-cifratura-a-confronto-17616

[6] Wikipedia, Sale (crittografia), ‘uso

[7] Il debugging è l’attività che consiste nell’individuazione e correzione da parte dei programmatori di uno o più errori (bug) rilevati nel software in fase di programmazione, in fase di testing oppure in fase di utilizzo finale dello stesso.

[8] L. H. Newman, Facebook stored millions of passwords in plaintext – Change yours now, 21 marzo 2019, https://www.wired.com/story/facebook-passwords-plaintext-change-yours/

[9] Art. 5 del GDPR, qui consultabile: http://www.privacy-regulation.eu/it/5.htm

[10] V. supra n. 8.

[11] Secondo l’art. 4 paragrafo 12 del GDPR (qui consultabile: http://www.privacy-regulation.eu/it/4.htm), per data breach, cioè violazione dei dati personali, si intende la violazione di sicurezza che comporta accidentalmente o in modo illecito la distruzione, la perdita, la modifica, la divulgazione non autorizzata o l’accesso ai dati personali trasmessi, conservati o comunque trattati.

[12] Verizon è una società statunitense attiva nel campo delle telecomunicazioni a banda larga e primo operatore mobile degli Stati Uniti.

[13] Verizon, 2018 Data Breach Investigations Report,

[14] I token di accesso possono essere utilizzati come chiave digitale per richiedere determinate informazioni attraverso il social network. Nello specifico, la chiave digitale permette di mantenere il login degli utenti nella piattaforma senza che essi debbano digitare la propria password ogni volta che utilizzano il social network.
Per approfondire, Facebook, Un aggiornamento importante sul recente incidente di sicurezza di Facebook, https://www.facebook.com/help/2687943754764396

[15] Art. 25, comma 1 del GDPR, qui consultabile: http://www.privacy-regulation.eu/it/25.htm

[16] Mark Zuckerberg, The Internet needs new rules. Let’s start in these four areas, 30 marzo 2019, https://www.washingtonpost.com/opinions/mark-zuckerberg-the-internet-needs-new-rules-lets-start-in-these-four-areas/2019/03/29/9e6f0504-521a-11e9-a3f7-78b7525a8d5f_story.html?fbclid=IwAR3tbZ-q8PSIAcBV3X0IOvP38lku9zO—DOFzVac_NP0yQzfa6ET0fIg-0&noredirect=on&utm_term=.a8a5ba6a0a2a

[17] M. Locklear, Facebook users are changing their social habits amid privacy concerns, 9 maggio 2018, https://www.engadget.com/2018/09/05/facebook-changing-social-habits-privacy-concerns/

Davide Stefanello

Ho conseguito la laurea triennale in Scienze dei servizi giuridici nel 2016, presso l'Università Statale di Milano, con una tesi sul GDPR e il Privacy Shield. In seguito, ho concluso il mio percorso universitario nel 2018, conseguendo la laurea magistrale in Management e design dei servizi, presso l'Università di Milano Bicocca, con una tesi sul metodo Lego® Serious Play®. Un percorso un po' inusuale, ma davvero utile per poter applicare un approccio multidisciplinare a ciò di cui sono appassionato: la protezione dei dati personali. Da ottobre 2018 a settembre 2019 mi sono occupato di conformità al GDPR in Logotel, una società che si occupa di service design, formazione e di creazione e gestione di business community per clienti corporate. Da settembre 2019 lavoro come Legal Consultant, occupandomi di protezione dei dati personali nella società di consulenza Partners4Innovation. Nello specifico mi occupo di progetti data protection in diverse organizzazioni, sia private che pubbliche. Nell'area IP & IT di Ius in Itinere scrivo di protezione dei dati personali e privacy, con il desiderio di approfondire ancora di più queste tematiche e di fornire interessanti spunti ai lettori.

Lascia un commento