Proteggere WordPress da attacchi brute force

Come proteggere WordPress da continui tentativi di accesso non autorizzato?

State usando un server web per ospitare una o più installazioni del famoso e diffuso CMS WordPress? Allora quasi di sicuro riceverete migliaia di tentativi di accesso al pannello amministrativo dei siti realizzati con tale CMS.
Si tratta appunto di attacchi “brute-force”, per tentativi.
Se le password utilizzate sono robuste probabilmente gli accessi saranno bloccati. Purtroppo pero’, a volte, tali attacchi vanno a buon fine e, in genere gli accessi illegali sono usati per rubare dati sensibili, per installare malware nel sito compromesso o per inviare spam sfruttando le funzionalità del server. Per questo è necessario proteggere WordPress da questi tentativi.

Proteggere WordPress da attacchi brute force

Come sappiamo di essere vittime di questi attacchi brute-force rivolti a WordPress?

Possiamo controllare nei log e noteremo la ripetizione di righe di questo tipo:

46.161.27.153 – – [26/Sep/2022:06:28:41 +0200] “POST /wp-login.php HTTP/1.1″ 200 4522 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0”
46.161.27.153 – – [26/Sep/2022:06:33:27 +0200] “POST /wp-login.php HTTP/1.1″ 200 4515 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0”
46.161.27.153 – – [26/Sep/2022:06:33:30 +0200] “POST /wp-login.php HTTP/1.1″ 200 4522 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0”
46.161.27.153 – – [26/Sep/2022:06:37:43 +0200] “POST /wp-login.php HTTP/1.1″ 200 4515 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0”
46.161.27.153 – – [26/Sep/2022:06:40:16 +0200] “POST /wp-login.php HTTP/1.1″ 200 4522 “-” “Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0”

Come si può notare, gli IP da cui viene eseguito il tentativo di accesso sono ripetuti. Questo è un chiaro segno che l’accesso non è avvenuto e che si sta verificando una serie di tentativi al fine di individuare una password corretta. Normalmente vengono utilizzati vocabolari contenti migliaia di password tra le più diffuse oppure vocabolari costruiti analizzando dati relativi alla vittima (sito web, pagine social, informazioni personali, etc.)

Quasi certamente sul server avrete gia’ installato un firewall ma questo non previene i tentativi e non può bloccare l’attacco.

Come bloccare l’attacco brute-force e proteggere WordPress?

Se utilizzate come firewall il diffuso CSF (ConfigServer Security & Firewall), spesso si trova installato nelle installazioni cPanel. Questo firewall dispone di un componente, LFD, che verifica i tentativi di login al diversi servizi.
Può inoltre essere customizzato per integrare nuove regole di riconoscimento.
Possiamo pertanto personalizzare il file regex.custom.pm che si trova nella cartella di installazione del firewall ed aggiungere le seguenti righe.

# WP-LOGINS
if (($globlogs{CUSTOM1_LOG}{$lgfile}) and ($line =~ /(\S+).] “\w(?:GET|POST) \/wp-login.php.*” /)) {
return (“WP LOGIN BRUTE FORCE”,$1,”WPLOGIN_FAILURE”,”6″,”80,443,21,22,25,23″,”900″);
}

Dovremo inoltre indicare che tra i log da analizzare ci sono anche quelli del web server (apache), modificando il parametro CUSTOM1_LOG=….

A questo punto, dopo aver riavviato firewall e demone LFD, se la pagina di login sarà richiamata più di 6 volte in un breve lasso di tempo, il firewall bloccherà per 900 secondi gli accessi alle porte usate dal web server ed anche ad altri servizi (ssh, smtp, ftp, etc).

Come verifico se sta funzionando la protezione di WordPress dagli attacchi?

Nel log del sistema di controllo degli accessi, LFD, troveremo traccia dei tentativi di accesso bloccati etichettati con il testo “WP LOGIN BRUTE FORCE”. Le linee si presenteranno nel seguente modo:

Sep 26 07:40:32 host100 lfd[29428]: (WPLOGIN_FAILURE) WP LOGIN BRUTE FORCE 198.98.60.32 (US/United States/ns1.boltflare.com): 6 in the last 3600 secs – Blocked in csf for 900 secs [LF_CUSTOMTRIGGER]
Sep 26 07:41:18 host100 lfd[29689]: (WPLOGIN_FAILURE) WP LOGIN BRUTE FORCE 188.166.236.35 (SG/Singapore/-): 6 in the last 3600 secs – Blocked in csf for 900 secs [LF_CUSTOMTRIGGER]
Sep 26 07:49:41 host100 lfd[32366]: (WPLOGIN_FAILURE) WP LOGIN BRUTE FORCE 188.166.183.39 (SG/Singapore/agvn.net-alpine): 6 in the last 3600 secs – Blocked in csf for 900 secs [LF_CUSTOMTRIGGER]

Questo è uno dei vari modi che abbiamo per proteggere WordPress da attacchi brute-force, in particolare è efficace se non possiamo adottare altre soluzioni più restrittive.

Vuoi attivare la protezione di WordPress ma preferisci che questo venga fatto da sistemisti esperti? Puoi richiedere il supporto di Sicurezzarete.