venerdì 22 marzo 2019

Password "in chiaro" nei sistemi di Facebook: è un problema?

Ho ricevuto questo mail da uno studente:

Mi sono imbattuto in una notizia che mi ha fatto riflettere (anzi, preoccupare..).

“Una serie di errori in alcune applicazioni di Facebook ha causato l'accesso alle password degli utenti a circa 20.000 dipendenti. Si ritiene che le password da 200 milioni a 600 milioni di utenti di Facebook siano state esposte...
Facebook ha confermato questa omissione nel suo blog ufficiale...è stata rilevata nel mese di Gennaio. ...almeno 2.000 dipendenti di Facebook hanno cercato i file con le password, ma non era chiara l'intenzione di tali ricerche. Presumibilmente la memorizzazione delle password in “chiaro”è iniziata nel 2012".

Io non riesco a capire se il fatto di memorizzare le password in “chiaro” sia stato effettivamente un errore del sistema/software oppure hanno deciso di farlo “apposta”.. Se siamo nel secondo caso allora la cosa mi preoccupa, perché una organizzazione mondiale come Facebook, dovrebbe garantire delle misure di sicurezza di un certo livello (hashing, salting, ecc..). Non voglio immaginare se ci sono altre organizzazioni importanti che hanno fatto la stessa cosa...

Quando si trova una notizia di sicurezza informatica, la prima cosa da fare è dimenticarsi quanto si è letto e cercare di risalire alla fonte originale; se non ci si riesce, allora cercare la notizia su un sito "affidabile", mai fidarsi di sintesi lette altrove. Se non si trova la notizia su un sito "affidabile", allora prenderla con le molle.

Difficile fare un elenco di siti "affidabili" per queste tematiche. The Verge, Motherboard, Ars Technica, Wired, The Register sono un elenco non esaustivo.

Per questa notizia specifica la fonte originale è Brian Krebs (sito ultra-affidabile): https://krebsonsecurity.com/2019/03/facebook-stored-hundreds-of-millions-of-user-passwords-in-plain-text-for-years/

Ogni cosa non scritta in quell'articolo è una speculazione o un'analisi. Non è un fatto. La fonte ufficiale Facebook afferma che "We’ve not found any cases so far in our investigations where someone was looking intentionally for passwords...what we’ve found is these passwords were inadvertently logged".

Ciò premesso, passiamo alle mie speculazioni/analisi, per quello che possono valere.

  • Sistemisti e programmatori spesso fanno cose che non dovrebbero fare; i motivi possono essere molteplici: incompetenza, superficialità, necessità di risparmiare tempo, errori di analisi/valutazione del rischio oggettivo e di immagine, etc. La spiegazione sopra citata potrebbe quindi anche essere plausibile. Potrebbe.
  • Facebook si è resa conto dell'importanza di controllare l'accesso ai dati, in generale, solo negli ultimissimi anni. Personalmente non mi stupirei se fino a pochi anni fa avessero utilizzato internamente tecniche di controllo degli accessi eccessivamente permissive. Inoltre, non lo giustificherei ma lo comprenderei (vedi anche l'articolo su New Yorker citato in questo mio blog post).
  • I rischi che Facebook ed ogni altra organizzazione che ha accesso ai "nostri dati" fanno correre alla nostra società ed alle democrazie sono enormemente più grandi di quelli che potrebbero essere causati da un accesso indiscriminato alle nostre password su Facebook. Rischi davvero giganteschi le cui implicazioni non sono ancora comprese pienamente da nessuno (vedi ancora il mio blog post sopra citato).
  • E' ovvio che permettere a migliaia di dipendenti di accedere alle password in chiaro di centinaia di milioni di utenti è un errore tecnico ed operativo gigantesco. Ma non bisogna stupirsi di errori del genere. Soprattutto non bisogna pensare "questa è una organizzazione grande, quindi gestisce la sicurezza informatica in maniera adeguata". L'esperienza quotidiana ha ormai dimostrato abbondantemente che non è vero. Per supportare questa affermazione potrei fare un elenco di esempi pressoché infinito. Un'occhiata al primo file di slide del corso base di sicurezza informatica che ho fatto in molti contesti può essere sufficiente per avere un'idea. Un caso recentissimo molto interessante è l'intrusione al VPN provider Citrix.
  • Non bisogna neanche pensare "nessuna organizzazione gestisce la sicurezza informatica in maniera adeguata" oppure "tutto si può bucare". Per capire la sicurezza informatica bisogna pensare in termini di incentivi. Se il costo di un attacco che ha successo è tollerabile, allora il difensore non ha incentivi a spendere in difesa.

    Ad esempio, pochissimi giorni fa un sito italiano specializzato in "indagini patrimoniali, recupero crediti e informazioni commerciali" (quindi un sito che raccoglie dati su mutui, debiti e cambiali, per intenderci) è stato bucato da LulzSec ed i suoi dati sono stati diffusi su Internet. Quasi nessun quotidiano ne ha parlato. Nessuno ne sa nulla. Quale incentivo c'è a spendere in difesa? In teoria il Garante per la protezione dei dati personali dovrebbe sanzionarli con una multa...vedremo se e quando. Soprattutto, vedremo quanto sarà questa multa. Sarà tale da incentivare quella organizzazione ed organizzazioni simili a gestire la sicurezza informatica in modo appropriato?

martedì 19 febbraio 2019

"SPID di livello 3": mi arrendo!

Da qualche tempo la nostra pubblica amministrazione sta promuovendo l'uso di "SPID", il "sistema pubblico di identità digitale": il cittadino si fa rilasciare delle credenziali da un "gestore di identità" abilitato e poi potrà accedere a tutti i servizi web della pubblica amministrazione (magari...) usando quelle credenziali. In altre parole, il cittadino avrà una unica "identità digitale" grazie alla quale potrà accedere a tutti i servizi web pubblici (ripeto: magari...).

Il terzo livello SPID è quello che dovrebbe offrire il grado di sicurezza più elevato. Ci sono solo due gestori di identità che offrono SPID di livello 3: Aruba (pare) tramite smart card e PosteID (pare) tramite una app per smartphone.

Ho cercato di capire come funziona esattamente questo livello. Il sito SPID su questo punto infatti è molto generico: "Il terzo livello, oltre al nome utente e la password, richiede un supporto fisico (es. smart card) per l’identificazione." Ho cercato di capire se il "supporto fisico" che deve essere disponibile al momento della autenticazione (quindi durante l'uso normale, non al momento della richiesta delle credenziali) può essere uno smartphone oppure deve essere un dispositivo di altra natura.

La natura del supporto fisico è molto importante. Uno smartphone può avere del malware a bordo. Un malware può intercettare SMS, può leggere schermate di altre app (quindi anche i codici generati dalle app di autenticazione), può fare praticamente di tutto. Una security key o una smart card o un OTP token (dispositivi portatili che generano codici usa e getta) non può avere malware a bordo (ok, questa è una visione molto ottimistica ma il concetto è chiaro). Anche se la sicurezza non può essere quantificata, è evidente che il livello di sicurezza offerto da uno smartphone è ben diverso da quello offerto da un dispositivo usato solo per la autenticazione a due fattori. Mi sembrerebbe molto strano se il livello di sicurezza più elevato fosse basato su smartphone.

Dopo varie interazioni con l'help desk ufficiale SPID mi sono arreso ed ammetto pubblicamente: non ho capito. Non ho capito se uno SPID di terzo livello può essere basato su smartphone oppure richiede un dispositivo specifico per l'autenticazione a due fattori.

Oltre a non avere capito, ho le idee ancora più confuse di prima:
  1. Il terzo livello SPID "non è ancora operativo". Cosa significhi esattamente "non è ancora operativo" non lo so, riporto quanto afferma l'help desk SPID.
  2. Due provider di identità, Aruba e PosteID affermano però di offrire uno SPID di livello 3 (!) Come ciò possa accadere visto che lo SPID di terzo livello "non è ancora operativo" non lo so.
  3. L'help desk SPID dice che ogni provider di identità può "prevedere procedure differenti per l'attivazione e la gestione" ma ciò non risolve il mio dubbio: se SPID dice che il terzo livello non è operativo perché Aruba e PosteID dicono di offrirlo? E perché lo offrono basandosi su tecnologie il cui livello di sicurezza è così diverso?
A me queste cose rattristano, è più forte di me...