WordPress sicuro: non è un ossimoro, ma richiede impegno
WordPress alimenta oltre il 40% dei siti web mondiali. Questa popolarità lo rende il bersaglio numero uno degli attacchi informatici: bot automatizzati scansionano continuamente internet alla ricerca di installazioni WordPress vulnerabili, e quando ne trovano una, la compromettono in secondi. Ho visto siti aziendali trasformati in distributori di malware, pagine di phishing o nodi di botnet — tutto perché nessuno si era occupato della sicurezza dell’installazione.
Il punto è che WordPress non è insicuro di per sé. Il core del CMS è sviluppato con attenzione alla sicurezza e aggiornato regolarmente. I problemi nascono dalla configurazione, dai plugin, dai temi e dalla manutenzione — o meglio, dalla loro assenza.
Le minacce principali
Brute force sulle credenziali
L’attacco più comune e più banale. Bot automatizzati tentano migliaia di combinazioni username/password sulla pagina di login (wp-login.php). L’username “admin” con password deboli viene compromesso in minuti. Una volta dentro, l’attaccante ha il controllo completo del sito.
Vulnerabilità nei plugin
I plugin sono il tallone d’Achille di WordPress. Sviluppati da terze parti con livelli di competenza variabili, rappresentano la causa principale delle compromissioni. Plugin non aggiornati, plugin abbandonati dal developer, plugin scaricati da fonti non ufficiali: ogni plugin installato è un potenziale vettore di attacco. Una singola vulnerabilità in un plugin popolare può esporre milioni di siti simultaneamente.
Iniezione di codice malevolo
SQL injection, cross-site scripting (XSS), remote code execution: queste vulnerabilità permettono all’attaccante di eseguire codice arbitrario sul server, accedere al database, rubare dati o compromettere l’intero sistema. Spesso il codice malevolo viene iniettato in modo da essere invisibile al proprietario del sito ma attivo per i visitatori.
Hardening WordPress: le misure essenziali
1. Aggiornare tutto, sempre
Core, plugin e temi devono essere aggiornati tempestivamente. Gli aggiornamenti di sicurezza vanno applicati entro 24-48 ore dal rilascio. Abilitare gli aggiornamenti automatici per il core (minor releases) e valutare l’auto-update anche per i plugin, almeno quelli di sicurezza.
2. Credenziali robuste e MFA
Password complesse (minimo 16 caratteri, generate casualmente) per tutti gli utenti, specialmente gli amministratori. L’autenticazione a due fattori (2FA) è non negoziabile per gli account admin: plugin come Wordfence o WP 2FA la implementano efficacemente. Eliminare l’utente “admin” predefinito e creare un amministratore con username non prevedibile.
3. Limitare i tentativi di login
Installare un plugin che blocchi gli IP dopo un numero definito di tentativi falliti (Limit Login Attempts, o la funzionalità integrata in Wordfence). Questo blocca efficacemente gli attacchi brute force automatizzati.
4. Nascondere e proteggere wp-login.php
Spostare la pagina di login su un URL personalizzato (WPS Hide Login) riduce drasticamente il traffico malevolo. Proteggere wp-admin con un ulteriore livello di autenticazione HTTP a livello server (.htaccess) aggiunge una barriera supplementare.
5. Disabilitare XML-RPC
XML-RPC è un protocollo legacy utilizzato raramente ma sfruttato frequentemente per attacchi brute force amplificati e DDoS. Se non servono applicazioni esterne che lo utilizzano (come l’app WordPress mobile), disabilitarlo con un plugin o a livello .htaccess.
6. Permessi file corretti
I permessi dei file devono seguire lo standard di sicurezza WordPress:
- Directory: 755
- File: 644
- wp-config.php: 400 o 440
- .htaccess: 444
Il file wp-config.php contiene le credenziali del database e deve essere protetto con la massima attenzione. Spostarlo di un livello sopra la web root è una pratica consigliata quando l’hosting lo permette.
7. Plugin di sicurezza
Un plugin di sicurezza completo come Wordfence, Sucuri Security o iThemes Security offre firewall applicativo (WAF), scansione malware, monitoraggio delle modifiche ai file, protezione brute force e alerting. Non sostituisce le altre misure, ma le complementa efficacemente.
8. Header di sicurezza HTTP
Configurare gli header di sicurezza nel server web o tramite plugin:
- Content-Security-Policy: limita le fonti da cui possono essere caricati script e risorse
- X-Frame-Options: previene il clickjacking
- X-Content-Type-Options: previene il MIME sniffing
- Strict-Transport-Security: forza HTTPS
- Referrer-Policy: controlla le informazioni di referrer inviate ad altri siti
9. Backup automatizzati e testati
Un backup completo (file + database) deve essere eseguito automaticamente con frequenza adeguata e conservato in una sede separata dal server. Testare periodicamente il ripristino: un backup che non si riesce a ripristinare è inutile. Soluzioni come UpdraftPlus, BlogVault o backup a livello server sono tutte opzioni valide.
10. Monitoraggio continuo
Monitorare il sito per uptime, modifiche non autorizzate ai file, nuovi utenti creati, installazione di plugin sospetti. Servizi come Sucuri SiteCheck eseguono scansioni remote per malware e blacklisting. Log di accesso WordPress e log del server web devono essere conservati e analizzati periodicamente.
WordPress per le aziende: sì, ma con le dovute precauzioni
WordPress resta una piattaforma eccellente per siti aziendali, e-commerce e applicazioni web. Ma la sua popolarità richiede un livello di attenzione alla sicurezza che non può essere improvvisato. Un sito WordPress non manutenuto è una bomba a orologeria: non è questione di “se” verrà compromesso, ma di “quando”.
Se il tuo sito WordPress aziendale non ha mai ricevuto un hardening professionale, è il momento di intervenire. Auxilia Sistemi esegue audit di sicurezza WordPress e implementa tutte le misure di protezione necessarie. Contattaci al 06 2170 1593.