# Attacchi brute force: cosa sono e come ci si difende
Table of Contents
Ogni servizio raggiungibile da internet - la casella di posta, il pannello di amministrazione di un sito, l’accesso remoto a un server - prima o poi riceve tentativi di indovinare le sue credenziali. Spesso non c’è nulla di personale: gran parte di quel traffico è automatico e indiscriminato. Capire cos’è un attacco brute force, perché è così comune e con quali difese di fondo si affronta aiuta a proteggere qualsiasi sistema esposto senza affidarsi a soluzioni magiche.
Cos’è un attacco brute force
Un attacco brute force (in italiano “forza bruta”) è il tentativo di indovinare una credenziale - una password, un codice, una chiave - provando molte combinazioni una dopo l’altra finché una funziona. Non c’è astuzia: c’è volume. La documentazione di OWASP, l’organizzazione no profit che si occupa di sicurezza delle applicazioni web, lo descrive come il configurare valori predefiniti, inviarli al server e analizzare la risposta per capire se hanno funzionato. Il nome dice tutto: si tira a indovinare, ma tante volte e in fretta.
Il motore di questi attacchi è l’automazione. Un essere umano che prova password a mano è lentissimo; un programma ne prova migliaia al secondo. Da qui la distinzione classica tra due approcci. Nel brute force “puro” si generano le combinazioni una a una (tutte le sequenze di lettere, numeri e simboli): esaustivo ma lento, tanto più lento quanto più la password è lunga. Nell’attacco a dizionario si parte invece da liste di parole e password comuni, spesso raccolte da vecchie violazioni di dati: meno esaustivo, ma molto più veloce a colpire chi usa credenziali deboli o già note.
Perché ogni servizio esposto ne riceve
La domanda più naturale è: perché proprio il mio server? Nella maggior parte dei casi la risposta è che non è “il tuo”. Le reti di computer compromessi (le cosiddette botnet) scandagliano interi intervalli di indirizzi IP alla ricerca di porte aperte e pagine di login. Trovato un bersaglio, provano credenziali predefinite, password comuni e coppie utente/password trapelate da altri servizi. È traffico di fondo, come il rumore in una città: chiunque abbia una porta SSH, un server di posta o un modulo di accesso ne riceve, spesso migliaia di tentativi al giorno.
Questo cambia il modo di ragionare. Non serve aspettarsi di essere un bersaglio “interessante”: basta essere raggiungibili. E poiché gli attacchi sono automatici ed economici, non si fermano da soli. La difesa non consiste nel diventare invisibili, ma nel rendere ogni tentativo abbastanza costoso e poco redditizio da non portare a nulla.
Non un solo attacco, ma una famiglia
Sotto l’etichetta “brute force” rientrano varianti che conviene distinguere, perché richiedono difese leggermente diverse.
- Attacco a dizionario. Come detto, usa liste di parole e password frequenti invece di provare ogni combinazione. È efficace contro password prevedibili come
password123o il nome dell’azienda. - Credential stuffing. OWASP lo classifica come un sottoinsieme del brute force. Qui l’attaccante non indovina: riusa coppie utente/password rubate da una violazione per provarle su altri servizi. Funziona per un motivo semplice e diffuso: molte persone riutilizzano la stessa password ovunque. Se è trapelata da un sito, viene provata su tutti gli altri.
- Password spraying. L’attaccante prova poche password molto comuni contro moltissimi account diversi, invece di accanirsi su uno solo. Serve a evitare i blocchi che scattano dopo troppi tentativi falliti sullo stesso utente.
Le difese di fondo
Nessuna singola misura basta. La protezione efficace è fatta di più livelli che si sommano, in modo che il fallimento di uno non lasci la porta spalancata.
Password e chiavi robuste
La prima barriera è rendere la credenziale difficile da indovinare. Una password lunga aumenta enormemente il numero di combinazioni possibili, e quindi il tempo necessario a provarle tutte. Le linee guida di OWASP indicano una lunghezza minima di 15 caratteri quando non c’è un secondo fattore, e suggeriscono di consentire password fino ad almeno 64 caratteri per non penalizzare le passphrase, cioè frasi facili da ricordare e difficili da indovinare. Altrettanto importante è non riutilizzare la stessa password su più servizi: un gestore di password aiuta a tenerne una diversa e casuale per ciascuno, anche se dove il servizio lo consente il modo più efficace resta sostituirla del tutto con una passkey.
Sui server c’è un’opzione ancora migliore delle password: le chiavi crittografiche. Una chiave SSH è enormemente più lunga e casuale di qualsiasi password memorizzabile, al punto da rendere il brute force praticamente inutile. Sostituire l’accesso con password con l’accesso a chiave elimina alla radice gran parte del problema, una misura che si può rafforzare ulteriormente restringendo l’ingresso dietro una VPN come WireGuard.
Autenticazione a più fattori (MFA)
L’autenticazione a più fattori (in inglese multi-factor authentication, MFA) richiede, oltre alla password, un secondo elemento indipendente: un codice temporaneo da un’app, una chiave fisica, un’impronta. L’idea è che indovinare o rubare la sola password non basti più. Secondo OWASP, la MFA è di gran lunga la migliore difesa contro la maggior parte degli attacchi legati alle password, brute force compreso; la stessa fonte riporta una stima di Microsoft secondo cui avrebbe fermato il 99,9% delle compromissioni di account. È la misura che, da sola, sposta di più l’ago della bilancia: anche se un attaccante azzecca la password, senza il secondo fattore non entra.
Rallentare e limitare i tentativi
Se un attacco vive di volume e velocità, una difesa naturale è togliergli entrambi. Il rate limiting (limitazione della frequenza) mette un tetto al numero di tentativi accettati in un dato intervallo di tempo. Piccole pause dopo ogni errore, un blocco temporaneo dopo N fallimenti (account lockout), o un CAPTCHA - quei test facili per un umano e fastidiosi per un programma - rendono l’attacco lento e poco pratico.
Qui però serve onestà: OWASP avverte che il blocco puro dell’account può ritorcersi contro di noi. Un attaccante può inondare di tentativi sbagliati l’account di un utente legittimo apposta per bloccarlo fuori, trasformando la difesa in un piccolo attacco di negazione del servizio. Per questo si preferiscono spesso approcci più mirati, legati al dispositivo o all’indirizzo di provenienza, che colpiscono l’origine dell’abuso invece dell’utente.
Bloccare gli IP che insistono
L’ultimo livello è reagire a chi continua a provare. Esistono strumenti che osservano i log del sistema, da conservare nel rispetto dei principi di minimizzazione previsti dal GDPR, e bloccano automaticamente gli indirizzi troppo insistenti. L’esempio più noto sul mondo Linux è fail2ban, software libero che, come recita la sua descrizione ufficiale, analizza i file di log (per esempio /var/log/auth.log), individua gli indirizzi IP responsabili di troppi tentativi di accesso falliti e li banna aggiornando le regole del firewall di sistema per rifiutarne le nuove connessioni per un tempo configurabile.
In pratica: se un indirizzo sbaglia le credenziali troppe volte in poco tempo, gli viene chiusa la porta per minuti o ore. Non impedisce il primo tentativo, ma spegne il rumore di fondo e alza il costo dell’insistenza. È un buon esempio di difesa reattiva, complementare - non alternativa - alle precedenti.
I limiti da tenere presenti
Bloccare gli IP non è una soluzione definitiva, ed è giusto saperlo. Un attacco distribuito su migliaia di indirizzi diversi, ciascuno con pochi tentativi, può restare sotto le soglie e non far scattare alcun blocco; lo stesso vale per gli attacchi “lenti”, spalmati nel tempo. E soprattutto, nessun blocco basato sui tentativi falliti aiuta contro il credential stuffing che indovina la password giusta al primo colpo: lì l’unica vera rete di sicurezza è il secondo fattore.
Questo è il punto centrale: non esiste un singolo strumento che risolva il problema. È la somma dei livelli - credenziali robuste, MFA, limiti sui tentativi e blocco degli abusi - a rendere un attacco brute force poco più che rumore.
In sintesi
Un attacco brute force è il tentativo automatico di indovinare le credenziali provandone molte in fretta. Ogni servizio esposto ne riceve, perché gli attacchi sono automatici, economici e indiscriminati. Le difese di fondo sono poche e si rafforzano a vicenda: password lunghe e non riutilizzate (meglio ancora chiavi crittografiche sui server), autenticazione a più fattori, limiti alla frequenza dei tentativi e strumenti come fail2ban che bloccano gli indirizzi insistenti. Nessuna di queste, da sola, è sufficiente. Messe insieme, trasformano un problema serio in un fastidio gestibile.
