L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi

Pagina creata da Benedetta Nanni
 
CONTINUA A LEGGERE
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
L’uso delle password nei sistemi di
  autenticazione: problemi e soluzioni

                    A.A 2017/2018

Di: Davide Deidda                   Relatore: Giorgio Giacinto
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
Indice
 1 - La Password……………………………………………………………………………………………………………………………4

   1.1 - La necessità di sicurezza…………………………………………………………………………………………………5

      1.1.1 - Le vulnerabilità delle password…………………………….……………………………………………….5

    1.2 – Cenni di storia……………………………………………………………………………………………………………….6

   1.3 - Il NIST………………………………………………………….…………………………………………………………………6

      1.3.1 - Le linee guida per una password sicura…………………………………………………………………7

   1.4 - Altri metodi di autenticazione………………………………………………………….…………………………….7

      1.4.1 - I sistemi di riconoscimento biometrico…………………………………………………………………..8

      1.4.2 - Le OTP………………………………………………………….……………………………………………………….8

      1.4.3 - Le password visive………………………………………………………….……………………………………..9

   1.5 - Analisi sulla lunghezza e sui caratteri speciali……………………………………………………………….11

   1.6 - I requisiti dei siti web………………………………………………………….…………………………………………13

 2 - Le tipologie di attacco………………………………………………………….………………………………………………..15

   2.1 - Il social engineering………………………………………………………….………………………………………….15

      2.1.1 - Consigli per difendersi dal social engineering………………………………………………………16

   2.2 - Il phishing………………………………………………………….…………………………………………………………17

   2.3 - Gli attacchi a forza bruta e attacchi a dizionario……………………………………………………………19

    2.4 - Il password spraying………………………………………………………….………………………………………..20

      2.4.1 - Come si esegue un attacco password spray…………………………………………………………20

      2.4.2 - Gli indicatori di un attacco password spray…………………………………………………………21

                                       2
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
3- La scelta delle password negli attacchi password spray…………………………………………………………22

       3.1 - Utilizzo di dizionari esistenti………………………………………………………….………………………….22

      3.2 - Creazione di password plausibili per un attacco…………………………………………………………23

           3.2.1 - Esempi di dizionari con Crunch………………………………………………………………………24

       3.3 - Utilizzo della forza bruta………………………………………………………….………………………………..27

  4- Come difendersi dagli attacchi………………………………………………………….……………………………………28

       4.1 - La lunghezza della password…………………………………………………………………………………….28

       4.2 - Evitare il riutilizzo della password………………………………………………………….…………………29

       4.3 - Evitare di utilizzare parole di un dizionario……………………………………………………………….29

       4.4 - Non utilizzare password banali………………………………………………………….……………………..30

       4.5 - Utilizzare passphrases………………………………………………………….………………………………….31

       4.6 - I password manager………………………………………………………….…………………………………….31

   5 - Le password di default………………………………………………………….……………………………………………..32

       5.1 - Analisi sulle credenziali preimpostate dei router……………………………………………………….32

         5.1.1 - La resistenza alla forza bruta……………………………………………………………………………..33

       5.2 - Una possibile soluzione………………………………………………………….………………………………….34

   6 – Le leaked passwords………………………………………………………….………………………………………………35

      6.1 - Il problema dell’unicità………………………………………………………….…………………………………..35

      6.2 - Have I Been Pwned………………………………………………………….…………………………………………36

        6.2.1 - Testing di indirizzi email e password……………………………………………………………………37

      6.3 - Decriptare le password online………………………………………………………….…………………………40

   7 - Conclusioni………………………………………………………….………………………………………………………………43

Ringraziamenti…………………………………………………………………………………………………………………………………44

Bibliografia………………………………………………………………………………………………………………………………………45

                                         3
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
1 - La password

La password è una stringa di caratteri alfanumerici utilizzata come identificazione di un utente
per ottenere accesso a delle risorse. Le password sono legate indissolubilmente
all'informatica, infatti, sono state utilizzate sin dai primi computer, più in particolare, le
password, sono strettamente legate alla presenza di account o profili, i quali sono relativi a
una persona o un gruppo di persone e contengono dati personali e personalizzazioni relative
ad un determinato sito, dispositivo o servizio (come possono essere l’utilizzo di un dispositivo
elettronico come ad esempio uno smartphone o un computer, oppure l’accesso a un sito dove
posso gestire del denaro come quello di una compagnia bancaria); questi dati o queste
personalizzazioni necessitano di non essere accessibili da chiunque abbia accesso a quel
servizio o dispositivo sia per privacy che per motivi di sicurezza e vengono quindi protetti da
password.

Tutt'oggi la password è il metodo di autenticazione online più utilizzato, difatti chiunque sia
in possesso di un account informatico, ha necessità di avere a che fare con delle password.

Il successo della coppia password / nome utente come autenticazione è dovuto alla loro
semplicità, anche per il semplice fatto che si possono conservare, dopo un’operazione di
criptazione mediante hashing, in una semplice tabella, che nel caso di siti web si può trovare
all’interno di un server remoto, mentre per autenticazione offline si trova all’interno del
dispositivo locale. Quando viene effettuato un tentativo di autenticazione viene confrontata
la password inserita dall’utente sottoposta ad hashing con quella presente nella tabella dove
vengono conservate le password e i nomi utente, se entrambi coincidono l’autenticazione ha
esito positivo e si potrà avere accesso all’area riservata.

                                                4
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
1.1 - La necessità di sicurezza

Da quando esistono le password però esiste anche il problema riguardante la loro robustezza
ad eventuali attacchi di qualsiasi natura per evitare la perdita di informazioni sensibili, il furto
di identità o la manomissione di dati personali. Uno studio rivela che le persone tendono a
creare una password più "importante" per gli account che secondo loro hanno più valore,
come ad esempio l'account per il sito della banca.

       1.1.1 - Le vulnerabilità delle password

Le password, nonostante siano ancora oggi il metodo più utilizzato di autenticazione non sono
però esenti da problemi di varia natura, che le rendono altamente vulnerabili, causando rischi
per la sicurezza. Essendo questo un problema noto, perché nel 2018 ci si trova a fronteggiare
in continuazione delle password? Il loro problema principale è che gli utenti non riescono a
ricordare con facilità stringhe di caratteri alfanumerici prive di senso, quindi sono portati a
scegliere parole e numeri o molto prevedibili o relativi alla loro vita quotidiana, spesso
addirittura scritte da qualche per evitare di essere dimenticate. A ciò va sommato il fatto che
sono individuabili da attacchi di varia natura che verranno descritti nelle pagine successive.
Nel mondo accademico c’è molta sfiducia nei confronti delle password, e da anni si ricercano
nuovi metodi di autenticazione più sicuri che le sostituiscano, anche se ancora non si è riusciti
a trovare un’alternativa valida, entriamo però nel dettaglio riguardo il mondo delle password
vedendone tutti gli aspetti e individuandone sia i problemi che le soluzioni, come ad esempio
i requisiti attuali, gli altri metodi di autenticazione, i possibili attacchi alle password e come ci
si può difendere da essi.

                                                 5
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
1.2 – Cenni di storia

Nella storia occidentale, il primo riscontro di password [1] si ha nella bibbia, più precisamente
nel libro di Giudici ed è noto come il “caso shibboleth”, durante la guerra tra Efraim e Gàlaad
quando la parola shibboleth veniva utilizzata dai gàlaaditi per individuare il nemico, sapendo
che gli efraditi la pronunciavano in maniera differente nel loro dialetto. C’è un riscontro simile
[2] anche in Sardegna, seppur più recente, nel 28 Aprile 1794 i cagliaritani utilizzarono la frase
“Nara cixiri” per individuare chi fosse sardo e chi no, favorendo così la rivolta nei confronti dei
piemontesi che si erano resi protagonisti di soprusi e ingiustizie contro i sardi. Un altro caso
di storia letteraria della password lo troviamo nell’opera Ali Baba e i quaranta ladroni,
utilizzata nella fiaba per aprire magicamente una caverna sigillata, si tratta del famoso “Apriti
sesamo!”.

La password vera e propria è stata introdotta negli anni ’60, nei sistemi Unix e nei sistemi
Time-Sharing e come ben sappiamo ci rappresenta in un sistema virtuale, senza il vincolo di
essere fisicamente presenti, ad esempio sia con il PIN all’ATM che con password per accedere
remotamente al sito della banca veniamo riconosciuti dal sistema, cambia solamente la
presenza fisica.

Le password ha le sue radici nella scrittura e nella possibilità di accedere remotamente a un
servizio senza bisogno di presenza fisica, il che però è anche la radice dei suoi problemi.

       1.3 - Il NIST

Il NIST (National Institute of Standards and Technology), è un'agenzia governativa degli USA
che tra le altre cose si occupa anche dell'assegnare dei parametri sui quali una password deve
essere ideata, direttive al quale aderiscono poi i vari i siti, l'ultimo documento in ordine
cronologico è la "NIST Special Publication 800-63", che contiene le ultime linee guida per
l'autenticazione digitale sulla rete. Lo scopo di questa guida è quello di garantire una
password sicura e quindi maggiore sicurezza a chiunque segua queste buone pratiche.

                                                6
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
1.3.1 - Le linee guida per una password sicura

Per quanto riguarda le password, il NIST propone le seguenti linee guida [3] per la creazione
di una password

♦ La lunghezza è fondamentale nel determinare la "forza" di una password, le password corte
sono troppo vulnerabili ad attacchi a forza bruta, la lunghezza minima è una chiave per la
sicurezza

♦ L'utilizzo di spazi all'interno della password per aumentarne la complessità, invece di
utilizzare password complesse che poi saranno difficili da ricordare e che quindi verranno
scritte o conservate da qualche parte, il che non farà altro che aumentare la vulnerabilità della
password

♦ L'utilizzo di una blacklist di password non consentite in modo tale che le password più
semplici non possano essere utilizzate, ad esempio se si richiede almeno una lettera
minuscola, una maiuscola ed un numero, una password semplice come "Password1" è nella
blacklist perché troppo suscettibile ad attacchi a dizionario

♦ L'accompagnamento della domanda di sicurezza (di solito scelta casualmente), che è
piuttosto vulnerabile con un pin generato casualmente di 6 o più cifre per diminuire la
probabilità di un attacco utilizzando la domanda di sicurezza al posto della password

♦ Le password devono essere conservate all'interno di file hash, in modo tale che siano sicure
grazie alla loro criptazione.

       1.4 - Altri metodi di autenticazione

Le password sono il metodo di autenticazione più utilizzato, spesso da sole, altre volte
accompagnate da altri metodi ad esempio biometrici o le OTP, la combinazione di più metodi
di autenticazione è sinonimo di una maggiore sicurezza nella protezione dei propri dati.

                                               7
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
1.4.1 - I sistemi di riconoscimento biometrico

Un sistema di riconoscimento biometrico è un sistema che ha la capacità di identificare una
persona sulla base delle sue caratteristiche biologiche come ad esempio:

♦ Le impronte digitali

♦ La retina

♦ La sagoma della mano

♦ L'elettroencefalogramma (EEG) (Ancora in fase sperimentale)

       1.4.2 - Le OTP

Le One Time Passwords (OTP), sono password ad uso singolo [4] che possono essere inviate
all’utente in maniera sicura in più modalità: via SMS che è attualmente molto diffuso, in un
piccolo dispositivo apposito per ricevere queste password, oppure in un programma dedicato
per smartphone o PC. Le password utilizzate come OTP vengono scelte in 4 modi, dove i primi
3 utilizzano un algoritmo matematico che genera un numero infinito di password pseudo
casuali, e quale password viene scelta per l’uso singolo dipende da dei contatori presenti
all’interno del server e del dispositivo:

♦ Time-Synchronized, dove il server e il dispositivo hanno un contatore che incrementa ogni
periodo arbitrario di tempo che può essere un secondo, un minuto, o un insieme di secondi.
In ogni periodo esiste una password a uso singolo, però dato che i timer del server e del
dispositivo possono non essere sincronizzati perfettamente, anche un determinato numero
di password precedenti e successive a quel periodo di tempo (dipende dal periodo di tempo
impostato) del server sono considerate corrette per l’autenticazione.

                                             8
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
♦ Lockstep-Synchronized, dove ogni volta che viene generata una password sul dispositivo
dell’utente viene aumentato il proprio contatore interno, e ogni volta che viene effettuato il
login viene aumentato il contatore del server.

♦ Challege-Response, dove l'autenticazione avviene in due passi, il primo passo è una sorta di
sfida proposta all’utente mentre il secondo passo è l’autenticazione vera e propria. La OTP
viene scelta dall’insieme di password infinite in base al risultato della sfida proposta.

♦ SMS-OTP, viene inviato un messaggio dal sistema nel momento in cui si prova ad autenticare
in un dispositivo di comunicazione, il più comune è un SMS per telefoni cellulari, contenente
la One Time Password per l’autenticazione, in questo caso la password può essere
completamente casuale e non scelta da un insieme infinito precedentemente calcolato.

       1.4.3 - Le password visive

Le password visive [5] consistono nell’utilizzo di immagini al posto di caratteri alfanumerici,
l’idea nasce dal fatto che le immagini sono più semplici da ricordare e più sicure, l’incremento
della sicurezza è dato da una difficoltà di replicare immagini maggiore rispetto a numeri e
lettere. Il fatto che siano più facili da ricordare è un dato di fatto scientifico poiché l’uomo ha
una memoria fotografica molto più ampia rispetto a quella che ha per una stringa
alfanumerica, inoltre un’immagine può essere ricordata sia grazie alla memoria visiva, sia
grazie ad una descrizione di essa. Le immagini possono essere utilizzate come password con
tre differenti sistemi:

                                                 9
L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
♦ Searchometric Systems, che richiedono agli utenti di inviduare un insieme di immagini che
hanno scelto come password scegliendole da un gruppo di immagini nelle quali sono inseriti
anche varie immagini che non hanno niente a che fare con esse.

♦ Locimetric Systems, richiedono agli utenti di ricordarsi e saper indicare determinate aree
presenti in un’immagine, a differenza dei searchometric systems, questi sistemi utilizzano
solo un’immagine per l’autenticazione che spesso può essere scelta dall’utente. Una
debolezza di questo sistema è rappresentata dal fatto che gli utenti tendono a scegliere una
determinata area piuttosto che un’altra, rendendo quindi vulnerabile questo sistema.

♦ Drawmetric Systems, richiedono all’utente di disegnare uno schizzo di un immagine scelta
al momento della registrazione. Un problema in questo caso è rappresentato dal non essere
in grado di riprodurre abbastanza accuratamente l’immagine con una tavola grafica.

Tuttavia le password visive ancora non rappresentano ancora una valida alternativa alle
password tradizionali in quanto portano con se ancora complicazioni di varia natura come
l’interazione con il sistema di autenticazione.

                                                  10
1.5 - Analisi sulla lunghezza e sui caratteri speciali

Tutte le analisi che si possono effettuare su due aspetti importanti come lunghezza e utilizzo
dei caratteri speciali nelle password derivano da pubblicazioni online [6] dei risultati di
hacking a siti web, che vedremo più approfonditamente in seguito.

Prendendo ad esempio 4 tra i casi più famosi verificatosi fino ad oggi che sono:

♦ MySpace nel 2006

♦ phpBB nel 2009

♦ RockYou nel 2009

♦ Xato nel 2015

La tabella relativa alla lunghezza delle password fa emergere un dato abbastanza importante

Si nota come andando verso destra con la tabella, ovvero come si avanza con la data di
ottenimento delle password, la lunghezza più comune passa da 8 a 9 caratteri, sebbene vada
fatta una precisazione, ovvero che al momento della pubblicazione dei set di password erano
presenti pure quelle relativi a molti anni precedenti, in sostanza però con il passare degli anni
la password media è diventata più lunga.

                                               11
Un altro dato rilevante è quello relativo ai caratteri speciali, la maggior parte degli utenti ne
inserisce solo uno come carattere finale della password, non è un caso infatti che uno dei
caratteri speciali più utilizzati sia il punto esclamativo. Anche lo spazio compare con alta
frequenza nei set di password.

Xato che dispone del set di password più recente riscontra un'elevata frequenza di caratteri
come l’underscore "_", il dash "-" e il punto ".".

Un altro dato curioso è la presenza incredibilmente alta (circa 20000 casi) di indirizzi email
utilizzati come password sul sito RockYou, in netta controtendenza con la bassa frequenza
riscontrata negli altri set di password.

                                               12
1.6 - I requisiti dei siti web

Una ricerca di Steven Furnell [7] ha studiato l’evolversi dei requisiti per quanto riguarda le
password nei siti web dal 2007 al 2018 per 10 famosi siti web.

A dover fare un confronto tra la situazione del 2007 e quella del 2018, si nota un
miglioramento, ma ancora non è sufficiente a garantire un’adeguata sicurezza, difatti i passi
avanti effettuati dai siti ci sono stati, ma non sono tuttavia ancora garanzia di sicurezza. Nel
2018 infatti 9 siti su 10 richiedono un requisito di lunghezza minima e ben 3 non accettano
semplici parole del dizionario, mentre nel 2007 quest'ultimo requisito non veniva fatto
rispettare da nessun sito.

                                              13
C’è stato un miglioramento sostanziale su ogni aspetto, ma non tutti i siti sono riusciti a fornire
un adeguato strumento di creazione password per un account, con le adeguate restrizioni,
infatti andando ad analizzare le password consentite o meno dai siti salta subito all’occhio un
particolare.

I siti web Amazon, Netflix e Reddit permettono di utilizzare tutte le password presenti in
questa tabella, compresa la parola “password” (il che nel 2018 dovrebbe essere impedito in
quanto è una password facilmente individuabile), permettono addirittura la parola “monkey”
sebbene sia una parola del dizionario inglese formata solo da 6 caratteri. Facebook e Yahoo
sono i siti più virtuosi in quanto permettono solo l’utilizzo di “Dictionary1” essendoci almeno
una maiuscola e un numero oltre alle lettere minuscole.

                                                14
2 - Le tipologie di attacco

Ci sono varie tipologie di attacchi che prescindono dalla complessità di una password, come
ad esempio il phishing ed il social engineering, altri invece possono essere combattuti
utilizzando una password più complessa, come ad esempio gli attacchi a forza bruta. Creare
una password consistente sta alla base della prevenzione da attacchi a forza bruta, sia come
singolo che come membro di un'organizzazione, in quanto l'individuazione di essa da parte di
uno strumento che prova ad effettuare l'accesso con più combinazioni possibili richiederà un
tempo molto elevato anche disponendo di grandi risorse di potenza computazionale.

       2.1 - Il social engineering

Il social engineering (in italiano ingegneria sociale) è una tipologia di attacco che invece di
basarsi sulle vulnerabilità di un software, si basa sulle vulnerabilità umane, come ad esempio
le emozioni.

Gli attacchi di social engineering avvengono attraverso un'interazione umana, online o dal
vivo, con la quale l'attaccante riesce ad arrecare danno alla vittima.

Questa tipologia di attacco richiede più che altro una discreta inventiva da parte
dell'attaccante, dato che l'esito dell'attacco dipende sia dall'abilità del bersaglio di resistere
ad un attacco di social engineering sia dall'abilità dell'attaccante di non farlo sembrare tale.

La riuscita dell'attacco in questi casi prescinde dalla complessità di una password.

Esempi più comuni di social engineering [8] sono ad esempio:

♦ Il baiting, ad esempio lasciare una pen drive usb contenente un malware in uno spazio
pubblico, essendo la curiosità una caratteristica umana, qualuno prenderà il dispositivo e lo
utilizzerà, infettando così il proprio computer. Questo processo può anche essere mirato in
maniera tale che sia una persona specifica ad essere la vittima.

♦ Il quid pro quo, l’attaccante fa credere alla vittima di partecipare ad uno scambio di
informazioni alla pari quando alla fine si tratta esclusivamente di un escamotage.

                                               15
♦ Il phishing, uno dei metodi con più percentuale di successo, descritto in seguito.

♦ Il vishing, è la versione vocale del phishing, l’attaccante proverà ad ottenere informazione
sensibili attraverso una chiamata vocale.

        2.1.1 - Consigli per difendersi dal social engineering

La Symantec [8] ha rilasciato una guida con 5 consigli per evitare di diventare vittima di un
attacco del tipo social engineering:

♦ Considerare sempre la sorgente, non importa se si tratti di una pen drive usb o di una mail,
è sempre fondamentale accertarsi che la sorgente del dispositivo o del messaggio sia
attendibile e affidabile.

♦ Agire con calma e senza fretta, dato che gli attaccanti che usano metodi di social engineering
spesso fanno leva sulla rapidità per evitare che la vittima riesca a farsi delle domande su
quanto le stia accadendo.

♦ Se sembra troppo strano per essere vero, forse è meglio disinteressarsi della questione, o
perlomeno è necessario sempre informarsi sulle persone e sulle ragioni che di determinate
richieste, dal vivo o via mail.

♦ Installare un software antivirus.

♦ Utilizzare un software per le email che sia in grado di filtrare efficacemente le mail di spam.

                                               16
2.2 - Il phishing

Il phishing è una pratica di social engineering con lo scopo di sottrarre informazioni sensibili
all'utente, come ad esempio password o dati bancari.

La vittima viene indirizzata verso un sito web fraudolento, oppure riceverà una mail che
sembra proveniente da una fonte attendibile, i quali richiederanno appunto dati personali in
modo tale che se la vittima li inserisce, questi possano essere utilizzati a loro piacimento dagli
autori della truffa.

Gli autori di questo tipo di attacco si accertano che l'utente non sia in grado di rendersi conto
che sia vittima di una truffa, difatti secondo uno studio [9], il 90% degli utenti non si rende
conto di essere vittima di una truffa se il sito di phishing è progettato opportunamente.

La polizia di stato italiana ha sviluppato una guida per contrastare il phishing [10],
riconoscendolo come una minaccia e definendolo un fenomeno in sostanziale aumento, la
guida ha lo scopo di mettere in guardia dalle mail di phishing provenienti da presunti istituti
bancari che richiedono dati personali via mail oppure da inserire in un sito presente nel testo
del messaggio. L'attendibilità di queste mail è data da un'opportuna progettazione grafica del
logo della banca e dal fatto che il linguaggio utilizzato è simile a quello che tipicamente viene
utilizzato effettivamente nelle comunicazioni da parte di un istituto bancario.

                                               17
Ecco un esempio di mail di phishing, le frecce e le inquadrature rosse rappresentano dei
segnali che possono aiutarci a capire che si tratta di una mail che non proviene della banca:

♦ L'indirizzo del mittente è sospettoso in quanto non coerente con un indirizzo che
tipicamente viene utilizzato dalle banche per le comunicazioni via mail (il dominio è fuori
luogo).

♦ La mail è rivolta a degli "Undisclosed repicipients:;" ovvero dei destinatari non rivelati, anche
la punteggiatura è un indizio della maliziosità della mail.

♦ Il corpo del messaggio inizia con "Dear member", ovvero "Caro utente", il che la rende una
mail molto generica che può facilmente essere inoltrata a più persone, quando di solito per
le comunicazioni le banche inseriscono nome, cognome e spesso altri dati relativi all'utente.

♦ La richiesta di effettuare l'accesso al proprio account è scritta in maniera molto sospettosa.

♦ Il collegamento al sito "https://bankofamerica.com" in realtà indirizza all'URL "http://bit...."
visibile passandoci sopra il mouse.

                                                18
2.3 - Gli attacchi a forza bruta e attacchi a dizionario

Gli attacchi a forza bruta o force brute attacks, sono il metodo utilizzato da un attaccante per
individuare una password di accesso ad un sistema provando tutte le possibili combinazioni
di caratteri ammesse e tutte le lunghezze di stringa ammesse dal particolare sistema. Questo
tipo di attacco richiede un numero elevatissimo di tentativi e un tempo tanto maggiore [11]
quanto più è lunga la password utilizzata. La scelta delle password per l'attacco può avvenire
attraverso l'utilizzo di parole di un dizionario, anche modificate in maniera semplice
attraverso l'inserimento di numeri o simboli per cui dalla parola "Ingegneria" due possibili
tentativi di password in un attacco potrebbero essere "!ng3gner!a" oppure "1ng&gn&r1a"
oppure semplicemente utilizzando una lista delle password comunemente più utilizzate nella
previsione che anche l'account obiettivo ne abbia scelta una di quelle.

Degli strumenti che aiutano a proteggerci dagli attacchi a forza bruta sono ad esempio:

♦ Il CAPTCHA (Completely Automated Public Touring test to tear Computers and Humans
Apart)

♦ L'aggiunta di un tempo di ritardo tra tentativi non corretti

♦ L'autenticazione a più fattori

I software più utilizzati per eseguire attacchi di questo genere sono John The Ripper ed
Hashcat.

                                               19
2.4 - Il password spraying

Il password spraying è un tipo di attacco a forza bruta noto anche come attacco a forza bruta
inversa [12], poiché invece di provare tutte le possibili combinazioni di una password su un
unico username il suo scopo è provare più password su più account diversi, ovviamente la
stessa password viene provata su tutti gli account prima di provarne un'altra. Il tutto viene
diluito nel tempo in modo che l'autenticazione all'account non venga bloccata in seguito ad
un numero eccessivo di tentativi in una quantità limitata di tempo.

Questa tipologia di attacco è molto più attuale di quanto si pensi, infatti, il 27 Marzo 2018
l'US-Cert ha pubblicato un articolo di allerta [13] riguardo l'attacco password spray e le
metodologie per difendersi, visto il recente utilizzo e vista l'individuazione di nove iraniani
accusati di reato di intrusione informatica all'interno di organizzazioni americane con un
attacco password spray.

       2.4.1 - Come si esegue un attacco password spray

Lo stesso documento (27 Marzo 2018 dell'US-Cert) [13] ha sia spiegato le tattiche, le tecniche
e le procedure di come tipicamente si utilizzano gli attacchi password spray per entrare in
modo malizioso all'interno di un'organizzazione, ha esposto anche gli indicatori per accorgersi
che si è soggetti ad un attacco.

Un attacco ai danni di un'organizzazione che utilizza il password spray tipicamente si svolge
nella seguente modalità

♦ Utilizzare tattiche di social engineering per identificare l'organizzazione bersaglio e account
specifici con i quali iniziare gli attacchi password spray

♦ Utilizzare le cosiddette password semplici come ad esempio "Password123" o "Estate2018"
per eseguire un attacco con un software che esegue tentativi di autenticazione in
un'applicazione web o sul portale aziendale

                                                20
♦ Facendo leva sui primi account compromessi, scaricare da uno di essi la Global Address List
(lista degli indirizzi globali dell'organizzazione) da un server e-mail per poter eseguire un
attacco spray contro più account

♦ Utilizzando gli account compromessi, provare a espandersi sulla rete e rubare consistenti
quantità di dati utilizzando strumenti che utilizzano il File Transfer Protocol come FileZilla

       2.4.2 - Gli indicatori di un attacco password spray

Gli indicatori che aiutano ad accorgersi che si è vittima di un attacco password spray sono:

♦ Un picco di tentativi di accesso sull'applicazione web o sul portale aziendale provenienti da
un singolo indirizzo IP che esegue migliaia di diversi tentativi in rapida successione su più
account, il tutto eseguito per più di due ore.

♦ L'accesso di impiegati da un indirizzo IP che corrisponde a una locazione differente da quella
dal quale accedono solitamente.

                                                 21
3 - La scelta delle password negli attacchi password spray

Una questione non banale riguarda la scelta delle password che gli attaccanti utilizzano
durante un attacco password spray, infatti un attacco impiega tanto più tempo quante più
combinazioni di password vengono provate. Un attaccante dispone di più soluzioni quando
decide di effettuare un attacco spray, può affidarsi sia ai dizionari preesistenti che utilizzare
degli strumenti che generano delle password plausibili e crearsi un proprio dizionario oppure
può semplicemente effettuare un attacco a forza bruta provando più combinazioni possibili
di caratteri e lunghezze di stringa.

       3.1 - Utilizzo di dizionari esistenti

I dizionari sono file contenenti un insieme di parole o stringhe, divise da un carattere
separatore, che sono tra loro in relazione, e vengono utilizzati da software di password
cracking per eseguire un attacco. I dizionari possono essere formati da parole del un dizionario
di una lingua (da qui il motivo del nome con cui vengono chiamati), oppure possono contenere
informazioni riguardo la vittima dell'attacco ad esempio raccolte su un suo profilo in un social
media, oppure ancora possono contenere delle password candidate create dall'attaccante
mediante l'utilizzo di particolari algoritmi.

I software di password cracking semplici si limitano ad eseguire i tentativi di accesso
unicamente con le parole presenti all'interno del dizionario, quelli più complessi da ogni
parola eseguono più tentativi, ad esempio sostituendo le "e" con i "3", le "s con "$", oppure
mettendo la prima lettera maiuscola o ancora aggiungendo due numeri nel finale.

Questa modalità è particolarmente efficace in quanto molto spesso gli utenti si ritrovano a
scegliere parole del dizionario per la propria password, oppure al massimo leggermente
modificate.

                                                22
Una soluzione per la sicurezza è rappresentata dal l'evitare di essere vulnerabili a questo tipo
di attacco, semplicemente non utilizzando parole che potrebbero essere all'interno di un
dizionario di un attaccante (ad esempio parole volutamente sbagliate o inventate). Spesso
utilizzare due o più parole è un'ottima difesa contro gli attacchi a dizionario.

Le soluzioni più adottate dai sistemi web e offline per arginare questa tipologia di attacco
sono il limitare il numero di tentativi per minuto oppure direttamente bloccare il tentativo di
accesso dopo una certa quantità di login falliti.

       3.2 - Creazione di password plausibili per un attacco

Kali linux è un software per l'informatica forense e la sicurezza informatica, che offre dei tools
per la sicurezza, uno dei quali è Crunch [14], che permette di creare un dizionario
personalizzato seguendo i criteri che gli vengono passati come ingresso da utilizzare in
software di password cracking come ad esempio John The Ripper. Il dizionario, se inseriti gli
opportuni dati in input al tool può far risparmiare ore o addirittura giorni per scovare una
password. Ecco un esempio di schermata:

                                               23
La sintassi di Crunch è molto semplice, bisogna passargli in ingresso la parola crunch e la
lunghezza minima e massima delle password che si desidera includere nel dizionario, seguita
da dei codici chiave opzionali che sono:

♦ L'insieme di caratteri da utilizzare (si troveranno all'interno di un file), quello di default sono
i caratteri alfabetici unicamente minuscoli

♦ Se inserire all'interno del file tutte le permutazioni delle password trovate

♦ Un pattern che inserisce la data di nascita al termine delle password ottenute nel dizionario
oppure qualsiasi altro dato che si ritiene importante (ad esempio se la data di nascita è il 16
agosto si aggiunge 0816)

♦ Il file su cui salvare il dizionario ottenuto come risultato

       3.2.1 - Esempi di dizionari con Crunch

Se volessimo utilizzare il tool Crunch per creare tutte le possibili combinazioni di password di
lunghezza compresa tra 4 ed 8 caratteri, aventi solo caratteri alfabetici minuscoli, il comando
e la schermata risultante con le dimensioni del dizionario e il numero di righe generate
sarebbe:

                                                 24
Questo dizionario occupa una grande quantità di memoria, ma è un po' fuorviante dallo scopo
di Crunch poiché è stato creato appunto per semplificare situazioni di questo genere, vediamo
qualche altro esempio:

In questo caso si crea un dizionario che verrà salvato nel file "numericwordlist.lst" contente
tutte le combinazioni possibili di numeri con lunghezza compresa tra 6 ed 8 caratteri, una
notevole semplificazione se si è a conoscenza che la password ha quella determinata
lunghezza ed è formata da sole cifre. Si nota inoltre che le dimensioni del dizionario son
contenute, infatti è addirittura minore di un GB, un perfetto esempio di come questo tool
aiuti a creare dei dizionari molto più efficaci in termini di tempo rispetto alla forza bruta se si
hanno a disposizione delle informazioni.

                                                25
Ecco un esempio ancora più specifico, in questo caso si vuole creare un dizionario con
password di 10 caratteri, dove gli ultimi 4 caratteri sono sempre "0728", il che è molto utile
in caso il bersaglio dell'attacco sia nato il 28 Luglio, oppure se la stessa data rappresenta per
lui una data importante (anniversario, nascita del figlio). Le @ rappresentano i caratteri con i
quali devono essere provate tutte le combinazioni possibili, 0728 deve sempre stare fisso in
quella posizione. Si noti che le dimensioni del file "birthdaywordlist.lst" saranno piuttosto
contenute pur contenendo password da 10 caratteri.

Questa schermata è un esempio di creazione di dizionario di password di 8 caratteri, provando
tutte le combinazioni possibili di caratteri alfabetici maiuscoli e minuscoli come indicato dal
file "mixalpha". Il risultato è una quantità sproporzionata di possibili password, molto utile
però se si hanno a disposizione informazioni come la lunghezza esatta della password e il fatto
che non siano presenti numeri o caratteri speciali, anche se sarebbe sempre meglio tendere
a ridurre le dimensioni del dizionario sfruttando a pieno le potenzialità di Crunch.

                                               26
3.3 - Utilizzo della forza bruta

Effettuare un attacco a forza bruta significa che c'è sicurezza matematica che la password
venga scoperta, unico inconveniente del quale non si può non tenere conto è il tempo. La
quantità di combinazioni possibili è un numero elevatissimo, e il tempo per provare tutte le
combinazioni è proporzionale alla lunghezza della password, più essa è lunga, più un attacco
a forza bruta impiegherà del tempo per scovarla. Nel peggiore dei casi, una password da 8
caratteri, comprendendo alfanumerici e simboli può impiegare fino a 83 giorni prima di essere
scoperta, tempo che va a crescere esponenzialmente con l'aumentare dei caratteri utilizzati.

                                             27
4- Come difendersi dagli attacchi

Abbiamo quindi visto che tra le varie tipologie di attacco, quelle dalla quale possiamo
difenderci semplicemente creando una password robusta sono gli attacchi a forza bruta,
vediamo dunque qualche consiglio per creare una password tale che ci sia molta meno
probabilità che un attacco nei nostri confronti abbia successo.

Il criterio utilizzato per la valutazione di una password è confrontarla rispetto alle linee guida
del NIST, piuttosto dell'antica valutazione con la metrica entropica.

Ovviamente il creare una password più robusta comporta anche delle controindicazioni molto
spesso, il tutto comporta anche un costo dal punto di vista mnemonico.

        4.1 - La lunghezza della password

Un fattore fondamentale che concorre alla robustezza di una password è la sua lunghezza,
sebbene infatti fino a non molto tempo fa la lunghezza minima di una password nella maggior
parte dei casi fosse 6 caratteri, oggigiorno il minimo è stato alzato a 8 caratteri. Insomma
maggiore è il numero di caratteri della password, più è probabile che questa sia al sicuro da
possibili attacchi.

Questo accorgimento non crea dei disagi all'utente, in quanto semplicemente si può
riutilizzare la stessa password utilizzata in precedenza alla quale si aggiungono semplicemente
almeno 2 caratteri, e questa semplice aggiunta rende molto più sicura la password.

                                               28
4.2 - Evitare il riutilizzo della password

Evitare il riutilizzo della stessa password su più account è una buona norma di sicurezza,
poiché evita la situazione nella quale la scoperta di una password possa influenzare molteplici
account.

Uno studio del 2017 delle università di Saarland, Hannover ed Helmots [15] ha rivelato che il
43% delle persone riutilizza la stessa password su più account e che buona parte di quelli che
non lo fanno la modificano solamente in piccola parte.

In questa percentuale c'è sicuramente chi non è a conoscenza del rischio, e chi invece lo è.
Chi è a conoscenza del rischio cui va incontro semplicemente decide di accettarlo piuttosto
che crearsi svariate password diverse, il che può essere decisamente frustrante.

       4.3 - Evitare di utilizzare parole di un dizionario

In quanto molti software di password cracking utilizzano dei dizionari sui quali basare i loro
attacchi, è preferibile evitare sia di utilizzare parole di dizionario all'interno di una password,
sia dei loro derivati. Quando si crea una password è preferibile dunque evitare parole
realmente esistenti, piuttosto è preferibile inserire un carattere speciale in mezzo a una
parola, ad esempio "Settembre" può diventare "Settem$bre", in questo modo la password è
resa molto più sicura. Questa misura di prevenzione non è molto dispendiosa dal punto di
vista mnemonico in quanto è risolvibile aggiungendo anche un solo carattere in modo da
spezzare una parola del dizionario in due parole non del dizionario grazie a solamente un
carattere speciale.

                                                29
4.4 - Non utilizzare password banali

Utilizzare una password troppo banale rappresenta una minaccia, in quanto la tendenza fin
quando possibile è quella di utilizzare una prevedibile sequenza numerica o addirittura la
parola password. Molto spesso la banalità coincide con un frequente utilizzo [16], infatti in
seguito alla pubblicazione delle password del sito "RockYou" dopo essere stato hackerato, si
è dimostrato che le 10 password più utilizzate in quel sito erano:

1) 123456 –> utilizzata 290729 volte

2) 12345 –> utilizzata 79076 volte

3) 123456789 –> utilizzata 76789 volte

4) password –> utilizzata 59462 volte

5) iloveyou –> utilizzata 49952 volte

6) princess –> utilizzata 33291 volte

7) 1234567 –> utilizzata 21725 volte

8) rockyou –> utilizzata 20901 volte

9) 12345678 –> utilizzata 20553 volte

10) abc123 –> utilizzata 16648 volte

Queste password e anche molte altre sono spesso inserite su dizionari che vengono poi
utilizzati da software di password cracking, il che rende molto vulnerabile l'account di chi le
utilizza.

Una soluzione da questo punto di vista è stata intrapresa da molti siti che non permettono la
creazione di password così semplici in quanto appartenenti ad una "blacklist", però non tutte
le volte che viene richiesta la creazione di una password viene esercitato un controllo di
questo tipo e quindi ecco spiegata la continua diffusione di password banali.

                                              30
4.5 - Utilizzare passphrases

Le passphrases sono delle frasi o insiemi di parole, utilizzate come autenticazione ad un
sistema, sono una buona soluzione come password essendo resistenti agli attacchi a
dizionario e a forza bruta. Le passphrases sono tanto più sicure quanto più son difficili da
reperire, di conseguenza una frase inventata è molto più efficace di una realmente esistente
e che magari può essere reperita da qualcuno che viene a conoscenza dei gusti del bersaglio
attraverso magari una ricerca sui social media. Quindi è preferibile inventare una frase come
“oggivorreilaurearmi” piuttosto che utilizzare una citazione presa da un film o una canzone
come “almiosegnalescatenatelinferno”.

L’utilizzo delle passphrases è in costante ascesa in quanto non richiedono un grande sforzo
per la memorizzazione e sono dotate di grande robustezza rispetto agli attacchi.

       4.6 - I password manager

I password manager [17] sono applicazioni software utilizzate per gestire e conservare tutte
le varie password di un utente, e più in generale dei suoi dati di accesso a vari siti web o altre
applicazioni. Le password sono conservate in formato criptato alle quali si può accedere grazie
alla password principale dell’applicazione. Si tratta sia di comodità che di sicurezza, poiché
l’applicazione effettuerà il login all’account desiderato automaticamente (se l’URL coinciderà
con quello autentico, garantendo una protezione dal phishing) senza bisogno da parte
dell’utente di riscrivere la password e l’ID, questa funzione si chiama auto-filling.

Si tratta di una soluzione ideale [15] per chi necessita di conservare in maniera sicura
informazioni riguardo un gran numero di account, inoltre sono particolarmente funzionali se
utilizzati insieme alla funzione di generatore di password (della quale molti password
manager sono dotati), che crea password molto robuste senza il bisogno di memorizzarle. Il
loro utilizzo permette di non riutilizzare la stessa password su più siti senza il minimo sforzo a
livello mnemonico, essendo tutte le diverse password memorizzate nel manager.

La loro diffusione è abbastanza comune sia per quanto riguarda quelli per applicazione
desktop, sia quelli per applicazione mobile, sono una garanzia di sicurezza in quanto
l’applicazione non è raggiungibile da un attaccante via web.

                                               31
5 - Le password di default

Alcuni dispositivi fisici, specialmente quelli di rete sono dotati di una password predefinita o
di default, la quale viene utilizzata per eseguire il primo accesso al dispositivo, queste
password sono disponibili nei siti web dei produttori dei dispositivi e sono facilmente
reperibili da chiunque, molto spesso ogni modello ha la propria password.

Ovviamente queste password dovrebbero essere rimpiazzate con una di creazione del
proprietario del dispositivo fisico immediatamente subito dopo il primo utilizzo, per evitare
problemi di sicurezza.

       5.1 - Analisi sulle credenziali preimpostate dei router

Basandoci su una ricerca effettuata nel 2015 [18] su 1096 diversi modelli di router, i dati
statistici più rilevanti riguardo le credenziali del primo accesso sono:

♦ L'username di accesso al router più comune è "admin" per 319 modelli, mentre per 259 casi
nemmeno viene richiesto, altri username meno diffusi sono "root" e "administrator"

♦ Sono presenti 359 password di default differenti, tra le quali le più diffuse sono "admin",
utilizzata 173 volte e "password" che invece viene utilizzata 66 volte.

♦ Esattamente 206 modelli non hanno richiesto nessuna password per l'accesso al dispositivo

La distribuzione della lunghezza delle password è rappresentata in questo istogramma:

                                               32
Puoi anche leggere