Avere WordPress in sicurezza completa è praticamente un mito, ma se hai già visto un wordpress hackerato e con malware installati e vuoi evitare di piangere sangue, segui queste piccole regole.
Anzitutto perchè è importante un WordPress in sicurezza: perchè anche se il tuo blog (o quello del tuo cliente) è il semplice blog della tifoseria della squadra di biglie dell’oratorio, è comunque esposto sul web, connesso con altri siti e raggiungibile da tutto il mondo. Non pensare solo ai danni che un malware possa portare al tuo sito, come pubblicare pagine, testi e foto che tu non vuoi per non rovinare il tuo business, ma se il tuo sito dovesse essere compromesso, potrebbe essere un veicolo di distribuzione verso altri siti e potresti essere accusato a tua volta di essere un hacker che sta infettando. Non è una bella cosa. Guarda ad esempio questo sito: http://www.designdevelopment-group.com/ che ha al suo interno pagine hackerate come questa: http://archive.fo/1nZze (ho usato archive.is per evitare divulgazioni di pagine infette)
Spesso mi capita di essere chiamato in soccorso di WordPress che sono compromessi e il mio compito è di analizzare file per file (e sono tanti) alla ricerca di codici malevoli, e quasi sempre il problema è perchè non sono state seguite delle semplici regole di sicurezza. Ricorda che l’intervento di uno specialista può costarefino a 250€/ora, e a volte sono strettamente necessari. Conviene pensarci prima no?
ATTENZIONE: è un post un po’ tecnico e nerd, leggi e agisci solo se sai cosa stai per fare (ti ho avvisato)
ATTENZIONE 2: se può essere compromesso il sito della FBI o della Casa Bianca, non dare per scontato che queste indicazioni siano sufficienti per il tuo blog.
Regola 1: i backup per avere WordPress in Sicurezza
Backup. Esegui almeno un backup al giorno del database e uno alla settimana di tutti i dati. E non nello stesso hosting, perchè se un malware dovesse entrare, verrebbero compromessi anche i backup e puoi dire ciao a WordPress in sicurezza. Controlla almeno una volta al mese che i backup ci siano e siano funzionati. Io uso UpdraftPlus (https://wordpress.org/plugins/updraftplus/) con backup in remoto su sFTP o Google Drive.
Regola 2: la password per avere WordPress Sicuro
Password. Ahh, facile dire “eh, ma me la dimentico”. Ti svelo un trucco: esiste la possibilità di “salvare” la password (uuhhhh). Una password robusta è indispensabile. Secondo te perchè quando si crea un utente in WordPress la password è di 32 caratteri alfanumerici e con la punteggiatura? Perchè lo sanno che quello è un punto debole. Personalmente ritengo che si dovrebbe implementare di default anche un token esterno come per le operazioni di remote banking. Il plugin Google Authenticator (https://wordpress.org/plugins/google-authenticator/) funziona bene e normalmente lo installo nei siti che gestisco.
Altro fattore da non sottovalutare è creare utenti amministrativi come se piovesse. L’Admin dovrebbe essere UNO solo (e non chiamarsi “admin”, ovviamente). Per tutti gli altri utenti scegli “Editori” o “Autori”. Se il tuo cliente ti richiede di essere nomitato amministratore, fagli capire bene che da quel momento si assume tutte le responsabilità del caso.
Regola 3: gli aggiornamenti
Nota bene che quando si parla di aggiornamenti, difficilmente si intendono migliorie estetiche o di “cagatine” che puoi farne a meno. Qua parliamo di sicurezza informatica. Gli aggiornamenti sono fatti per tappare dei buchi, i famosi BUG che sono in ogni riga di codice. Il codice è scritto da programmatori umani che tutti noi possono commettere errori che quindi vanno corretti oppure perchè è stato scoperta una falla da qualcuno e si corre ai ripari per chiuderla. Gli hacker non fanno altro che sfruttare il lasso di tempo tra quando è stato scoperto il buco e quando tu lo ripari. Facciamo un esempio: hai installato un plugin famoso in tutto il mondo come Visual Composer. E’ installato su 2milioni di wordpress e ad un certo punto un hacker scopre che tramite una chiamata particolare ad un file che viene installato da Visual Composer si può aprire una sorta di porta da cui installare un malware. L’hacker ci tiene a vantarsi con gli amici (hacker) e pubblica su un forum le istruzioni per sfruttare questa cosa. Ora tutto il mondo hacker sa come inserire malware in Visual Composer e iniziano gli attacchi. A questo punto gli autori di Visual Composer modificano il codice di quel file e rilasciano un aggiornamento per evitare che tutti i siti con installato VC vengano infettati. Tu che fai? Aspetti di avere il sito compromesso o corri subito ai ripari?
Aggiornare, aggiornare, aggiornare.
L’unico consiglio per esperienza è di aspettare 24 dal rilascio perchè spesso capita che la primissima versione dell’aggiornamento venga subito ri-aggiornata.
Prima di fare QUALSIASI aggiornamento, lancia sempre un backup. Potrebbe saltare tutto come è successo alla mia amica Francesca, che durante un aggiornamento del core di WordPress, ha perso TUTTE le immagini del suo blog (e in quel casso sono danni, anche economici)
Regola 4: un hosting dedicato a WordPress
Hosting per wordpress: non è che serva per forza un server dedicato o una VPS, ma evita di appoggiarti a hosting condivisi low-cost. Fattore importante da valutare è che abbia dei backup automatici sempre disponibili e che giri abbastanza bene (purtroppo dipende da un sacco di fattori legati allo specifico WordPress, ai plugin installati e al tema)
Regola 5: un plugin per la sicurezza di WordPress
Sì, esistono dei plugin per aumentare o verificare WordPress in sicurezza e sono abbastanza semplici da usare. I migliori free sono sicuramente Sucuri Security (https://wordpress.org/plugins/sucuri-scanner/) e Wordfence Security (https://wordpress.org/plugins/wordfence/) entrambi molto validi hanno la possibilità di installare un firewall, limitare i tentativi di login e scansionare i file comparandoli alle librerie per vedere se sono stati modificati da malware o altro.
Personalmente preferisco Wordfence, ma solo perchè lo conosco da più tempo. La versione Premium ha molte funzioni in più, compresa la già citata Two Factor Authentication e un firewall più potente contro gli attacchi.
Consiglio 1: modifiche .htaccess per mettere Wordpress in sicurezza
occhio e occhio. Le modifiche al file .htaccess devono essere fatte solo se hai idea di quello che stai facendo, non solo perchè l’hai letto in un blog come questo e quindi ti fidi a bomba.
Per miglorare WordPress in sicurezza, ci sono alcune modifiche attuabili sul file .htaccess per limitare la libertà di movimento a certi malware e attacchi. Per fare questo potrebbe essere utile imparare a collegarti al tuo sito tramite ssh.
- disabilitare il File Editing online di wordpress, che pur essendo comodo e simpatico, è una lama da 25cm in mano ad un bambino. Per disabilitarlo, aggiungi al file wp-config.php
// Disabilita il file editing online define( 'DISALLOW_FILE_EDIT', true );
- Disabilita l’esecuzione di PHP nella cartella uploads. Visto che in quella cartella è facile che qualche plugin permetta il caricamento di file, è una buon preda per gli hacker e malware per annidare file eseguibili in .php che lancino operazioni. Meglio evitare, creando un file .htaccess nella cartella /wp-content/uploads, contentente:
<Files *.php> deny from all </File>
oppure abilitando direttamente da Wordfence l’opzione.
- Disabilitare la funzione XML-RPC: se non sai cos’è, vuol dire che puoi farne a meno. Serve per poter pubblicare su wordpress da applicazioni esterne o tramite email. Se non la usi, disabilita tramite il file .htaccess nella root del sito:
# Blocca WordPress xmlrpc.php <Files xmlrpc.php> order deny,allow deny from all </Files>
Se vuoi abilitarla per uno specifico indirizzo IP, aggiungi prima di
allow from xxx.xxx.xxx.xxx
- Disabilita la visualizzazione e navigazione per cartelle. Questa dovrebbe essere già disabilitata di default dall’hosting, ma aggiungere questa stringa alla fine del file .htaccess della root non fa male.
Options -Indexes
Consiglio 2: proteggere l’accesso alla cartella wp-admin
Per blindare l’accesso alla cartella wp-admin e aumentare la possibilità di avere Wordress in sicurezza, si può utilizzare la funzione dei server di impedire l’accesso ad una cartella se l’utente non è autorizzato. In cPanel lo si attiva con un paio di clic e una bella password, mentre tramite .htaccess la procedura è un po’ più lunga: si crea un file .htpasswds usando un cripatore come questo generatore si carica il file in una cartella che sia al di fuori dal public_html, ad esempio /home/utente/.htpasswds/sito-sicuro, poi si crea un file .htaccess nella cartella /wp-admin contenente:
AuthName "area sicura" AuthUserFile /home/utente/.htpasswds/sito-sicuro AuthGroupFile /dev/null AuthType basic require user nomeUtente