Perche e Importante
Gli attacchi brute force rappresentano l'approccio piu fondamentale per violare l'autenticazione: provare ogni possibilita fino a trovare quella corretta. Sebbene concettualmente semplici, questi attacchi rimangono efficaci contro password deboli, rate limiting inadeguato e sistemi privi di meccanismi di protezione appropriati.
La matematica del brute force crea una corsa tra la potenza computazionale dell'attaccante e la complessita della password del difensore. Un PIN a 4 cifre ha solo 10.000 combinazioni, banali per i computer moderni. Una password di 8 caratteri minuscoli ha circa 200 miliardi di combinazioni, ancora violabile con hardware dedicato. Password forti con caratteri misti e lunghezza sufficiente rendono il brute force impraticabile.
Il riutilizzo delle password amplifica i rischi del brute force. Le credenziali esposte in una violazione diventano input per attacchi di credential stuffing contro altri servizi. La prevalenza di password deboli e riutilizzate garantisce che il brute force rimanga un vettore di attacco praticabile.
Per i professionisti della sicurezza, comprendere le meccaniche del brute force informa le decisioni sulle policy delle password, la progettazione dei sistemi di autenticazione e le strategie di rilevamento degli incidenti.
Come Funzionano gli Attacchi Brute Force
Approccio di Base
Testare sistematicamente ogni possibile combinazione:
Obiettivo: Password di 4 caratteri minuscoli
Tentativi:
aaaa → errata
aaab → errata
aaac → errata
...
(continua attraverso tutte le 456.976 combinazioni)
...
pass → corretta!
Tempo e Complessita
Calcoli dello Spazio delle Password:
PIN a 4 cifre:
10^4 = 10.000 combinazioni
A 1000 tentativi/secondo: 10 secondi massimo
8 caratteri minuscoli:
26^8 = 208 miliardi di combinazioni
A 1000 tentativi/secondo: 6.600 anni
A 1 miliardo di tentativi/secondo: 3,5 minuti (attacco offline)
8 caratteri misti (maiuscole, minuscole, numeri, simboli):
95^8 = 6,6 quadrilioni di combinazioni
A 1 miliardo di tentativi/secondo: 209 anni
12 caratteri misti:
95^12 = 540 sestilioni di combinazioni
A 1 miliardo di tentativi/secondo: 17 milioni di anni
Tipi di Attacchi Brute Force
Brute Force Puro
Testa ogni possibile combinazione sistematicamente. Garantisce il successo finale ma spesso impraticabile per password forti.
Attacco a Dizionario
Utilizza liste di password comuni, parole e frasi invece di combinazioni casuali. Molto piu efficiente contro password scelte dall'uomo.
Top 10 Password Piu Comuni:
1. 123456
2. password
3. 12345678
4. qwerty
5. 123456789
6. 12345
7. 1234
8. 111111
9. 1234567
10. dragon
Attacco Ibrido
Combina parole del dizionario con modifiche comuni:
- Aggiunta di numeri: password1, password123
- Sostituzione leetspeak: p@ssw0rd
- Aggiunta di caratteri speciali: password!
- Pattern di capitalizzazione: Password, PASSWORD
Attacco Rainbow Table
Tabelle pre-calcolate che mappano gli hash alle password originali. Scambiano spazio di archiviazione per tempo di calcolo. Sconfitti dal salting delle password.
Credential Stuffing
Utilizza credenziali trapelate da altre violazioni per testare nuovi obiettivi. Sfrutta il riutilizzo delle password tra servizi.
# Concetto di credential stuffing (solo test autorizzato)
# Testa credenziali trapelate contro servizio target
leaked_credentials = load_from_breach_database()
for username, password in leaked_credentials:
if try_login(target_service, username, password):
print(f"Valido: {username}")
Brute Force Inverso
Invece di provare molte password contro un account, prova una password comune contro molti account. Elude i blocchi per singolo account.
Strumenti e Tecniche
Strumenti per Attacchi Online
# Hydra - Cracking password online (solo test autorizzato)
# SSH brute force
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://target
# Web form brute force
hydra -l admin -P passwords.txt target http-post-form \
"/login:user=^USER^&pass=^PASS^:Credenziali non valide"
Strumenti per Attacchi Offline
# Hashcat - Cracking hash accelerato da GPU
# Attacco dizionario su hash MD5
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt
# Brute force con maschera (8 caratteri, minuscole + cifre)
hashcat -m 0 hashes.txt -a 3 ?l?l?l?l?l?d?d?d
# Attacco basato su regole (dizionario + modifiche)
hashcat -m 0 hashes.txt wordlist.txt -r rules/best64.rule
Hardware per Attacchi
Il cracking moderno delle password sfrutta:
- GPU di fascia alta (migliaia di dollari)
- Array FPGA (hardware specializzato)
- Cloud computing (cluster GPU pay-per-use)
- ASIC (circuiti integrati specifici per applicazione)
Strategie di Difesa
Policy Password Forti
Raccomandazioni NIST 800-63B:
FARE:
- Minimo 8 caratteri (piu lunghe incoraggiate)
- Permettere fino a 64+ caratteri
- Accettare tutti i caratteri stampabili
- Verificare contro database di violazioni
- Permettere incolla nei campi password
NON FARE:
- Richiedere regole di complessita (maiuscole, minuscole, simboli)
- Forzare cambi periodici di password
- Usare suggerimenti per password
- Imporre regole di composizione arbitrarie
Rate Limiting e Blocchi
- Implementare ritardi progressivi dopo tentativi falliti
- Blocco account dopo soglia (con reset automatico)
- CAPTCHA dopo attivita sospetta
- Throttling basato su IP
Autenticazione Multi-Fattore
L'MFA rende insufficienti le password rubate:
- Qualcosa che sai (password)
- Qualcosa che hai (telefono, chiave di sicurezza)
- Qualcosa che sei (biometrico)
Archiviazione Sicura delle Password
import bcrypt
# SICURO - Utilizzo di bcrypt con salt
password = b"user_password"
# Hash con generazione automatica del salt
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
# Verifica
if bcrypt.checkpw(password, hashed):
print("Password corretta")
- Usare algoritmi di hashing lenti (bcrypt, Argon2, scrypt)
- Generare salt unico per password
- Mai usare MD5 o SHA1 per le password
- Archiviare hash, mai testo in chiaro
Rilevamento e Monitoraggio
- Registrare i fallimenti di autenticazione
- Allertare su pattern insoliti
- Monitorare indicatori di credential stuffing
- Bloccare range IP noti come malevoli
Connessione alla Carriera
La sicurezza delle password interseca sistemi di autenticazione, gestione delle identita e operazioni di sicurezza. I professionisti che comprendono sia le tecniche di attacco che i controlli difensivi sono preziosi per progettare sistemi sicuri e testare quelli esistenti.
Ruoli Sicurezza Autenticazione (Mercato US)
| Role | Entry Level | Mid Level | Senior |
|---|---|---|---|
| Specialista IAM | 70.000 USD | 95.000 USD | 125.000 USD |
| Penetration Tester | 80.000 USD | 110.000 USD | 145.000 USD |
| Security Engineer | 85.000 USD | 115.000 USD | 155.000 USD |
Source: CyberSeek
Come Insegniamo Attacco Brute Force
Nel nostro Programma di Cybersecurity, non imparerai solo la teoria su Attacco Brute Force. Praticherai con strumenti reali in laboratori pratici, guidato da professionisti del settore che usano questi concetti quotidianamente.
Trattato in:
Modulo 10: Penetration Testing e Hacking Etico
360+ ore di formazione guidata da esperti. 94% tasso di occupazione