Sicurezza di WordPress, come aumentarla in poche mosse

La sicurezza di WordPress è uno dei maggiori problemi della piattaforma. Ad oggi quasi il 30% dei siti nel mondo è realizzato con WordPress, per cui gli hacker l’hanno eletto come bersaglio più popolare da attaccare. Se non sei uno sviluppatore ma piuttosto un utente che vuole sapere come creare un blog o un sito, puoi seguire alcuni consigli di facile implementazione per proteggere la tua installazione e mettere in sicurezza WordPress.

Mettere in sicurezza WordPress: i passi da seguire

Backup, prima di tutto

Con questo voglio dire 2 cose:

  1. In caso di problemi i backup ti salvano la vita. Controlla se il tuo piano di hosting prevede un servizio di backup e ripristino, generalmente di facile gestione, oppure installa un plugin che ti consenta di eseguire e programmare automaticamente i backup. Il plugin che ti consiglio è UpdraftPlus, ma ce ne sono anche altri validi;
  2. Prima di eseguire le operazioni che seguono, effettua un backup per evitare mal di testa inutili.

Impedire l’identificazione degli utenti

Facciamo una prova, apri una nuova finestra del browser e nella barra degli indirizzi scrivi l’indirizzo del tuo sito web seguito da /?author=1 (ad esempio www.example.com/?author=1) e premi invio. Il nuovo indirizzo che troverai sulla barra sarà www.example.com/author/ seguito dal nome dell’utente con Id 1. Puoi fare altre prove sostituendo il n. 1 del primo esempio con i numeri successivi, troverai così gli altri nomi degli utenti del tuo sito.

Conoscere in partenza i nomi utente è un bel vantaggio per gli hacker, che possono dedicarsi direttamente alla ricerca della password e creare grossi problemi di sicurezza al tuo WordPress. Per evitare questo problema puoi utilizzare un plugin che si chiama Fullworks WP VPS Security (precedentemente si chiamava “Stop User Enumeration”). Devi soltanto installarlo ed attivarlo, lui si occuperà di impedire la visualizzazione dei nomi utente, restituendo un messaggio di errore.

Non usare l’utente admin

Ma non eliminarlo, crea un nuovo utente al quale assegnare il ruolo di amministratore ed all’utente admin assegna il ruolo di sottoscrittore. In questo modo anche se i pirati informatici riuscissero ad accedere con l’utente admin, potrebbero farci ben poco perchè il ruolo di sottoscrittore non consente di apportare alcuna modifica al sito. Tanta fatica per nulla, insomma!

Per quanto riguarda il nuovo utente amministratore, non utilizzarlo per scrivere articoli o contenuti pubblici: sarebbe facilissimo individuare il suo nome utente. Piuttosto crea un altro utente al  quale assegnare il ruolo di editore, ed utilizza quest’ultimo per la creazione dei contenuti.

Utilizza l’autenticazione a due fattori

L’autenticazione degli utenti è il problema principale quando si parla di sicurezza e WordPress. Premesso che le password per accedere al sito devono essere molto forti (lunghe e con diversi tipi di caratteri, maiuscole, minuscole, caratteri speciali e numeri), esse sono comunque l’obiettivo principale degli attacchi degli hacker, per cui è meglio inserire un’ostacolo in più, grazie all’autenticazione a due fattori.

Ci sono diversi plugin che consentono l’accesso al backend di WordPress attraverso una procedura che richiede anche l’uso del vostro smartphone. Il primo che mi ricordo è stato Clef, veramente efficace ma non più operativo da giugno 2017. In alternativa ti consiglio Two-factor , molto semplice da implementare. Dopo averlo installato ed attivato, vai su “Utenti -> Il tuo profilo” e scorri la pagina verso il basso fino a trovare le opzioni che vedi nella schermata seguente, appena aggiunte dal plugin:

sicurezza wordpress: le opzioni del plugin two-factor
le nuove opzioni fornite dal plugin two-factor

Clicca sulle caselle “Enabled” e “Primary” come nella figura sopra e poi su “View Options”. A questo punto dovresti vedere un QR Code ma per proseguire devi prima installare sul tuo smartphone l’app Google Authenticator. Dopo averlo installato avvialo ed inquadra il QR Code con lo smartphone. Inserisci il codice di 6 cifre nella casella di testo che trovi sotto il QR Code e salva le modifiche. Da questo momento, quando accederai a WordPress dovrai sempre inserire nome utente e password, dopodichè dovrai inserire il codice generato da Google Authenticator sul tuo smartphone, come nella schermata che segue:

sicurezza wordpress: il codice di accesso di Google Authenticator

Ma cosa succede se non hai lo smartphone a portata di mano? Rimani fuori dal tuo sito? Assolutamente no! Come puoi vedere, sotto la casella di testo c’è scritto “Or, use your backup method: Email”, se clicchi su email il codice di verifica verrà inviato direttamente alla tua casella di posta e potrai recuperarlo da li. È questo il motivo per cui ti ho fatto cliccare su “enabled” in entrambe le due opzioni che abbiamo visto prima.

Cambia l’url di accesso al sito

Questa operazione e quelle che seguiranno richiedono l’installazione di un ottimo plugin dedicato alla sicurezza di WordPress: iThemes Security. Nell’immagine seguente puoi vederne il pannello di amministrazione:

Sicurezza wordpress: Schermata di iThemes security
La schermata di iThemes Security

Nell’angolo in alto a destra c’è il link alle opzioni “advanced”, cliccando su di esso vedrai quest’altra schermata

Sicurezza wordpress: opzioni avanzate di Ithemes Security

L’url di accesso al tuo sito dovrebbe essere attualmente quella classica di WordPress cioè www.example.com/wp-login.php. Essendo l’indirizzo di accesso standard è quello principalmente preso di mira dagli hacker, modificando questo url con un altro a tuo piacimento gli hacker non sapranno quale indirizzo attaccare.

Per fare questo clicca su “Hide Backend” ed alla voce “Login Slug” inserisci il nuovo indirizzo di login del tuo sito. Memorizzalo da qualche parte, da quel momento l’url per accedere al sito sarà quello che hai appena scelto.

Proteggi il tuo sito dagli attacchi “brute force”

Gli attacchi dei pirati informatici vengono in realtà eseguiti da programmi che eseguono delle procedure automatizzate per “bucare” i siti di tutto il mondo. L’intervento umano si verifica solo successivamente, dopo che le procedure automatiche hanno già evidenziato la vulnerabilità del sito. Poichè questi programmi non si stancano mai, sono in grado di effettuare innumerevoli tentativi di login fino a trovare la password corretta, compromettendo la sicurezza di un sito WordPress.

Questi tipi di attacchi vengono denominati “brute force”. Per evitarli iThemes Security ci consente di attivare la relativa protezione, che troviamo alla voce “Local brute force protection”. Puoi così stabilire qual è il numero massimo di tentativi che un utente può effettuare prima che gli venga inibito l’accesso al sito ed evitare così un infinito numero di tentativi.

Aumenta la sicurezza di WordPress cambiando il prefisso delle tabelle

Tutti i dati di WordPress vengono salvati in un database mySql, formato da diverse tabelle che hanno tutte dei nomi standard come wp_users, wp_posts e così via. Per evitare possibili attacchi al database puoi cambiare il prefisso di queste tabelle così che gli hacker non possano conoscerne in anticipo il nome. Sempre dalla sezione “Advanced” di iThemes Security, clicca su “Change Database Table Prefix”, il plugin ti proporrà un nuovo prefisso, seleziona “yes” alla voce “change prefix” e salva.

Disabilita il listato delle directory

Se all’interno della tua installazione di WordPress c’è una cartella che non ha al proprio interno un file index.php, chiunque può vedere il contenuto di questa cartella. Ad esempio, se esiste una cartella “risorse”, accanto alle classiche cartelle “wp-admin”, “wp-content” e “wp-includes”, basta digitare www.example.com/risorse/ nella barra degli indirizzi del browser per ottenere un elenco dei contenuti di tale directory.

Come ho già detto questa eventualità viene superata inserendo all’interno della cartella un file denominato index.php, anche se vuoto. Per evitare problemi, cliccando su “System Tweaks” puoi selezionare la casella “Disable directory browsing” ed impedire questa eventualità.

Disabilita il protocollo XML-RPC e le REST-API

Xml-rpc è un protocollo che consente di trasmettere dati in formato xml. Questo protocollo è attivo per default in WordPress sin dalla versione 3.5, ed in pratica costituisce un accesso secondario ai dati della nostra installazione. Per evitare di lasciare aperta questa breccia, è possibile cliccare su “WordPress Tweaks” e disabilitare XML-RPC.

Tieni presente che se utilizzi il plugin Jetpack o altri plugin che dialogano con WordPress attraverso questo sistema, il loro utilizzo verrà impedito da questa opzione. In questo caso, è possibile almeno impedire le richieste multiple di autenticazione tramite questo protocollo (praticamente un altro modo per tentare intercettare nomi utente e password). I settaggi da impostare li trovi nella figura sotto:

Sicurezza WordPress: le impostazioni XML-RPC e REST-API

come già detto, se stai utilizzando Jetpack o altri plugin che usano questo protocollo, la prima opzione deve essere impostata su “Enable Xml-rpc”.

L’ultima opzione visualizzata in rosso si riferisce alle c.d. REST-API, una modalità di trasmissione dei dati del database tramite javascript. Se il tema o i plugin che hai installato non utilizzano queste funzionalità puoi tranquillamente limitarne l’accesso come descritto in figura, ed evitare ulteriori problemi (nel febbraio 2017, con il rilascio della versione 4.7 di WordPress, una falla nelle REST-API  comportò un attacco a decine di migliaia di siti nel mondo).

Poichè la sicurezza non è mai troppa, potrei continuare con molte altre procedure da eseguire per mettere in sicurezza WordPress, ma molte delle best practices richiedono l’integrazione di codice php all’interno dei file di WordPress, o quanto meno una certa dimestichezza con procedure “tecniche”. Invece ho voluto dedicare questo articolo agli utenti meno esperti, che seguendo i consigli illustrati potranno aumentare significativamente la sicurezza della propria installazione.