Attacchi con Rainbow Table: Come Funzionano e Come Difendersi
Molti dei metodi comuni di attacco alle password sono piuttosto diretti — proprio come provare diverse chiavi fisiche per aprire la serratura di una porta. Ad esempio, negli attacchi a forza bruta, gli avversari indovinano sistematicamente le password fino a trovare quella corretta. Oppure, invece di indovinare semplicemente, possono utilizzare un elenco di combinazioni di username/password trapelate da altre violazioni (credential stuffing) o ciclare attraverso username noti combinati con password comunemente utilizzate (password spraying).
Ma gli hacker hanno anche opzioni più sofisticate: piuttosto che provare ogni chiave, possono scassinare la serratura. Con gli attacchi tramite rainbow table, mirano a sfruttare le vulnerabilità nell'infrastruttura di protezione delle password stesse. È un modo più avanzato per entrare nei conti degli utenti, ed è spesso molto più veloce.
Contenuti correlati selezionati:
Definizione e scopo degli attacchi con Rainbow Table
Quando un utente crea una password, questa viene trasformata in un hash, che è una stringa di lunghezza fissa che non assomiglia in nulla alla password originale (in chiaro). L'hashing delle password aiuta a mantenerle sicure perché non esiste un algoritmo inverso per determinare le password in chiaro dai loro valori hash.
Un attacco con rainbow table nella cybersecurity sfrutta un'altra caratteristica fondamentale dell'hashing: un algoritmo di hashing produrrà sempre lo stesso hash per una data password utente. Pertanto, gli attori malevoli possono creare elenchi di password comunemente utilizzate e calcolarne gli hash per creare tabelle rainbow. Poi, se riescono a mettere le mani sul database di password hashate di un'azienda, possono semplicemente cercare ciascuno dei valori hashati nelle loro tabelle rainbow. Se trovano una corrispondenza, conoscono istantaneamente la corrispondente password in chiaro. Questo approccio richiede molto meno tempo e risorse computazionali rispetto alla forzatura delle password.
Comprensione dell'hashing e del suo ruolo nella sicurezza
Cos'è l'hashing?
L'hashing è il processo di conversione dei dati di input (come una password in chiaro) in una stringa di caratteri di dimensione fissa attraverso un algoritmo matematico. È comunemente utilizzato per proteggere password, firme digitali e altre informazioni sensibili.
Come funzionano le funzioni hash
Una funzione hash trasforma i dati di input, indipendentemente dalla loro lunghezza, in una stringa di output unica e di lunghezza fissa. Questa impronta digitale sembra essere completamente non correlata ai dati originali. Anche minimi cambiamenti all'input produrranno notevoli variazioni nell'hash risultante. Tuttavia, lo stesso input produrrà sempre lo stesso hash.
Perché l'hashing è vulnerabile agli attacchi con Rainbow Table
Gli algoritmi di hashing obsoleti sono particolarmente vulnerabili agli attacchi rainbow perché i hash che creano sono facili da prevedere. Più avanti in questo articolo, discutiamo strategie efficaci per ridurre il rischio, inclusi l'uso di tecniche come il salting per rendere meno efficaci le tabelle rainbow e l'adozione dell'autenticazione multifattore per contrastare gli attaccanti che riescono comunque a scoprire le password in chiaro.
Come funzionano gli attacchi alle password con Rainbow Table
Generazione e struttura delle Rainbow Tables
Le rainbow tables sono grandi database che contengono coppie di password in chiaro e i loro corrispondenti valori hash. Avere una rainbow table precalcolata rende piuttosto semplice determinare le password in chiaro:
- Un attaccante ottiene un database di hash delle password da un sistema compromesso.
- L'attaccante esegue un programma che tenta di confrontare ogni valore hash con la propria tabella arcobaleno.
- Se un dato hash non viene trovato, il programma applica una funzione di riduzione e cerca di nuovo. Questo processo viene ripetuto fino a quando non si trova una corrispondenza.
- La password originale viene quindi recuperata.
Differenze tra attacchi brute force e attacchi a dizionario
In un attacco brute force, un avversario tenta di accedere a un sistema semplicemente provando molte diverse possibili combinazioni di username/password. Un attacco dizionario è un tipo specifico di attacco brute force che utilizza parole dal dizionario come password candidate. Questi tipi di attacchi sono relativamente facili da eseguire e non dipendono dalle tecniche di hashing in uso. Tuttavia, è relativamente facile per i difensori individuarli, e molte organizzazioni seguono la prassi migliore di bloccare gli account dopo un certo numero di tentativi di accesso falliti per sventare gli attacchi brute force.
Un attacco con rainbow table, d'altra parte, comporta il furto di un database di password criptate e il tentativo di abbinarle a una tabella di hash di password comuni. Un vantaggio chiave è che una volta rubato il database delle password, non c'è attività nella rete della vittima che i difensori possano rilevare. Tuttavia, le rainbow tables richiedono tempo per essere generate e necessitano di un notevole spazio di archiviazione.
Si noti che tutti questi attacchi funzionano meglio contro password deboli e comuni perché sono quelle su cui si concentrano gli aggressori, sia che stiano eseguendo un attacco brute-force o generando una rainbow table.
Esempi di attacchi con Rainbow Table
Gli attacchi con rainbow table non sono una novità. Uno degli incidenti più famosi che li ha coinvolti è avvenuto nel 2012: gli aggressori hanno rubato gli hash delle password da LinkedIn, portando al compromesso di 6,5 milioni di credenziali degli account utente che in seguito sono stati pubblicati su un forum russo di password.
Gli scenari ipotetici di attacco includono i seguenti:
- Gli hacker utilizzano strumenti di sniffing di rete per intercettare gli hash delle password insicure che vengono trasmessi tra i server che ospitano una piattaforma di e-commerce. Utilizzando una tabella arcobaleno, decodificano le password in chiaro e le usano per accedere agli account dei clienti e rubare le loro informazioni personali.
- Un attaccante sfrutta un'applicazione web scarsamente protetta per rubare gli hash delle password, che sono stati generati utilizzando metodi di hashing obsoleti. Utilizza una tabella arcobaleno per decifrare tutte le password ed entrare nella rete aziendale.
Confronto tra gli attacchi con Rainbow Table e altri metodi di cracking delle password
Rainbow Table vs Dictionary Attack
Attacco Rainbow Table | Attacco a dizionario |
|
|---|---|---|
|
Utilizza mappature hash-password precalcolate |
Utilizza elenchi di parole predefiniti |
|
|
Utilizzato principalmente per attacchi offline su database di password trapelate o rubate |
Può essere utilizzato sia per attacchi online che offline |
|
|
Limitato dall'algoritmo utilizzato per generare gli hash delle password |
Altamente personalizzabile; gli elenchi di parole possono includere password comuni, schemi o termini specifici dell'utente |
|
|
Richiede notevole spazio di archiviazione |
Meno intensivo in termini di spazio di archiviazione |
Rainbow Table vs. Brute Force Attack
Attacco Rainbow Table | Attacco a forza bruta |
|---|---|
|
Si tenta di confrontare ogni hash di password rubata con un elenco precalcolato per determinare la corrispondente password in chiaro |
Tentativi di indovinare una password provando sistematicamente varie combinazioni di caratteri, numeri e simboli |
|
Altamente efficace contro hash non salati di qualsiasi complessità |
Garantito trovare la password alla fine, ma potrebbe richiedere una quantità di tempo non pratica |
|
Scambia tempo di calcolo per spazio di archiviazione |
Si basa interamente sulla potenza computazionale |
|
Facilmente sconfitto aggiungendo sale alle password |
Caratteristiche uniche degli attacchi con Rainbow Table
- Generare tabelle arcobaleno richiede un considerevole investimento iniziale in termini di risorse computazionali e tempo.
- Le rainbow tables sono specifiche per un particolare algoritmo di hashing (ad esempio, MD5, SHA-1).
- Gli attacchi con rainbow table sono meno efficaci contro le moderne tecniche di salting.
- Le rainbow tables non sono adatte per tentativi di cracking delle password in tempo reale.
Principali motivazioni e obiettivi comuni degli attacchi con Rainbow Table
Perché gli aggressori usano le Rainbow Tables
Il motivo principale per cui gli aggressori continuano ad utilizzare le tabelle arcobaleno è che molte organizzazioni hanno ancora sistemi legacy altamente vulnerabili a questi attacchi. Inoltre, questo metodo di attacco può rivelare password in chiaro molto più velocemente rispetto ai metodi di forza bruta.
Anche se la creazione di tabelle arcobaleno richiede tempo e sforzo significativi, queste possono essere utilizzate per più attacchi su diversi sistemi, a condizione che venga utilizzato lo stesso algoritmo di hashing. Questo rende l'investimento una tantum abbastanza conveniente nel lungo periodo. Inoltre, una volta scoperte le password in chiaro, possono essere utilizzate in attacchi di riempimento delle credenziali su altre popolari piattaforme web e servizi.
Sistemi e situazioni vulnerabili agli attacchi con Rainbow Table
Le organizzazioni sono particolarmente vulnerabili agli attacchi con rainbow table se presentano una delle seguenti caratteristiche:
- Applicazioni legacy che utilizzano ancora algoritmi di hashing obsoleti e deboli come MD5 o SHA-1 senza salting
- I sistemi con password policies deboli che consentono password predefinite, comuni o facili da prevedere, sono più suscettibili di essere incluse in tabelle arcobaleno precalcolate
- Piattaforme dove gli utenti riutilizzano spesso le password, come email e social media
- Database che non utilizzano l'archiviazione di password segmentata e hanno misure di protezione deboli
- Active Directory account che utilizzano algoritmi di hashing NTLM obsoleti
Rischi e conseguenze degli attacchi con Rainbow Table
Un attacco con rainbow table può avere conseguenze catastrofiche. Una volta che gli aggressori hanno in mano password in chiaro, possono utilizzarle per ottenere un punto d'appoggio nella rete e muoversi lateralmente per estrarre dati confidenziali, distribuire ransomware e interrompere le operazioni. L'impatto completo può includere:
- Il tempo di inattività dei siti web e di altri sistemi critici che comporta clienti frustrati e perdita di entrate
- Indagini forensiche costose e ripristino dei sistemi
- Danni duraturi alla reputazione e all'immagine del marchio dell'organizzazione, e erosione della fiducia dei clienti
- Costi delle campagne di pubbliche relazioni insieme al monitoraggio del credito e altri servizi per gli utenti i cui dati sono stati violati
- Spese per azioni legali intraprese da individui colpiti dalla violazione
- Pene severe per la mancata conformità con le normative sulla protezione dei dati come GDPR, CCPA o HIPAA
Prevenire gli attacchi Rainbow Table
Password Salting: Come funziona e la sua importanza
Una delle misure più efficaci per difendersi dagli attacchi con rainbow table è l'utilizzo del salting delle password. Questa pratica prevede l'aggiunta di una stringa unica e casuale (chiamata salt) a ogni password prima di eseguirne l'hashing. Poiché ogni password riceve un salt unico, anche se due utenti scelgono la stessa password, avranno valori hash diversi — rendendo impossibile la creazione di rainbow tables.
Ad esempio, supponiamo che un utente scelga password123 come propria password. (Da notare che questo è solo un esempio; un buon strumento per le password bloccherà l'uso di questa password.) Il sistema aggiunge un sale di A1B2C3 e hash la stringa risultante (password123A1B2C3).
Poi un altro utente sceglie la stessa password, password123. Il sistema aggiunge un sale di Q7T4M9 e calcola l'hash della stringa risultante (password123Q7T4M9) — ottenendo un hash completamente diverso per la stessa password in chiaro.
Utilizzare algoritmi di hashing sicuri
Gli algoritmi di hashing moderni introducono una complessità computazionale che richiede più risorse e tempo per essere violati. Algoritmi di hashing come bcrypt, Argon2 e scrypt rendono difficile per gli attaccanti precalcolare tabelle di hash o eseguire attacchi a forza bruta parallelizzati.
Aggiornare regolarmente gli algoritmi di hashing e altri protocolli di sicurezza
Gli algoritmi di hashing e altri protocolli di sicurezza sono in costante miglioramento. Per ridurre il rischio, passa alle opzioni più recenti appena possibile. Dopo aver aggiornato gli algoritmi di hashing, ricorda di rielaborare tutte le password memorizzate durante il prossimo accesso dell'utente o cambio di password.
Costruire una difesa ampia contro gli attacchi basati su password
Le seguenti migliori pratiche aiuteranno a difendersi non solo dagli attacchi con rainbow table ma anche da altri tipi di attacchi alle password.
Implementare politiche di password robuste
Richiedere password complesse aumenta la difficoltà di compromissione delle password su tutti i vettori di attacco. Password lunghe e uniche riducono la probabilità di sovrapposizione degli hash anche senza salting e difficilmente saranno incluse nelle liste utilizzate negli attacchi di forza bruta.
Seguite le attuali migliori pratiche per le password, come quelle del NIST, riguardo alla lunghezza e complessità delle password. L'adozione di un gestore di password renderà facile per gli utenti attenersi alla vostra politica e creare una password forte e unica per ogni account.
Utilizza l'Autenticazione Multifattore (MFA)
L'MFA richiede agli utenti di fornire due o più forme di verifica per accedere a un account. Spesso si tratta di una combinazione tradizionale di username/password più un codice monouso, una chiave di sicurezza o dati biometrici come un'impronta digitale.
Con MFA attivato, anche se un attaccante riesce a scoprire la password in chiaro di un utente utilizzando una rainbow table o tentando di indovinarla, verrà bloccato perché non è in grado di fornire il secondo fattore di autenticazione.
Segui le migliori pratiche di sicurezza per server e rete
Più in generale, è importante ridurre la superficie di attacco dei sistemi esposti. Le migliori pratiche includono:
- Limitare rigorosamente l'accesso ai server e ai dati sensibili
- Stabilire un rigoroso processo di gestione delle patch per aggiornare i sistemi e correggere le vulnerabilità
- Utilizzando la crittografia per proteggere i dati sia a riposo che in transito
- Utilizzando la segmentazione della rete per impedire agli aggressori o al malware di espandersi in aree più sensibili
- Eseguire regolarmente audit di sicurezza e test di penetrazione
Come Netwrix può aiutare
La visibilità e il controllo sono fondamentali per la sicurezza del tuo ambiente digitale e Netwrix offre capacità avanzate in entrambi i settori. Le soluzioni Netwrix consentono alle organizzazioni di ridurre proattivamente la loro superficie di attacco, monitorare continuamente l'attività in tutta l'infrastruttura dalla nuvola al data center e ricevere allarmi in tempo reale su potenziali minacce per consentire un'indagine efficiente e una risposta tempestiva.
In particolare, Netwrix solutions possono ridurre notevolmente il rischio di attacchi basati su password tramite:
- Proteggere i database delle password e monitorare le attività ad essi correlate
- Sostituire le credenziali altamente privilegiate con accesso just-in-time
- Abilitare politiche di password robuste e fornire un gestore di password che renda facile per gli utenti conformarsi a tali politiche
- Monitoraggio dei segni di attacchi brute force e chiusura automatica degli stessi
- Stabilire un comportamento normale dell'utente e segnalare anomalie che potrebbero indicare un compromesso dell'account
FAQ
Cos'è un attacco con rainbow table?
Un attacco con rainbow table è una tecnica utilizzata per decifrare password criptate. Una volta che gli aggressori hanno ottenuto le password criptate, tentano di abbinare questi hash rubati a voci in una rainbow table, che mappa le password in chiaro comuni ai loro valori hash. Questo metodo è più veloce degli attacchi a forza bruta ma è efficace solo contro sistemi che utilizzano hash non salati o algoritmi di hash deboli.
Qual è la differenza tra un attacco brute-force e gli attacchi con rainbow table?
In un attacco brute force, gli hacker provano sistematicamente combinazioni possibili di username/password per accedere a un sistema in tempo reale. In un attacco con rainbow table, gli avversari lavorano offline, cercando di abbinare gli hash delle password rubate a una tabella che elenca i valori hash precalcolati di password in chiaro comuni.
Come si protegge dagli attacchi con le rainbow table?
Esistono diverse misure efficaci che puoi adottare per proteggerti dagli attacchi con tabelle arcobaleno:
- Utilizzare il salting delle password per aggiungere dati casuali unici a ogni password prima dell'hashing.
- Implementare algoritmi di hashing robusti.
- Utilizzare le policy delle password per richiedere password complesse.
- Considerate l'autenticazione senza password per eliminare del tutto il rischio di attacchi basati su password.
Qual è la migliore difesa contro gli attacchi con rainbow table?
Il miglior modo per difendersi dagli attacchi con rainbow table è utilizzare hash con salt. Un salt è un valore unico e casuale che viene aggiunto a una password prima di eseguire l'hashing, rendendo inefficaci le tabelle precalcolate.
È inoltre importante passare ad algoritmi di hashing moderni che richiedono un'intensa attività computazionale, adottare politiche di password robuste e implementare l'autenticazione a più fattori (MFA).
Cos'è un esempio di una rainbow table?
Una tabella arcobaleno associa le password in chiaro più comuni ai loro corrispondenti valori hashati utilizzando un particolare algoritmo di hash. Ad esempio, una tabella potrebbe includere le seguenti righe:
Password in chiaro | Hashed Value |
|---|---|
|
12345678 |
e10adc3949ba59abbe56e057f20f883e |
|
qwerty |
qwertyd8578edf8458ce06fbc5bb76a58c5ca4 |
Come funzionano gli attacchi con le rainbow table?
Gli attacchi con rainbow table si basano sul fatto che un algoritmo di hashing di base produrrà sempre lo stesso hash per una data stringa di input. Questo permette agli hacker di costruire una rainbow table che elenca le password in chiaro comuni e i loro hash corrispondenti. Quando ottengono password hashate, le cercano semplicemente nella rainbow table. Se viene trovata una corrispondenza, la password in chiaro corrispondente viene rivelata.
Si noti che questo tipo di attacco è efficace solo contro hash non salati o sistemi che utilizzano algoritmi di hash obsoleti.
Cos'è un attacco con dizionario rispetto a un attacco con rainbow table?
Un attacco con rainbow table rispetto a un attacco con dizionario può essere spiegato come segue: In un attacco con dizionario, un hacker tenta sistematicamente di autenticarsi utilizzando un elenco di parole e frasi comuni trovate in un dizionario. È relativamente semplice da implementare e richiede uno spazio di archiviazione minimo.
In un attacco con rainbow table, gli aggressori rubano gli hash delle password e poi verificano se tali hash compaiono nella loro rainbow table precalcolata, che elenca le password in chiaro comuni e i loro hash corrispondenti. Questo approccio richiede un considerevole tempo di preparazione ma consente il recupero rapido delle password con un minimo di elaborazione in tempo reale. Le rainbow tables sono utilizzate principalmente per attacchi offline su database di password trapelate.
Condividi su
Visualizza attacchi informatici correlati
Abuso dei permessi dell'applicazione Entra ID – Come funziona e strategie di difesa
Modifica di AdminSDHolder – Come funziona e strategie di difesa
Attacco AS-REP Roasting - Come Funziona e Strategie di Difesa
Attacco Hafnium - Come funziona e strategie di difesa
Spiegazione degli attacchi DCSync: minaccia alla sicurezza di Active Directory
Attacco Pass the Hash
Comprendere gli attacchi Golden Ticket
Attacco agli Account di Servizio Gestiti di Gruppo
Attacco DCShadow – Come Funziona, Esempi Reali e Strategie di Difesa
ChatGPT Prompt Injection: Comprensione dei rischi, esempi e prevenzione
Attacco di estrazione password NTDS.dit
Attacco Kerberoasting – Come Funziona e Strategie di Difesa
Spiegazione dell'attacco Pass-the-Ticket: Rischi, Esempi e Strategie di Difesa
Attacco di Password Spraying
Attacco di estrazione di password in chiaro
Spiegazione della vulnerabilità Zerologon: Rischi, exploit e mitigazione
Attacchi ransomware di Active Directory
Sbloccare Active Directory con l'attacco Skeleton Key
Movimento laterale: cos'è, come funziona e prevenzioni
Attacchi Man-in-the-Middle (MITM): cosa sono e come prevenirli
Attacco Silver Ticket
4 attacchi agli account di servizio e come proteggersi
Perché PowerShell è così popolare tra gli aggressori?
Come prevenire gli attacchi malware che impattano sulla tua azienda
Compromettere SQL Server con PowerUpSQL
Cosa sono gli attacchi di Mousejacking e come difendersi
Rubare credenziali con un Security Support Provider (SSP)
Cos'è il Credential Stuffing?
Uno sguardo approfondito agli attacchi alle password e come fermarli
Ricognizione LDAP
Bypassare MFA con l'attacco Pass-the-Cookie
Attacco Golden SAML