attacco a dizionario

L’obiettivo dei cyber criminali è di massimizzare la resa dei loro attacchi.

Per fare ciò, si sono sviluppate una molteplicità di tecniche, dipendenti anche dalla dimensione del bersaglio: gli attacchi destinati a grandi organizzazioni necessiteranno di una esecuzione differente rispetto a quelli messi in atto ai danni di comuni utenti.

Solitamente negli attacchi condotti ai danni di singole persone, si prendono di mira i loro account. Tra le varie tecniche di attacco possibili, si annovera anche la cosiddetta password cracking: scovare la password di un account.

Entrando nello specifico si incontra una pletora di tipologie di attacchi password cracking, alcune più strutturati di altre.
Vediamo nello specifico come si costruisce e come viene portato a termine un attacco a dizionario.

Sommario degli argomenti

Password Cracking: approccio Brute-Force

Lo step concettuale di partenza per arrivare agli attacchi a dizionario è quello dell’approccio brute force vero e proprio.

Sebbene si tratti, come suggerisce il nome, di un attacco piuttosto diretto e senza fronzoli è tutt’oggi molto gettonato tra i cyber criminali.
L’attaccante implementa automazioni capaci di tentare l’accesso ad un account un gran numero di volte.

Per ottenere un risultato positivo, gli hacker hanno bisogno di condurre un imponente numero di tentativi, impossibile da ottenere con un singolo terminale. Ecco allora che tornano utili le botnet, con le quali è possibile snellire le procedure ed avere più facilmente successo.

Nel caso in cui l’attaccante riesca ad ottenere l’accesso all’account, questo avverrebbe in modo apparentemente ordinario, immettendo cioè le corrette credenziali. Ciò complica le operazioni per l’identificazione della violazione e la sua neutralizzazione.

Sistemi di difesa

In tempi recenti, però, i sistemi di difesa contro gli attacchi di questo tipo si sono perfezionati notevolmente.

Ad oggi è più difficile per gli attaccanti poter condurre attacchi brute force in quanto i servizi che riconoscono e prevengono le attività dei bot malevoli sono ampiamente diffusi. È possibile scegliere tra numerose tipologie di prevenzione, tutte efficaci, che sono anche in grado di discriminare i bot utili (utilizzati per servizi automatizzati leciti) da quelli malevoli.

Anche gli hacker affinano costantemente le loro tecniche e i loro strumenti, dunque è necessario scegliere dei metodi di prevenzione che si aggiornino con i maggiori trend di attacco, rimanendo efficaci nel tempo.

Scelta delle stringhe

L’automazione implementata dagli hacker compone delle stringhe casuali contenenti lettere, numeri e caratteri speciali.

Queste parole hanno lunghezza variabile e il rateo tra caratteri, numeri e lettere varia continuamente.
È proprio per questo motivo che l’attacco si chiama di ‘forza bruta’: non ci sono vincoli forti che restringano l’insieme delle possibili stringhe da vagliare. Il processo, pertanto, può essere molto lungo e dispendioso. Anche gli hacker si trovano ad aver bisogno di trovare metodologie più efficienti.

Si alza il livello: attacchi a dizionario

L’attaccante ‘professionista’ valuta un tradeoff tra semplicità di implementazione ed efficacia.

Qualora il metodo brute force si rivelasse troppo grossolano per ottenere dei risultati concreti, si dovrebbero perfezionare tecniche via via più elaborate, più dispendiose in termini di implementazione ma con un più solido tasso di efficacia.

Il gradino successivo rispetto al classico metodo di brute force è rappresentato dagli attacchi a dizionario.

Il concetto di fondo rimane quello di tentare di accedere provando un insieme di stringhe; la novità sta nel restringere opportunamente il suddetto insieme ad un gruppo di stringhe che abbiano maggiore probabilità di essere delle password valide: un dizionario. Vediamo ora con quali criteri gli hacker definiscono questi insiemi.

Dizionari di password e i loro utilizzi

Cosa sono i dizionari in informatica

Per rendere più veloce il processo di cracking, gli hacker redigono dei veri e propri dizionari di parole.

Per ‘parole’ si intendono delle stringhe che comunemente vengono immesse nei campi password in fase di creazione di un account. Al costo di spendere del tempo per produrre un dizionario, l’attaccante restringe notevolmente il numero di stringhe da provare per irrompere illecitamente negli account privati.

I dizionari contengono, in prima battuta, password tra le più comuni.

Alcuni esempi potrebbero essere: “password”, “qwerty”, “iloveyou” e in generale tutte quelle che possono essere trovate nelle classifiche di password da NON usare.

Questi attacchi non sarebbero così gettonati se fosse tutto così semplice.
Una peculiarità dei dizionari è che sono adattati da chi li redige a seconda della località. Se ad esempio vengono presi di mira i servizi di un’azienda romana, è probabile che gli attaccanti utilizzino un dizionario apposito, con password adattate alla località (Es: “FrancescoTotti10”, “colosseo123”).

La creazione di un dizionario e il suo utilizzo

La scelta delle password da aggiungere al dizionario è generalmente dell’attaccante che lo utilizza, il quale aggiunge le stringhe che ritiene probabili o prende spunto da leak precedenti per produrne di nuove.

Esistono anche delle “piattaforme di settore” che mettono in vendita dizionari precompilati.

Una volta ottenuto un dizionario, l’attacco consiste nel lasciare che l’automazione precedentemente implementata dall’hacker utilizzi ogni stringa ed effettui una prova di accesso al servizio.

Gli attacchi a dizionario hanno un buon tasso di successo. Anche in tempi recenti si notificano importanti tentativi portati a termine con un guadagno per l’attaccante. Per rendere i dizionari ancora più esaustivi, gli hacker adottano alcune tecniche supplementari:

Forme ibride

Alle stringhe comuni si concatenano altre stringhe di valori alfanumerici prodotte in modo casuale come negli attacchi brute force. In questo modo vengono coperti anche i tentativi (fallimentari) che alcuni utenti potrebbero operare per rendere più sicura una password già debole in partenza.

È possibile che, come conseguenza di un attacco ai danni di un ente, vengano esfiltrati dei dati importanti, tra cui le password.

Nel caso peggiore (e più frequente), i dati vengono messi in vendita al miglior offerente. Succede, dunque, che le coppie utente/password esfiltrate vengano aggiunte ai dizionari degli hacker che le ottengono. Il passo successivo è di provare ad accedere ad altri servizi usando sempre le stesse credenziali, contando sul fatto che la maggior parte degli utenti utilizza la stessa parola d’ordine per più account.

Prevenzione attacchi a dizionario

Il tutto parte da password deboli, dunque è da qui che bisogna iniziare a prendere provvedimenti preventivi.

Questo rappresenta solo la punta dell’iceberg, dato che ci sono più livelli di sicurezza. Aggiungere molteplici strati di difesa tende a diminuire la possibilità di essere derubati dei propri account tramite attacchi a dizionario.

Alcune buone norme sono le seguenti:

Cura della password

Le parole chiave sono il primo baluardo di difesa di un account.

La buona norma è quella di evitare di dare la stessa struttura alle parole d’ordine (evitare, cioè, lo stesso tipo di concatenazioni, come ad esempio lettere+numeri+caratteri speciali, per ogni password). Sembra superfluo ribadirlo ma purtroppo non lo è: non condividere le proprie credenziali e informazioni legate alle operazioni di login.

Infine, conviene cambiare password periodicamente, evitando di scambiare le password di due servizi a cui si è collegati. Meglio generarne di nuove.

Diversificazione

La maggior parte degli utenti della rete ricicla la stessa password per più account.

Questa attività è molto rischiosa. Alla luce di quanto detto sugli attacchi a dizionario in precedenza, risulta chiaro che usare la stessa parola d’ordine per più account mostra il fianco a Credential stuffing. Una volta violato un account, l’attaccante ne ha ottenuti, in realtà, molteplici: un vero e proprio regalo.

Per evitare di elargire favori agli hacker basta generare delle password sicure (per prima cosa) e uniche. È bene usare un vasto insieme di caratteri alfanumerici, con lettere maiuscole e minuscole accompagnate da caratteri speciali.

Generare password lunghe e random

Ebbene sì: la password generata unendo i nomi dei figli, intervallati da un punto e sostituendo le vocali, nell’ordine, con “@,3,1,0,?” non è sicura come sembra.

Se abbastanza lunga potrebbe anche essere accettabile, ma si può fare di più.
L’ideale è di separare la parola d’ordine da concetti, oggetti, nomi vicini alla nostra persona. Anche i nomi propri di persona potrebbero far parte di un dizionario; a quel punto non c’è fantasiosa sostituzione di lettere che tenga.

Perciò è consigliato produrre in modo random delle password di almeno 16 caratteri, contenenti anche caratteri speciali.

Usare un password manager

Sono delle banche di password.

Quando si hanno molte password (una diversa per ogni account), lunghe e composte tutte da caratteri random è impossibile ricordarle.

I password manager servono a questo. Le stringhe sono ovviamente criptate, già prima di inviarle al servizio, così che anche se qualcuno intercetta il nostro traffico non sarà in grado di leggere in chiaro le stringhe.

Un avvertimento: la password dell’account del password manager deve essere la più sicura di tutte, se vogliamo. Oppure si possono aggiungere altri livelli di sicurezza, a questo come altri servizi.

Autenticazione a due fattori

È un livello aggiuntivo di sicurezza.

Una volta inserita una password, viene richiesta una conferma univoca dell’identità di chi tenta di accedere.

Tale verifica può essere portata a termine in svariati modi. I più tradizionali e diretti sono l’invio di codici di conferma attraverso indirizzi e-mail sicuri o numeri di telefono. Se possibile, sarebbe meglio usare i codici generati periodicamente da una app di autenticazione. Ne esistono varie in commercio e fanno tutte la stessa cosa. Quando viene attivato il servizio per la prima volta, l’app e l’ente relativo all’account si sincronizzano. I codici di sicurezza sono generati periodicamente e saranno gli stessi. Perciò all’utente basta fornire il codice temporaneo e l’ente provvederà al check.

Parametri biometrici

Alcuni servizi accettano un altro metodo per stabilire univocamente l’identità di chi tenta di accedere: i dati biometrici. Solitamente sono impronte digitali, passate tramite i sensori appositi che ormai sono presenti sia su dispositivi mobili che computer. Più recentemente si sta diffondendo il riconoscimento facciale.

Limitare il numero di tentativi

Questo metodo preventivo è ormai quasi uno standard, ma è bene ricordarlo.
Infatti, se usato su tutti i livelli di sicurezza implementati, risulta estremamente efficace.

Vanifica l’uso di grandi botnet: è altamente improbabile indovinare la password entro tre tentativi, per non parlare degli altri metodi di prevenzione citati sopra. Nel caso in cui il legittimo utente inserisca più volte una password errata, egli si fermerebbe prima di bloccare l’account e richiederebbe un cambio password.

Conclusioni

Gli attacchi a dizionario sono ancora frequenti nel mondo. Continueranno ad esserlo finché sia le organizzazioni che i singoli utenti continueranno a renderli remunerativi per gli attaccanti.

Analizzando la struttura di un attacco a dizionario, è possibile pensare e adoperare sistemi di difesa efficaci: dalla creazione di password robuste all’adozione di ulteriori livelli di sicurezza, tutto contribuisce a salvaguardare l’integrità degli account. Le metodologie di difesa illustrate non creano conflitti e possono essere usate insieme. Ancora una volta è possibile innalzare i livelli di sicurezza con pochi semplici passi che fanno, però, la differenza.

Cyberment Srl

Cyberment è un’azienda specializzata in consulenza di sicurezza informatica. Il nostro red team è composto da hacker etici e specialisti in cybersecurity che operano in questo settore da oltre 20 anni.

Ci occupiamo di identificare le vulnerabilità informatiche nei sistemi e nelle applicazioni web tramite servizi di Vulnerability Assessment e Penetration Test.

Siamo un’azienda di sicurezza informatica certificata ISO 9001, ISO 27001, nonché azienda etica. Abbiamo sede legale a Milano e sede operativa a Porto Mantovano, mentre Londra è il cuore del nostro reparto ricerca e sviluppo.

Se desideri conoscere in modo approfondito i nostri servizi di prevenzione dalle minacce informatiche, contattaci!