Hai un sito wordpress che è stato compromesso a causa di un problema di sicurezza?

Può capitare, purtroppo, che qualche falla venga fuori quando si utilizzano siti dinamici. Abbiamo a che fare con documenti che vengono caricati e creati “al volo” dall’interpretazione di decine di migliaia di files e può accadere che qualcosa vada storto e si lasci qualche “porta aperta” ad hacker e cracker!

Purtroppo gli aggiornamenti di sicurezza non sempre tolgono i problemi ma spesso ne aggiungono di nuovi. È ciò che è accaduto recentemente a WordPress nella versione 4.7.1 che, fortunatamente, è stata corretta velocemente con la 4.7.2.

Come ci si accorge che il nostro sito è compromesso?

Normalmente non ci si accorge facilmente che il sito è stato colpito da un malintenzionato. Il codice è molto trasparente in modo che tutto avvenga di soppiatto. Spesso ci avvisano i service provider, se utilizzano giornalmente software di sicurezza tipo maldetect oppure lo stesso Google tramite il servizio Search Console se il nostro sito è registrato.

Esempio di infezione php injectinoUn altro modo per capire se il nostro sito è stato compromesso è controllare, tramite FTP, se si trovano strani files o cartelle a noi sconosciute e rimuoverli prontamente. Su alcuni siti ho trovato un file chiamato mother.phpnote.php e cartelle con nomi strani tipo so0fbqihyio. Anche il file index.php viene spesso modificato. Basterà dare un occhio alla dimensione i questi files che spesso superano i 100kb. Qui a fianco un esempio pratico di come si presenta il contenuto di un file infetto.

Non posso fare l’elenco dei files malevoli che ho incontrato in questi giorni ma sono molti. Il file note.php, addirittura, crea cartelle con al loro interno contenuti di spam di tutti i tipi: dal porno alla pubblicità di materiale medicinale illegale.

Ancora una volta ci può venire in aiuto la consultazione del log di apache (o di qualsiasi altro server web in uso) nel quale possiamo riscontrare accessi a file strani.

Come ripristinare wordpress?

Prima di procedere consiglio di modificare l’index del sito mettendo un bel messaggio di Lavori in corso.

Per ripristinare una installazione di WordPress è necessario, prima di tutto, avere a portata di mano un backup dei contenuti e, comunque, l’ideale è collegarsi in FTP al proprio server e farsi una copia integrale, in locale, dell’installazione compromessa.

Durante il download dell’intero sito, che impiegherà molto tempo, è necessario ricreare, in una nuova cartella locale, il sito partendo dai sorgenti puliti che si possono scaricare in rete.

Scaricare quindi WordPress dal sito ufficiale e tutti i plug-in ed il tema di cui necessitiamo.

Decomprimere tutto in locale: i plug-in andranno decompressi dentro /wp-content/plugin e il tema dentro alla cartella /wp-content/themes.

Quando il programma di collegamento FTP avrà terminato il trasferimento di tutti i files il passo successivo è cancellare l’intera installazione remota. Assicuratevi sempre che il contenuto in locale, che abbiamo appena scaricato, sia completo.

Anche questa operazione durerà un bel po’ di minuti, purtroppo, ma nel frattempo possiamo andare a controllare il contenuto dei files appena scaricati dal sito compromesso e vedere se ci sono cose strane all’interno della cartella /wp-content/uploads ed eliminare ciò che non conosciamo. Solitamente li dentro non ho mai trovato nulla di particolarmente pericoloso ma meglio controllare bene.

A controllo effettuato copiare l’intera cartella nel nuovo /wp-content/uploads.

L’ultima operazione da effettuare è modificare il file /wp-config-sample.php con i dati di accesso al database MySql che troviamo nella copia locale del sito infetto nel file /wp-config.php. Il file risultante dovrà essere salvato con il nome /wp-config.php.

…dopo la pausa caffè…

Sicuramente avrete avuto tempo di prendervi un bel caffè, che fa sicuramente bene in questi frangenti.

FTP ha terminato di cancellare tutta la vecchia installazione? Bene…

Ora non resta che ricreare on-line la cartella di wordpress con lo stesso nome che aveva precedentemente ed eseguire l’upload di tutto il sito nuovo.

Solitamente, al termine delle operazioni di trasferimento, il sito tornerà a funzionare.

È bene controllare, sempre e comunque, che non ci siano tracce di file e cartelle strane in tutto il resto del sito.

Ripristinare il file index.php che punti all’installazione di wordpress.

Plug-in per la sicurezza

Dopo aver ripristinato un sito wordpress la cosa ideale da fare è installare alcuni plug-in per rendere più sicura, in futuro, la propria installazione.

Personalmente ho optato per la soluzione WordfenceNinjaFirewall che, se ben configurati, permettono di tenere sotto controllo gli accessi e scannare (scansionare? scandire? boh!!) i files alla ricerca di malware o modifiche.

Wordfence, tra le varie possibilità, permette di controllare il contenuto dei files di wordpress con quelli originali pubblicati sul sito wordpress.org. Nel caso in cui ne trovasse alcuni che non esistono negli archivi ufficiali o se li trovasse modificati nel contenuto, verrà notificata la possibilità di cancellare o sistemare i file in questione.

Tenere sempre aggiornati i temi, i plug-in ed il motore stesso di WordPress permette di stare sempre attenti agli attacchi malevoli… ma non sempre!!

Quindi: occhi aperti e, ogni tanto, diamo uno sguardo veloce ai log di sistema.