Prevenire attacchi brute force WordPress

Cosa sono gli attacchi brute force

Un attacco brute force è un tentativo sistematico di indovinare le credenziali di accesso provando combinazioni infinite di username e password. Strumenti automatizzati come Hydra, WPScan e Medusa possono testare centinaia di migliaia di tentativi al secondo, sfruttando liste di password comuni e dizionari di milioni di combinazioni. WordPress, essendo il CMS più diffuso, è il bersaglio preferito.

La pagina wp-login.php è il punto di ingresso principale per questi attacchi. Gli scanner automatici cercano questa URL su ogni dominio che visitano. Anche xmlrpc.php è un vettore critico: permette l’autenticazione via POST senza interfaccia grafica e gli attaccanti lo usano per bypassare i limiti di tentativi impostati su wp-login, dato che una singola richiesta XML-RPC può testare multiple credenziali contemporaneamente attraverso il metodo system.multicall.

Limitare i tentativi di accesso

La misura più immediata è limitare il numero di tentativi di login falliti. Plugin come Login LockDown e Limit Login Attempts Reloaded bloccano temporaneamente un indirizzo IP dopo un numero configurabile di fallimenti. Per esempio, puoi impostare 3 tentativi consentiti in 5 minuti, con un blocco di 15 minuti dopo il superamento.

Wordfence include funzionalità built-in di rate limiting che vanno oltre il semplice login: puoi limitare anche le richieste a xmlrpc.php e alle pagine di reset password. La configurazione ottimale prevede blocchi progressivi: più tentativi fallisce un IP, più lungo diventa il blocco successivo, fino al ban permanente.

CAPTCHA e reCAPTCHA

Google reCAPTCHA v3 è la scelta migliore per bilanciare sicurezza e usabilità. Funziona in background analizzando il comportamento dell’utente senza richiedere interazioni come “clicca le foto dei semafori”. Puoi integrarlo su wp-login, registrazione, reset password e form dei commenti con plugin come Advanced noCaptcha & invisible Captcha.

Se preferisci non dipendere da Google, hCaptcha è un’alternativa valida che rispetta maggiormente la privacy. Per siti con basso traffico, anche il classico CAPTCHA matematico o testuale è efficace e non richiede servizi esterni.

Autenticazione a due fattori (2FA)

La 2FA aggiunge un livello di sicurezza che rende quasi impossibile l’accesso non autorizzato anche se la password viene compromessa. Plugin come Google Authenticator, Wordfence Login Security e Two Factor Support forzano l’utente a inserire un codice temporaneo generato dall’app dopo aver inserito correttamente la password.

Per gli amministratori, la 2FA dovrebbe essere obbligatoria. I ruoli con minori permessi possono attivarla volontariamente. Alcuni plugin offrono metodi alternativi come codici via email, SMS o chiavi di sicurezza hardware (FIDO U2F).

Modificare l’URL di login

Nascondere la pagina di login standard è una strategia difensiva semplice ma efficace. Plugin come WPS Hide Login e iThemes Security permettono di cambiare /wp-login.php in un slug personalizzato come /accedi o /area-riservata. I tentativi di accesso alla vecchia URL vengono reindirizzati alla home o a una pagina 404.

Questa tecnica non ferma un attaccante determinato, ma blocca la stragrande maggioranza degli attacchi automatizzati che cercano solo la URL standard. Combinala con la disabilitazione completa di xmlrpc.php se non utilizzi app mobile o servizi che ne hanno bisogno.

Blocco IP via .htaccess

Per i server Apache, il file .htaccess può essere configurato per bloccare indirizzi IP o intere sottoreti note per attività malevole. Puoi creare una whitelist di IP autorizzati all’accesso all’area amministrativa se lavori sempre dalla stessa connessione. In alternativa, usa servizi come Fail2ban sul server per bloccare automaticamente gli IP dopo un certo numero di tentativi falliti, analizzando i log di accesso del server web.

Su Nginx, la configurazione equivalente passa per nginx.conf con direttive deny e allow. In entrambi i casi, verifica periodicamente le liste nere per evitare di bloccare utenti legittimi.

Web Application Firewall (WAF)

Un WAF a livello DNS come Cloudflare o Sucuri può bloccare gli attacchi brute force prima che raggiungano il tuo server. Cloudflare offre regole di rate limiting che puoi personalizzare: per esempio, blocca qualsiasi IP che faccia più di 10 richieste a wp-login.php in 60 secondi. Le regole Page Rule di Cloudflare permettono di impostare sfide CAPTCHA per specifiche pagine quando vengono richieste troppo frequentemente.

Monitoraggio dei tentativi falliti

I log degli accessi sono una fonte preziosa di intelligence. Analizzali settimanalmente per individuare pattern anomali: un’impennata di tentativi da IP esteri può indicare un attacco in corso. Wordfence fornisce una dashboard dettagliata con cronologia, geolocalizzazione e contromisure automatiche. Salva i log in un database separato o in un file esterno per non appesantire il sito.

Politiche per password sicure

Una password forte è lunga almeno 12 caratteri, combina maiuscole, minuscole, numeri e simboli e non contiene parole del dizionario. Plugin come Password Policy Manager e Force Strong Passwords applicano questi requisiti automaticamente, impedendo agli utenti di impostare password deboli. Educa i tuoi utenti con linee guida chiare e considera l’uso di un password manager aziendale.

Conclusioni

Prevenire gli attacchi brute force su WordPress richiede un approccio a più livelli: limitazione dei tentativi, 2FA, modifica dell’URL di login, firewall e password robuste. Nessuna singola misura è infallibile, ma la combinazione di tutte eleva la sicurezza a un livello che dissuade anche gli attaccanti più determinati. Implementa queste protezioni oggi e riduci drasticamente il rischio di compromissione del tuo sito.

Leave a Reply