Rendere sicuro WordPress

wordpress-logo-stacked-rgb
Wordpress
è ormai diventato uno standard per la creazione di siti web. La piattaforma è molto flessibile, robusta, con moltissimi temi e plugin che permettono di creare ciò che vogliamo.

Il Codex, ossia il “linguaggio” di WordPress è ben documentato e quindi fare implementazioni, modifiche, scrivere plugin sono tutte cose alla portata di molti utenti.

Eppure WordPress, come ogni CMS, mostra un suo limite nella possibilità che un sito venga attaccato, defacciato (ossia modificato) o cosa peggiore, diventi un pericoloso trasmettitore di virus o spam.
Nel primo caso il risultato sarà che il nostro sito web mostri qualcosa di molto diverso rispetto alla sua normalità: pubblicità, prodotti a noi sconosciuti o messaggi di gruppi rivoltosi tanto per fare qualche esempio. Per quanto sia una situazione decisamente incresciosa, questo generalmente non comporta grandi problemi: è sufficiente mettere offline il sito hackerato e ripristinarlo. Tra l’altro un sito “defacciato” generalmente viene scoperto nel giro di pochissimo tempo e quindi tutte le contromisure possono essere adottate rapidamente.

sito-pericolosoIl secondo caso invece è il più temibile: il sito potrebbe infatti continuare a funzionare normalmente, ma dietro alle quinte veicolare virus o spam. Questa situazione è gravissima: problemi anche molto importanti nella SERP, l’avviso mostrato dai motori di che il nostro sito è diventato pericoloso per i visitatori, finire con il proprio servizio email nelle blacklist, sono tutte situazioni che possono arrecare un danno anche economico al proprietario del sito. Inoltre in questo caso il ripristino del sito non è sufficiente: va ripulita la SERP, richiesta la riconsiderazione del sito a Google e agli altri motori, fatto uscire il dominio dalle Blacklist etc..

Come evitare che tutto questo accada? … o per lo meno, come diminuire il rischio?

Vediamo ora le “best practice” più comuni e semplici che si dovrebbero sempre adottare con WordPress. Se vi siete affidati ad una web agency per la realizzazione del vostro sito web, chiedete sempre garanzie circa i loro sistemi di sicurezza e le loro politiche di gestione di questi problemi.

1.Effettuare sempre copie di backup

Un sito in WordPress è composto generalmente da 5 “unità”: il cuore di WordPress, il Tema, i Plugin, la cartella Upload ed il database. Avere una copia sempre aggiornata di queste 5 unità permette di ripristinare un sito attaccato in pochi minuti. Tra l’altro quanto un sito è stato compromesso, pulirlo “manualmente” è una operazione spesso inutile in quanto il malware o le modifiche al codice possono trovarsi ovunque (vedi la fine dell’articolo). Il modo migliore di agire è cancellare tutto e ripristinare una copia funzionante. Se vi state chiedendo quanti backup dovreste fare (o farvi fare) questo dipende da cosa fate col sito: un ecommerce molto vivo o un blog continuamente aggiornato potrebbe necessitare di più copie giornaliere; di contro per un sito di una attività commerciale poco aggiornato possono bastare 2/3 copie alla settimana.

2. Aggiornare sempre tutto.

Tenere WordPress costantemente aggiornato è fondamentale: in questa ottica il backup è un ottimo alleato: se un aggiornamento dovesse distruggerci il sito possiamo tornare rapidamente alla versione precedente. Aggiornate sempre WordPress, i Plugin ed il Tema, solo in questo modo potete stare alla larga da vulnerabilità note. Se desiderate che WordPress si aggiorni da solo potete aggiungere al file wp-config.php presente nella root del sito questa semplice riga:

define( ‘WP_AUTO_UPDATE_CORE’, true );

3. Cancellate ogni Plugin o Tema inutile

I temi ed i plugin sono la via di accesso privilegiata dai malintenzionati. Rimuovere ogni plugin e ogni tema non utilizzato riduce così il numero di “porte aperte” del nostro sito.

4. Comprate (o scaricate) temi e plugin solo da fonti affidabili

Potete usare alcuni famosissimi Marketplace oppure il sito stesso di WordPress ma non affidatevi a siti che promettono sconti incredibili su Temi o Plugin Premium. Spesso queste versioni nascondono al loro interno la fonte di nostri futuri problemi.

5. Rinominare l’accesso al backoffice

Non sarà sicuramente il suggerimento che cambierà la vostra vita, ma non esporre pubblicamente il /wp-admin potrebbe ridurre il rischio di attacchi di forza bruta contro il sistema. Esistono molti plugin che fanno proprio questo. Provate a cercare Lockdown WP Admin o Itheme Security ma state attenti a non “chiudervi fuori di casa”

6. Scegliete sempre un hosting affidabile

L’hosting per WordPress è fondamentale: ci sono molte teorie di pensiero su cosa sia meglio. In realtà è bene che il fornitore dello spazio web sia un’azienda con una robusta esperienza (o si affidi a Webfarm molto affidabili). Questo significa firewall, backup, controlli sui prodotti installati, accessi al server ben monitorati (anche da remoto) etc.. Anche in questo caso il suggerimento è quello di non scegliere il “primo prezzo” e soprattutto di affidarsi ad aziende che possano offrire un livello di customer care molto elevato (telefono, email, ticket con tempi di risposta brevi e certi)

7. Controllate il vostro PC

Sappiate che gli attacchi possono provenire anche da utenti che accededono a WordPress o allo spazio web usando le credenziali giuste. Questo accade perché computer non adegatamente protetti con antivirus e antimalware, una volta contagiati diventano vere e proprie miniere di informazioni per gli hacker. Per questo oltre a tutte le attenzioni del caso verso WordPress dovete controllate sempre anche il vostro PC.

8. Sicurezza delle password

Un altro modo molto semplice che usano gli hacker per accedere a WordPress è usare combinazioni di username e password molto semplici. Come prima regole non usate mail “admin” come nome utente. Per quanto riguarda la password, anche senza arrivare alle stringhe impossibili che le ultime versioni di WordPress propongono, cerchiamo sempre di usare almeno 8/10 caratteri, maiuscole e minuscole, lettere e cifre e magari anche un carattere speciale. Inoltre non lasciamo “a vita” le nostre password: ogni tanto cambiarle non può che essere utile al fine della sicurezza.

untitled

OK, però il mio sito è stato comunque compromesso: cosa posso fare ora?

La soluzione più semplice e più efficacie è: fai una copia del sito compromesso, dopo di che cancella il database, cambia le password di Mysql, cancella i file sul server, cambia le password dell’FTP, ripristina una versione sicuramente funzionante e modifica la password dell’utente amministratore. Sembra una operazione lunga, ma con un minimo di dimestichezza di può completare in pochi minuti. La cosa migliore sarebbe addirittura che a farlo sia webagency che vi ha realizzato il sito web.

Nella vita comune invece, può succedere di non avere una copia di backup del nostro sito web. Che fare allora?
Purtroppo in questo caso non esistono soluzioni “si fortuna” funzionanti al 100%. Una azienda seria che debba rispristinare un sito web, dovrebbe prima effettuare delle analisi per capire il modo in cui l’attacco è stato portato, cercare tutti i files compromessi, ripulirli, controllare a fondo il database e solo dopo tempo (e costi) riuscire a riconsegnarvi un sito web pulito e funzionante.

Una soluzione più semplice (ripeto, non garantita) potrebbe essere quella di ripristinare il “cuore” di WordPress, il tema ed i plugin, sperando che il problema non si sia insinuato nel database o in altri posti più “inaccessibili”.

Per prima cosa effettuate un backup di tutto (mysql e sito), scaricare l’ultima versione di WordPress; cancellare dal server web tutt i files e procedete a piccoli step.

Scompattate sul vostro PC la cartella di WordPress, su cui dovrete fare alcune operazioni

  1. Rinominate il file wp-config-sample.php presente nella cartella di WordPress in wp-config.php. Aprite il file wp-config.php dal backup compromesso e copiate nel file pulito queste quatro righe:
    define(‘DB_NAME’, ‘xxxxxx);
    /** MySQL database username */
    define(‘DB_USER’, ‘xxxxxx’);
    /** MySQL database password */
    define(‘DB_PASSWORD’, ‘xxxx’);
    /** MySQL hostname */
    define(‘DB_HOST’, ‘xxxx’);
  2. Scaricate nuovamente il vostro tema e scompattatelo nella cartella /wp-content/themes di WordPress
  3. Scaricate dal sito ufficiale tutti i plugin usati, e scompattateli in /wp-content/plugin di WordPress
  4. Copiate ora tutto il contenuto della cartella /wp-content/upload dalla copia compromessa alla cartella di WordPress
  5. Se nella cartella della copia /wp-content/themes della copia compromessa fosse presente un tema figlio, copiatelo nella cartella di WordPress
  6. Caricate tutto online

Se (e ripeto SE) il problema non ha interessato il Database, il tema figlio o altro di molto complesso, il sito riprenderà vita e sarà pulito dall’attacco. Questa strategia a volte funziona, altre volte rappresenta solo una perdita di tempo, ovvio che se questo fosse il vostro caso, non prendetevela con me, ma con chi non vi ha fatto i backup….

 

About the author

Lavoro da Piramedia orami dal lontano 2003. In tutti questi anni credo di aver realizzato "qualche" migliaia di siti web, passando dall'html al Flash, da Javascript al Mootools fino al Jquery, scrivendo in ASP, .Net, Php, usando Joomla, Wordpress, Drupal, Prestashop, vedendo nascere i Social Network, Adsense e Adwords ma sempre con un unico obiettivo: creare siti facilmente navigabili e che siano sulla "maledetta" prima pagina di Google...

Related

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: