Gestione delle password: rischi, buone pratiche, criticità diffuse

Ethical hacker indovina la password del profilo Twitter di Donald Trump in soli sei tentativi

È recente (fine ottobre 2020) la notizia che un ethical hacker olandese ha violato il profilo Twitter di Donald Trump. Lo riporta la testata olandese De Volkskrant, che spiega come il notissimo @realDonaldTrump sia stato “aperto” con imbarazzante facilità da Victor Gevers.

Quello che è accaduto è sì imbarazzante, ma molto istruttivo: Gevers è riuscito a indovinare la password del profilo in soli sei tentativi. E questa password era nientemeno che “maga2020!”, ovvero “Make America Great Again 2020”, slogan della campagna elettorale di Trump.

Sembra incredibile che un profilo Twitter con 87 milioni di follower avesse una password estremamente debole e facile da indovinare e – addirittura – secondo il ricercatore olandese, non era attivata neppure l’autenticazione a due fattori, che Twitter permette e anzi consiglia.

L’utilizzo di password banali e insicure è un fatto molto frequente, che riguarda persone a tutti i livelli.
Volete una prova? Ogni anno la società SplashData pubblica la classifica delle password più usate al mondo. Qui possiamo vedere la classifica 2019, alla quale non serve aggiungere commenti:

  1. 123456 (al primo posto dal 2013)
  2. 123456789
  3. qwerty
  4. password
  5. 1234567
  6. 12345678
  7. 12345
  8. iloveyou
  9. 111111
  10. 123123
  11. abc123
  12. qwerty123
  13. 1q2w3e4r (new)
  14. admin
  15. qwertyuiop (new)
  16. 654321
  17. 555555 (new)
  18. lovely (new)
  19. 7777777 (new)
  20. welcome
  21. 888888 (new)
  22. princess
  23. dragon (new)
  24. password1 (=)
  25. 123qwe (new)
  26. 666666
  27. 1qaz2wsx (new)

Questo evidenzia un problema che – prima ancora che tecnico – è culturale: secondo il VDBIR (Verizon Data Breach Investigations Report) l’81% delle violazioni degli account è realizzato grazie a password rubate o a password deboli.

Ma questo concetto sembra essere trascurato dalla maggioranza degli utenti del web che, per pigrizia e mancanza di consapevolezza, dimentica come le password siano le chiavi che proteggono i loro dati e commettono gravi errori nel loro utilizzo.

Come ci rubano le Password?

Le modalità usate per rubarci le password sono molteplici, ma nella maggior parte dei casi fanno leva sull’errore umano. Vediamo quindi quali sono gli errori più frequenti che gli utenti commettono.

Ingegneria sociale (social engineering): con email o messaggi di phishing si convince l’utente a comunicare la propria password. In pratica siamo noi che ci lasciamo ingannare dalle tecniche di social engineering e diamo le password a chi ce le chiede, attraverso per esempio messaggi, e-mail, siti fake (falsi) che dissimulano un sito a noi noto.

La password viene indovinata: molto spesso utilizziamo informazioni personali quali nomi, date di nascita o altri riferimenti che chi ci conosce potrebbe facilmente indovinare. A maggior ragione se la vittima è un personaggio noto, come è accaduto nel caso di Trump.

Password reuse: si sfrutta la pessima (ma molto diffusa!) abitudine degli utenti di riutilizzare la stessa password su servizi diversi. Questo errore rende possibile la tecnica nota come “Credential Stuffing” (riempimento delle credenziali): consiste nell’iniezione automatica di username/password già precedentemente compromesse. Si tratta in pratica di una modalità di attacco che sfrutta l’enorme quantità di data breaches che si sono verificati negli anni e che hanno generato molti database di credenziali rubate, facilmente reperibili nel dark web.

Questa miniera di informazioni viene quindi utilizzata dai cybercriminali per attaccare altri servizi web dove gli utenti hanno riutilizzato le stesse password.

Essendo il riuso delle password una pratica molto diffusa, il Credential Stuffing ha un elevato grado di efficacia. E inoltre rappresenta un tipo di attacco cosiddetto “a bassa intensità”, che non fa rumore, cioè non genera allarme nel sistema attaccato (perché non ripetitivo, come sarebbe invece un classico attaccobrute force”).

Per scongiurarlo, basterebbe avere una password univoca per ogni account. Ma quanti lo fanno?

Laddove le tecniche sopra citate non sono applicabili, si ricorre all’attacco “brute force” (a forza bruta): quando l’attaccante non riesce a rubare la password grazie all’errore umano, può ricorrere a tecniche più sofisticate, come il “password cracking”. Questo consiste nel provare in modo automatico le possibili password finché non si individua quella giusta. Esistono software appositi per fare questo, facilmente reperibili sul web. I più noti sono “John the Ripper” e “Hashcat”.

Si tratta di una tecnica onerosa, che richiede tempo e potenza di calcolo, ma che può raggiungere il risultato. Anzi possiamo dire che l’attacco a forza bruta è – in teoria – a successo garantito: è solo una questione di tempo. Ma poiché il tempo non è – nella pratica – un aspetto trascurabile (a nessuno interessa impiegare anni o secoli per violare un sistema), le variabili che influiscono sul tempo necessario perché l’attacco abbia successo sono:

  • la lunghezza della password;
  • la complessità delle password e i tipi di caratteri utilizzati.

Per rendere inefficace questo tipo di attacco, dobbiamo impostare password lunghe e complesse. Lo possiamo comprendere in questo semplice esempio, ipotizzando che l’attaccante abbia un computer in grado di provare un miliardo di password al secondo: una password di 8 caratteri composta di soli numeri avrà un numero di combinazioni pari a 108 = 100.000.000 e verrà scoperta in meno di un secondo!

Viceversa, se la password è lunga 12 caratteri e utilizza tutti i tipi di caratteri disponibili sulla tastiera (numeri, lettere e anche caratteri speciali) avrà un numero di combinazioni pari a 9512 = 5,4×1023 e richiederà milioni di anni per essere trovata.

Quindi è la complessità della password a rendere impraticabile l’attacco brute force.

Altre tecniche di password cracking

L’attacco brute force può risultare molto lungo e, quindi, inefficace.

Per questo gli attaccanti hanno affinato tecniche di password cracking più efficienti, in grado di restringere il campo di ricerca e velocizzare i tempi.

Come sempre si sfruttano le cattive abitudini degli utenti, che gli attaccanti conoscono.
Abbiamo quindi:

  • Attacco “a dizionario”: poiché le persone usano per le loro password parole di senso compiuto, gli attaccanti proveranno prima le parole presente sui dizionari (saranno gli stessi software di cracking a scaricare i dizionari delle lingue che si ritengono più utili). In rete è disponibile anche l’intera Wikipedia (nopic, cioè solo i testi senza le immagini) in molte lingue. Tutto reperibile gratuitamente a questo link: https://wiki.kiwix.org/wiki/.
  • Attacco con “regole (rules)”: si sfrutta la nota abitudine degli utenti di applicare le cosiddette “modificazioni ovvie delle password”. In pratica, nell’illusione di rendere la password più forte, si sostituisce, per esempio, la lettera “a” con “@“, “e” con “&”, ecc. Peccato che questi trucchi siano noti anche agli attaccanti…
  • Attacco con Pattern (mask)”: è noto che le persone nell’impostazione di una password tendono a inserire la maiuscola all’inizio, mentre numeri e caratteri speciali vengono posti in fondo. Anche questo non è un segreto per gli attaccanti e gli stessi software di password cracking ne tengono conto per riuscire a ridurre il numero di tentativi.

Le regole per creare una Password sicura

Esaminate le tecniche di attacco alle password, possiamo ora comprendere quali sono le regole da seguire per avere password sicure e difficili da scoprire. Sono regole semplici, dettate dal buon senso, ma che quasi nessun utente mette in pratica, come anch’io ho modo di constatare nella mia attività di formatore.

Ecco come deve essere una password sicura:

Sempre diversa: Non utilizzare la stessa password in account diversi (“non puoi evitare che il tuo provider venga violato, ma puoi evitare che tutti i tuoi account vengano hackerati in un colpo solo a causa dell’utilizzo della stessa password”). Ricordiamo il citato caso di LinkedIn.

Lunga: almeno dodici caratteri, ma anche di più. Non serve andare oltre i venti caratteri. Vedremo poi come fare a memorizzarla senza fatica.

Mista: utilizzare tutti i tipi di caratteri disponibili sulla tastiera: lettere maiuscole e minuscole, numeri e caratteri speciali. Questo aumenta in misura esponenziale il numero delle possibili combinazioni.

Senza senso: evitare informazioni personali, nomi, parole o parti di parole che possono essere ritrovati automaticamente in un dizionario in qualsiasi lingua.

Da evitare: sequenze o caratteri ripetuti. Esempi: 12345678, 222222, abcdefg, o lettere adiacenti sulla tastiera (per esempio: qwerty).

Assolutamente sconsigliate anche le cosiddette “modificazioni ovvie alla password”: sostituire “a” con “@”, “e” con “&” o “3”, “s” con “$”, ecc. Sono trucchi banali, ben conosciuti dagli hacker che sanno come le persone tendano a riutilizzare le stesse password, modificandole semplicemente di qualche carattere, nell’illusione di renderle più forti. È noto – per esempio – che la parola “password” viene abitualmente modificata in: P@ssword, PASSWORD, passw0rd, P@$$w0rd, ecc.

Le regole che ho qui esposto si possono sintetizzare con una frase che ben rappresenta il concetto di “password sicura”:

“The only secure password is the one you cant remember”
(“L’unica password sicura è quella che non puoi ricordare”)

L’affermazione è del famoso esperto australiano Troy Hunt: può sembrare un ossimoro, in realtà è assolutamente vera!

Serve ancora cambiare periodicamente le Password?

Perché siamo obbligati a cambiare periodicamente le nostre password?

Questa regola, che gli utenti “subiscono” da anni e che viene imposta dalle policy aziendali e su molti siti nei quali ci registriamo, è stata messa in discussione dal NIST.

Il NIST (National Institute of Standards and Technology) è un’agenzia del governo degli Stati Uniti d’America, nata nel 1901, che si occupa della gestione delle tecnologie. Fa parte del DoC, Department of Commerce (Ministero del Commercio).

Gli standard definiti dal NIST sono considerati un punto di riferimento, non solo a livello USA ma in tutto il mondo, per la grande autorevolezza di questo istituto.

Il NIST ha rilasciato nel 2017 l’aggiornamento delle sue linee sull’uso delle password e sugli strumenti di autenticazione.

Il documento è il NIST SP 800-63 ed è costituita da 4 documenti: 800-63-3, 800-63A, 800-63B e 800-63C, tutti disponibili (gratuitamente) sul sito del NIST stesso.

Gli aggiornamenti più interessanti si trovano nel documento SP 800-63B-Digital Identity Guidelines: Authentication and Lifecycle Management: nel cap.5.1.1.2, “Memorized Secret Verifiers”, alla pagina 14, leggiamo che “Verifiers SHOULD NOT require memorized secrets to be changed arbitrarily (e.g., periodically). However, verifiers SHALL force a change if there is evidence of compromise of the authenticator”.

Quindi, obbligare arbitrariamente le persone a cambiare periodicamente le password (definite “memorized secrets”) non è più considerata una pratica utile, anzi può portare l’utente ad utilizzare password banali per riuscire a ricordarle più facilmente (ogni volta che si è obbligati a cambiarle).

In altre parole, le politiche di scadenza delle password fanno più male che bene, perché inducono gli utenti ad impostare password molto prevedibili e strettamente correlate tra loro: quindi la password successiva può essere dedotta sulla base della password precedente.

Il NIST aggiunge, tuttavia, che la password andrebbe comunque cambiata se c’è il sospetto o l’evidenza di una sua compromissione.

Trovo che questa indicazione sia positiva e utile, anche se risulta ancora scarsamente recepita da aziende e anche dalle pubbliche amministrazioni: si obbliga l’utente al cambio periodico della password, ma poi gli si impedisce di impostare una password adeguatamente lunga e/o dotata di caratteri speciali!

Viceversa, è stata già adottata dal National Cyber Security Centre (NCSC) della Gran Bretagna – che ha aggiornato in tal senso la propria guida: “Password Guidance: Simplifying Your Approach” – e da Microsoft nella sua “Microsoft Password Guidance”.

Come riuscire a ricordare le tante password che abbiamo

Oggi, secondo le statistiche, ciascuna persona deve gestire mediamente un centinaio di password.
E queste nostre password devono essere sempre diverse, lunghe, complesse e impossibili da ricordare.

Sembra un problema senza soluzione, ma – al contrario – oggi ci vengono in aiuto i Password Manager, applicazioni dedicate a conservare tutte le nostre password in modo sicuro e – ovviamente – crittografato.

Rappresentano il miglior compromesso tra sicurezza e praticità, a condizione di usarli nel modo giusto. Sono infatti protetti da una Master Password, che serve per aprirli e diventa perciò l’UNICA password che occorre ricordare. Questa Master Password deve essere adeguatamente complessa e ben protetta perché, se viene rubata, le nostre password saranno compromesse tutte in un colpo solo!

Il tema sarà oggetto di autonomo approfondimento in un prossimo articolo.

 

Articolo a cura di Giorgio Sbaraglia

Profilo Autore

Giorgio Sbaraglia, ingegnere, è Information & Cyber Security Advisor e svolge attività di consulenza e formazione per la sicurezza informatica, Risk Management e per il GDPR.

Condividi sui Social Network:

Articoli simili