L'uso delle password nei sistemi di autenticazione: problemi e soluzioni - A.A 2017/2018 - Corsi
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
L’uso delle password nei sistemi di autenticazione: problemi e soluzioni A.A 2017/2018 Di: Davide Deidda Relatore: Giorgio Giacinto
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
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
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
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
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
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
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
♦ 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
♦ 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