Sicurezza e password degli utenti: anatomia di un data breach

Nel nostro intervento al Devoxx Marocco di Novembre 2018 (per consultare il documento in inglese: Secure Software Development Lifecycle Demystified), abbiamo esordito fornendo al nostro pubblico una cifra: 439 milioni di dollari.

Questa è la stima (per difetto) del costo del furto di dati che ha subito Equifax Inc., una società americana di monitoraggio del credito. Nel caso di Equifax, i dati rubati comprendevano i dati personali di circa 145 milioni di cittadini americani: tra i dati trafugati vi erano i codici personali dell’assistenza sociale (SSN), che negli Stati Uniti hanno il valore legale di una firma, essenziali per l’acquisto di beni o attivazione di prestiti.

Equifax non è un caso isolato: quotidianamente una miriade di siti web e società sono vittime di reati informatici.

La preda più ambita in questi crimini sono tipicamente i numeri di carte di credito e le credenziali degli utenti. Secondo una stima di IBM, il costo medio di ogni data breach (il furto di dati da parte di criminali informatici) è stato nel 2017 di ben 3,87 milioni di dollari: costi che tra gli altri possono includere le operazioni di correzione e messa in sicurezza, mancati introiti per indisponibilità dei sistemi, risarcimenti danni, perdite di valore sul mercato azionario, sanzioni e danni di immagine. Questi costi, anche grazie alla recente normativa GDPR, sono destinati a lievitare sensibilmente qualora non vengano prese per tempo le opportune contromisure (il GDPR prevede multe fino a 20 milioni di € o fino al 4% del fatturato annuo globale delle aziende).

Le analisi delle informazioni sottratte negli attacchi informatici sono di fondamentale importanza anche per la protezione dei sistemi: nelle attività di cyber threat intelligence, cioè nelle attività di ricerca e analisi delle informazioni, possono aiutare a comprendere ed individuare le minacce emergenti, così da attuare politiche di protezione adeguate.

Come Imola Informatica lavoriamo attivamente per garantire la sicurezza dei nostri clienti e tra le attività che effettuiamo c’è l’uso delle tecniche di OSINT alla ricerca di informazioni che consentono di identificare e prevenire nuove minacce. Tra i siti che monitoriamo c’è Pastebin, una clipboard online ampiamente utilizzata per la condivisione di informazioni su Internet.

Il risultato di un data breach

Recentemente, durante le nostre attività di verifica ci siamo imbattuti in una lista di 44858 credenziali sottratte indebitamente e riconducibili ad utenti italiani (per quanti si stiano chiedendo se il proprio account di posta elettronica possa essere compromesso: viene in aiuto il sito web Have I Been Pwned, che permette di verificare nel suo database di oltre 5 miliardi di account se un indirizzo email compare in qualche report di attacchi).

Estratto degli account compromessi

Qual è la provenienza di queste credenziali? Da un’analisi approfondita delle credenziali utente, abbiamo identificato quale probabile fonte di compromissione un sito internet per la vendita di guide e strumenti per il trading. Se la probabile causa della compromissione di queste credenziali deriva da errori di programmazione, un errore ancora più grave è nella “progettazione” del sito stesso, in quanto memorizzava in chiaro le credenziali dell’utente.

Occorre oltretutto considerare che l’utilizzo della stessa password per diversi accessi è una pratica molto comune tra gli utenti, quindi è molto probabile che tra le credenziali compromesse ve ne siano alcune utilizzate per l’accesso a social, email o sistemi di pagamento diversi dal sito compromesso.

Le password più usate

Approfittando delle informazioni disponibili, abbiamo provato a fare una rapida analisi delle credenziali in uso, per dare un’idea di quali siano le abitudini degli utenti e gli errori commessi nella scelta delle credenziali (partendo dal presupposto che il primo errore è il ri-uso delle stesse credenziali su siti diversi).

La classifica delle prime 10 password utilizzate è la seguente:

787 prova
92 123456
38 andrea
26 12345678
24 12345
23 <password rimossa>
23 giuseppe
22 stefano
20 roberto
19 satellite

La password più diffusa è la parola “prova” (787 utenti), da cui potremmo forse ipotizzare che molti utenti si siano registrati solo per fare una prova sul sito, magari per valutare l’eventuale acquisto di qualche prodotto.

La password “123456”, che secondo la società di sicurezza informatica SplashData Inc. è stata la peggior password utilizzata nel 2018, risulta essere la seconda password più utilizzata (92 utenti).

Più curiosa è la terza posizione: se andiamo a vedere nelle classifiche dei nomi più diffusi in Italia il nome proprio “andrea” risulta essere nella 36° posizione, nella nostra classifica guadagna la 3° posizione (38 utenti), scavalcando quindi i più diffusi “giuseppe” (23 utenti), che guadagna la settima posizione, e “maria” (solo 3 utenti). Questo potrebbe essere indicativo dell’età degli utenti: tra un pubblico giovane, il nome Giuseppe risulta essere poco comune, un dato confermato dalle statistiche ISTAT degli ultimi 20 anni: il nome Andrea risulta essere particolarmente popolare come nome maschile, comparendo tra i primi 10 nomi più diffusi per le statistiche che vanno dal 1999 al 2017, a scapito di Giusepppe, il cui uso negli anni è andato scemando.

L’uso di nomi propri di persona risulta essere un’abitudine piuttosto comune fra gli utenti: 5224 delle password contengono un nome proprio di persona, oltretutto espresso in chiaro senza, ad esempio, alcuna sostituzione di lettere con numeri.

I romantici che hanno usato la parola “amore” dentro la propria password sono 37; 26 utenti hanno pensato alla propria mamma, mentre 66 hanno utilizzato password con riferimenti sessuali più o meno licenziosi. Altri 163 hanno utilizzato il nome della propria squadra di calcio del cuore e 20 il cognome di un calciatore: Del Piero il più amato (5 utenti).

Tra le abitudini più comuni (osservata già in passato su altri data breach analizzati), c’è l’uso del nome del sito come password di accesso: abbiamo contato 23 utenti, a cui si aggiungono altri 10 utenti le cui password sono composizioni basate sul nome del sito. A questi si vanno ad aggiungere 8 utenti la cui password è “trading”.

Un po’ di numeri

Qualche altro numero sulla scarsa robustezza delle password usate: 11034 password risultano essere contenute in una wordlist ampiamente utilizzata per il cracking delle password. Questa apparente semplice mancanza di fantasia è in realtà molto pericolosa: quando un attaccante prova ad “indovinare” la password utente, prima di provare ogni singola combinazione di caratteri possibile (un’operazione denominata tecnicamente brute force, computazionalmente molto costosa) prova ad utilizzare delle liste pre-compilate di possibili password, operazione tecnicamente nota come dictionary attack. Sono liste (“dizionari”) oltretutto facilmente reperibili e costantemente aggiornate su Internet: queste liste iniziano ad essere utilizzate anche in attacchi di phishing, dove dei truffatori provano a convincere gli utenti di avere il controllo del PC e usano delle credenziali comuni come prova della compromissione.

Esempio di una mail di Phishing

Nella nostra analisi la password più corta è risultata essere di soli 2 caratteri (ben 16 password differenti!), mentre la più lunga di 28 caratteri (abbastanza significativo che la password sia “eeeeeeeeeeeeeeeeeeeeeeeeeee”). La lunghezza media delle password è di 8 caratteri. Ben 2665 sono password solo numeriche: di queste 1068 sono riconducibili a delle date. L’uso di una data in combinazione con altri caratteri è una scelta effettuata da altri 95 utenti. Altri 62 usano invece un numero di cellulare come password. Particolarmente pigri sono 5 utenti, che usano come password l’indirizzo email di registrazione.

Andando più nel dettaglio e analizzando le credenziali con un apposito tool, risulta che le password identificate come troppo deboli sono 7207.

Cause di debolezza delle password nella nostra analisi:

➞ basate su parole contenute nei dizionari (3849 password interessate)
➞ non hanno un numero sufficiente di caratteri differenti (1541)
➞ troppo corte (1070)
➞ basate su parole contenute nei dizionari banalmente scritte al contrario (484)
➞ seguono uno schema preciso nei caratteri (263)

A ben guardare sembrerebbe che la maggior parte degli utenti utilizzino password comunque robuste ma analizzando la lista delle password risulta comunque sorprendente che la maggior parte delle password siano sequenze alfanumeriche casuali di 8 caratteri.
Nel caso specifico del sito compromesso, risulta che la prima password di accesso sia auto-generata dal sistema e ne consegue che, probabilmente, la stragrande maggioranza degli utenti registrati non ha mai aggiornato le credenziali di accesso rilasciate.

Password e politiche di sicurezza

Nel data breach analizzato, una riflessione particolare merita il sito “vittima”: la scarsa protezione dei dati degli utenti deriva da una progettazione profondamente errata del sistema.
Oltre alle vulnerabilità presenti sul sistema, che hanno comportato la fuga di dati, non è stata attuata alcuna politica di protezione delle informazioni: le credenziali erano memorizzate in chiaro, senza l’uso di sistemi crittografici forti a protezione.
Inoltre, il sistema era privo di politiche di robustezza delle credenziali: l’analisi effettuata e appena descritta potrebbe sembrare un esercizio fine a sé stesso, ma in realtà solo dalla corretta comprensione delle abitudini degli utenti è possibile implementare delle adeguate politiche di robustezza delle credenziali.

La recente normativa sul GDPR porrà nuove sfide nella protezione dei dati degli utenti e nella corretta progettazione e gestione dei sistemi: prossimamente pubblicheremo alcune considerazioni sulla normativa e le sue ripercussioni ed opportunità sul mondo IT.

Sceso in Romagna dal profondo nord, mi interesso di nuove tecnologie, open source e cybersecurity. Utente Debian, uso le shell *nix come massima espressione della mia innata pigrizia.