How to Prevent Brute Force Attacks

Come prevenire gli attacchi di forza bruta: 9 controlli comprovati

Di Benish Parvaiz·

Per prevenire attacchi di forza bruta, richiedi l'autenticazione a più fattori su ogni accesso tramite Internet, limita la velocità dei tentativi falliti per account, IP e a livello globale, blocca le password violate, archivia gli hash con Argon2id o bcrypt e avvisa in caso di errori di accesso anomali. Sovrapponi questi controlli, perché nessuno blocca ogni variante.

Apri il registro di autenticazione di qualsiasi server SSH poche ore dopo che è andato online e vedrai quanto segue:

3 ottobre 02:14:07 web01 sshd[2231]: password non riuscita per root dalla porta 203.0.113.45 51022 ssh2
3 ottobre 02:14:09 web01 sshd[2233]: password non riuscita per l'amministratore dalla porta 198.51.100.17 40318 ssh2
3 ottobre 02:14:11 web01 sshd[2236]: Password fallita per Ubuntu dalla porta 192.0.2.88 33874 ssh2

Tre nomi utente, tre IP, a due secondi di distanza. Nessuno sta scrivendo. I bot testano ogni pagina di accesso, porta SSH ed endpoint API che trovano e un singolo tentativo riuscito porta direttamente apresa in carico dell'account. Di seguito sono riportati nove controlli classificati in base all'impatto, oltre a come rilevare e rispondere a un attacco in corso.

Come prevenire gli attacchi di forza bruta: 9 controlli classificati in base all'impatto

  1. Applicare l'autenticazione a più fattori.Una password indovinata o trapelata non garantisce più l'accesso.

  2. Limite di velocità e limitazione degli accessi.Indovinare lentamente a una velocità che lo rende inutile.

  3. Seguire le regole sulla password NIST SP 800-63B.Preferisci la lunghezza, blocca le password violate, elimina la rotazione forzata.

  4. Hashing delle password con Argon2id o bcrypt.Un database rubato non dovrebbe diventare un database crackato.

  5. Aggiungi CAPTCHA e rilevamento bot in modo selettivo.Sfida solo il traffico sospetto.

  6. Rafforza gli accessi SSH, RDP, CMS e le API.Chiudi i servizi colpiti per primi dagli aggressori.

  7. Utilizza la reputazione IP, le regole geografiche e un WAF.Tagliare tempestivamente il traffico noto.

  8. Monitora e avvisa in caso di errori di autenticazione.Cogli ciò che sfugge alla prevenzione.

  9. Metti alla prova le tue difese.Verifica che i controlli funzionino prima che lo faccia un utente malintenzionato.

Hai poco tempo? Esegui prima i controlli 1, 2 e 8. L'MFA limita il danno, la limitazione della velocità rallenta l'attacco e il monitoraggio ti dice che sta accadendo.

Perché la prevenzione differisce in base alla variante

How to Prevent Brute Force Attacks

Ogni variante viene fermata da un controllo diverso, quindi sappi quale ti trovi di fronte.

Variante

Come funziona

Firma del registro

Miglior controllo

Semplice forza bruta

Molte ipotesi contro un account

Molti errori, un nome utente

Limitazione, blocco temporaneo

Spruzzatura password

Alcune password comuni a molti account

Uno o due errori per account

Limiti globali e per IP, MFA

Riempimento di credenziali

Coppie di nome utente e password trapelate riprodotte

IP a rotazione e volume elevato

AMF, screening delle violazioni

Cracking offline

Indovinare contro gli hash rubati

Nessuno sui vostri sistemi

Argon2id o bcrypt, password lunghe

La spruzzatura elimina i blocchi per account perché ogni account non vede quasi nessun errore. Il cracking offline non lascia alcuna traccia, motivo per cui l'hashing è importante anche se la tua pagina di accesso è perfetta.

Controllo 1: applica l'autenticazione a più fattori

How to Prevent Brute Force Attacks

L'MFA è al primo posto perché rende insufficiente una password corretta. Classificato per forza:

  1. Passkey e chiavi FIDO2.Resistente al phishing perché la credenziale è legata al dominio reale.

  2. App di autenticazione TOTP.Solido, anche se un proxy di phishing attivo può inoltrare il codice.

  3. Spingi con la corrispondenza dei numeri.Blocca le approvazioni cieche.

  4. Codici SMS.Più debole, esposto allo scambio di SIM. Utilizzare solo come riserva.

Contrasta l'affaticamento dell'MFA, in cui gli aggressori inviano spam push fino a quando qualcuno non approva, con corrispondenza dei numeri, un limite di prompt all'ora e avvisi dopo ripetuti rifiuti. Distribuisci per raggio d'azione: pannelli di amministrazione e console cloud, quindi e-mail, VPN e hosting di codice, quindi tutti gli altri. Blocca anche il percorso di recupero. Non lasciare mai che il supporto disabiliti l'MFA solo tramite e-mail.

Controllo 2: limite di velocità e tentativi di accesso limitati

How to Prevent Brute Force Attacks

Un bot che prova 10.000 password al minuto è una minaccia. Tenuto a 5 al minuto, non lo è. Limita prima di bloccare, perché i blocchi rigidi consentono agli aggressori di negare il servizio agli utenti reali.

  • Guasti da 1 a 3: nessun ritardo

  • Fallimenti dal 4 in poi: 1, 2, 4, 8 secondi, massimo 60

  • Dopo 10 errori: blocco di 15 minuti più un'e-mail al proprietario dell'account

Limite su tre dimensioni, poiché ogni variante supera una diversa: per account (10 errori in 15 minuti), per IP (20 tentativi al minuto) e globale (avviso superiore a 3 errori di base).

nginx

limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;

posizione/accesso {
    limit_req zone=login burst=3 nodelay;
    limit_req_status 429;
    proxy_pass http://app_backend;
}

Nginx vede solo gli IP, quindi utilizza i contatori Redis o un WAF per l'account e i livelli globali. Applica gli stessi limiti alla reimpostazione della password, all'immissione MFA (un codice a 6 cifre ha solo 1.000.000 di combinazioni) e ai percorsi di accesso API.

Controllo 3: imposta le regole della password in base a NIST SP 800-63B

Il NIST ha sostituito le vecchie regole sulla complessità con linee guida basate sul modo in cui gli aggressori indovinano.

  • Richiedi un minimo di 8 caratteri con MFA e 15 o più per gli account amministratore. Consenti 64 o più.

  • Elimina i mix forzati di simboli e numeri.punto corretto della batteria del cavallobatteP@ssw0rd!.

  • Controlla le nuove password con l'API Have I Been Pwned Pwned Passwords, che utilizza il k-anonimato in modo che la password completa non lasci mai il tuo sistema.

  • Termina la rotazione pianificata. Forza un ripristino solo in caso di compromissione, come una corrispondenza trovata tramitemonitoraggio del web oscuro.

  • Consenti incolla in modo che i gestori di password funzionino.

Se un revisore richiede ancora la rotazione, documentare la logica del NIST e applicare la regola più rigorosa solo laddove un quadro normativo lo richiede.

Controllo 4: Hashing delle password per fermare gli attacchi offline

I limiti di velocità non hanno alcun effetto una volta che un utente malintenzionato detiene il tuo database. Una moderna GPU testa miliardi di ipotesi MD5 al secondo, quindi gli hash veloci cadono in poche ore. Qui è dovecapire come funziona l'hashingripaga. Utilizza un algoritmo lento e che richiede molta memoria:

  1. Argon2id.L’attuale raccomandazione OWASP.

  2. scrypt.Alternativa forte.

  3. bcrypt.Testato in battaglia, fattore di costo 12 o superiore.

  4. PBKDF2.Solo dove la conformità lo richiede, a 600.000 o più iterazioni.

Non utilizzare mai MD5, SHA-1 o SHA-256 da soli. Le biblioteche gestiscono il salting, quindi non scriverlo mai tu stesso. Ottimizza il fattore di lavoro su circa 250-500 ms per hash e ripeti l'hash al prossimo accesso quando le impostazioni migliorano.

pitone

da argon2 importa PasswordHasher
ph = PasswordHasher(costo_tempo=2, costo_memoria=19456, parallelismo=1)
memorizzato = ph.hash(password)
ph.verify(stored, password) # solleva in caso di mancata corrispondenza

Confermare i parametri confrontandoli con l'attuale Cheat Sheet per l'archiviazione delle password OWASP prima della spedizione.

Controllo 5: aggiungi CAPTCHA e rilevamento bot in modo selettivo

Il CAPTCHA aggiunge attrito, non un muro. I servizi di risoluzione vendono a buon mercato le sfide risolte dall’uomo e i modelli di intelligenza artificiale ora risolvono molti enigmi di immagini. Attiva sfide in base al rischio: tre o più errori, un nuovo dispositivo o paese, IP del provider di hosting o firme del browser headless. Cloudflare Turnstile, hCaptcha e reCAPTCHA v3 segnano il rischio in modo invisibile. Abbinateli al rilevamento delle impronte digitali del dispositivo e all'analisi temporale e offrite un'alternativa accessibile per gli utenti che non possono completare le sfide visive.

Controllo 6: rafforzare i servizi più colpiti dagli aggressori

SSH.Rimuovi la password e la forza bruta non avrà nulla da indovinare.

Autenticazione password n
PermitRootLogin n
Permetti agli utenti di distribuire l'amministratore
MaxAuthTries 3

Genera chiavi conssh-keygen -t ed25519, conferma l'accesso alla chiave in una seconda sessione, quindi ricaricasshd. Aggiungi Fail2ban come livello di supporto. La modifica della porta riduce il rumore del registro ma non è un controllo.

PSR.Non esporre mai la porta 3389. Mettila dietro una VPN o un gateway (scopri comeZTNA e VPN si adattano alle moderne strategie di sicurezza), abilita l'autenticazione a livello di rete, richiedi MFA e imposta una politica di blocco di 5 errori per 15 minuti.

WordPress e CMS.Limita i tentativi di accesso, blocca/xmlrpc.php(èsystem.multicalltesta centinaia di password per richiesta), limitare/wp-login.phpper IP e applicare l'AMF amministrativa.

API.Imposta i limiti per chiave e per IP con429risposte, utilizza chiavi casuali da 332 byte o più, scade i token entro un'ora e restituisce errori identici per nomi utente e password errati.

Controllo 7: utilizza la reputazione IP, le regole geografiche e un WAF

Il filtraggio dei bordi è un prefiltro, non una difesa primaria. Inserisci feed di reputazione come AbuseIPDB e Spamhaus DROP, sfida le gamme di provider di hosting e i nodi di uscita Tor sui percorsi di accesso e applica regole geografiche dove sono concentrati i tuoi clienti. Utilizza l'MFA step-up invece dei blocchi rigidi in modo che i viaggiatori non vengano bloccati. Distribuisci regole WAF basate sulla tariffa (Cloudflare, AWS WAF o ModSecurity), iniziando in modalità conteggio prima di passare al blocco. Le reti proxy residenziali ruotano gli IP domestici reali ed eludono tutto ciò, quindi l'MFA e la limitazione per account continuano a sostenere il carico.

Controllo 8: monitoraggio e avviso in caso di errori di autenticazione

How to Prevent Brute Force Attacks

Alla fine la prevenzione fallisce e senza il monitoraggio un accesso con forza bruta riuscito sembra normale. Buonomonitoraggio della sicurezza informaticainizia con i registri corretti: ID evento Windows 4625, 4624 e 4740; SSHautenticazione.log401 picchi sugli accessi web e sui log di accesso dei provider di identità. Non registrare mai le password.

Scrivere un rilevamento per variante:

  • Forza bruta:più di 10 errori per un account in 5 minuti

  • Spruzzatura:un IP in errore rispetto a più di 15 nomi utente in 30 minuti

  • Ripieno:volume di accessi superiore a 3 volte rispetto al valore di base con un'elevata percentuale di errori

  • Compromesso:un accesso riuscito dopo un'esplosione di errori. Chiama qualcuno per questo.

  • Abuso dell'AMF:tre o più richieste push negate

indice=wineventlog EventCode=4625
| bin_intervallo di tempo=30m
| stats dc(TargetUserName) come utenti per _time, IpAddress
| dove utenti > 15

Wazuh è un punto di partenza gratuito con regole SSH e forza bruta integrate. Esegui avvisi in modalità solo report per una settimana e sintonizzati rispetto al tuo livello di riferimento.

Controllo 9: Metti alla prova le tue difese

Un controllo non testato è un presupposto. Testa solo i sistemi che possiedi o che hai l'autorizzazione scritta a testare, utilizzando un account di prova dedicato. Hydra, Medusa e Burp Intruder coprono moduli e servizi di accesso e Hashcat testa la resistenza offline rispetto a una copia dei tuoi hash in un laboratorio. Piegandolo in unpiù ampio test di penetrazione e valutazione della vulnerabilitàil programma lo mantiene secondo un programma.

Verifica che 15 errori rapidi attivino ritardi, che una password su 30 account attivi il rilevamento spray, che una password corretta senza MFA venga negata, che SSH rifiuti le password e che un burst di errori seguito da un successo raggiunga il tuo cercapersone. Il test di allerta è importante quanto il test di blocco. Ripetere il test trimestralmente e dopo ogni modifica all'autenticazione.

Cosa fare durante un attacco attivo

  1. Conferma l'ambito.Identifica gli account presi di mira, gli IP di origine e qualsiasi successo dopo un'esplosione di errori.

  2. Blocca la fonte.Utilizza le regole firewall o WAF oppure blocca tramite ASN o modello di richiesta se gli IP ruotano. Cambia le regole della modalità conteggio in blocco.

  3. Blocca gli account compromessi.Reimposta le password, revoca le sessioni e verifica la proprietà dell'MFA tramite un altro canale.

  4. Stringere temporaneamente.Abbassare le soglie e richiedere un rafforzamento dell’AMF, quindi rimuovere le misure dopo l’attacco.

  5. Caccia all'attività post-compromesso.Cerca nuovi dispositivi MFA, regole di inoltro delle cassette postali, chiavi API e concessioni OAuth.

  6. Documento.Registra quale controllo avrebbe dovuto fermare questo problema e colmare il divario. Controllare le scadenze per la notifica delle violazioni in caso di accesso ai dati.

Lista di controllo per la prevenzione della forza bruta

Fallo oggi

  • Elenca tutti gli accessi con connessione Internet

  • Abilita MFA su account amministratore, email e cloud

  • Disabilita le password SSH e chiudi l'RDP pubblico

Fallo questa settimana

  • Aggiungi limiti di frequenza endpoint di accesso, reimpostazione e MFA

  • Controllare le password rispetto agli elenchi di violazioni

  • Imposta avvisi di successo dopo che si verificano errori

Fai questo trimestre

  • Esegui un test autorizzato su ogni controllo

  • Ottimizza le soglie di avviso

  • Riparare i fattori di lavoro dell'hash

Conclusione

Gli attacchi di forza bruta sono automatizzati e costanti, quindi anche la difesa deve essere automatica. Dai priorità all'MFA, alla limitazione della velocità su più livelli, all'hashing forte con screening delle violazioni e agli avvisi in caso di successo dopo fallimento. Insieme aumentano il costo dell’attacco oltre ciò che la maggior parte dei robot spenderà.

Prossimo passo oggi:elenca tutti gli accessi con connessione Internet e contrassegna quelli privi di MFA e limitazione della velocità. Correggi prima i pannelli di amministrazione, la posta elettronica e l'accesso remoto.

Domande frequenti

Qual è il modo più efficace per prevenire gli attacchi di forza bruta?

MFA resistente al phishing come passkey o chiavi FIDO2. Rende insufficiente una password corretta, neutralizzando insieme le credenziali di ipotesi, riempimento e phishing. Abbinalo alla limitazione della velocità.

Il blocco dell'account ferma gli attacchi di forza bruta?

Impedisce di indovinare un singolo account, ma gli aggressori possono attivare blocchi per bloccare utenti reali e non fa nulla contro lo spraying delle password. Utilizza ritardi progressivi più limiti globali e per IP.

Quanto tempo occorre per forzare una password?

Dipende dalla lunghezza, dal set di caratteri e dal tipo di hash. La lunghezza conta di più e gli hash veloci come MD5 cadono molto più velocemente di Argon2id. Testa i tuoi hash in laboratorio invece di affidarti a una figura generica.

Una VPN o la modifica della porta predefinita possono fermare gli attacchi di forza bruta?

Una VPN rimuove l’esposizione pubblica, quindi gli aggressori devono prima superare la sua autenticazione. La modifica della porta riduce solo il rumore dello scanner e viene rilevata in pochi minuti.

Qual è la differenza tra forza bruta e credential stuffing?

La forza bruta indovina le password. Il credential stuffing ripropone le coppie reali trapelate, scommettendo sul riutilizzo. Password univoche, screening delle violazioni e MFA impediscono il stuffing.

Come faccio a sapere se sto subendo una forzatura bruta?

Cerca picchi di accesso non riusciti, un IP non riuscito su molti nomi utente, una password tentata su molti account e inondazioni di blocchi. Un successo subito dopo un fallimento è il segno più grave.

Fail2ban è sufficiente per proteggere SSH?

No. Gli attacchi distribuiti rimangono al di sotto delle soglie. Disabilita l'autenticazione della password e richiedi le chiavi e mantieni Fail2ban come livello di supporto.

Pronti per essere protetti?

Inizia oggi il tuo viaggio nella sicurezza

Ottieni una consulenza gratuita con i nostri esperti di sicurezza informatica. Nessun impegno richiesto.