Quando si ha il sospetto di una intromissione o si rilevano file di dubbia provenienza o malevoli, è necessario procedere alla bonifica del CMS seguendo la guida sotto riportata.
Per prevenire e rilevare eventuali attacchi e compromissioni si consiglia di visionare la
guida dedicata.
Una volta accertata la compromissione è possibile
scegliere tra due soluzioni per ristabilire la corretta funzionalità del sito:
- ripristinare una copia di backup pulita.
- eseguire le operazioni di bonifica nel caso in cui non si abbiano a disposizione i dati sopra indicati.
Di seguito sono riportati i passaggi da effettuare in ordine per ripristinare il sito nel caso in cui non si disponga di una copia del sito non compromessa:
- operazioni preliminari necessarie:
- annotare la versione di WordPress in uso; nel caso in cui sia inibito l'accesso al pannello di amministrazione di WordPress consultare la guida dedicata;
- annotare il tema usato e l'elenco dei plugin attivi; nel caso in cui sia inibito l'accesso al pannello di amministrazione di WordPress utilizzare il presente script.
ATTENZIONE: se visualizzando il sito compare il messaggio "sito web in manutenzione" non è possibile eseguire lo script ma è possibile recuperare le informazioni direttamente dal database seguendo le operazioni seguenti:
Di seguito i passaggi da eseguire:
- prima di tutto individuare il database utilizzato dalla propria installazione di WordPress ed accedere al pannello mysql.aruba.it con i dati recuperati;
- per individuare il tema, seguire i passaggi indicati nella guida dedicata;
- per individuare i plugins attivi, una volta fatto accesso al pannello mysql.aruba.it, cliccare su SQL e inserire la query sottostante (avendo cura di sostituire "prefix" con il valore di "$table_prefix" indicato nel file wp-config.php) e cliccare su Esegui:
SELECT option_value FROM prefix_options where option_name LIKE 'active_plugins';
La colonna option_value è l'elenco dei plugins attivi e, tra i vari parametri, sono elencati i nomi dei plugins.
- Accedere via FTP al proprio spazio web e scaricare tutto il contenuto nel proprio PC locale.
- Effettuare il reset dello spazio web seguendo la guida dedicata.
- Scaricare la versione di WordPress utilizzata dal sito ufficiale; se la versione utilizzata è obsoleta, scaricarla dal seguente link https://wordpress.org/news/category/releases/ in questo modo si ha la certezza di utilizzare una versione "pulita".
- Scaricare il tema ed i plugin utilizzati dal sito (l'elenco che è rilevato con le operazioni preliminari); se il tema non è presente nell'elenco ufficiale WordPress, richiedere il pacchetto al venditore dello stesso. Per quanto riguarda i plugin si consiglia di fare riferimento al sito ufficiale.
- Pubblicare sullo spazio web, tramite FTP, la versione di WordPress appena scaricata (punto 4).
- Modificare il file wp-config-sample.php sullo spazio web soltanto con i parametri del database utilizzato in precedenza. Il file può essere modificato tramite FTP o File Manager ed i parametri sono recuperabili dal backup eseguito al punto 1.
I campi che, all'interno del file identificano il database, sono i seguenti:
/** Il nome del database di WordPress */
define('DB_NAME', 'Sql123456_1');
/** Nome utente del database MySQL */
define('DB_USER', 'Sql123456');
/** Password del database MySQL */
define('DB_PASSWORD', '123456');
$table_prefix='wp_';
Una volta impostati i dati di connessione al database, rinominare il file in wp-config.php
È molto importante non utilizzare il wp-config.php dal backup ma crearlo nuovo come da istruzioni sopra modificando soltanto i parametri necessari in modo da mantenerlo pulito ed evitare di ripubblicare eventuali malware.
- Pubblicare sullo spazio web, tramite FTP, la cartella "wp-content/uploads" presa dal backup eseguito al punto 1.
Questa cartella contiene tutte le immagini ed eventuali file .pdf inseriti dall'utente ed è l'unica che deve essere recuperata dal backup dopo aver verificato accuratamente che non ci siano file con estensione .php che potrebbero essere malevoli.
Questa operazione consente alle pagine del sito di avere a disposizione le immagini e i contenuti creati prima dell'attacco.
- Pubblicare sullo spazio web, tramite FTP, all'interno della cartella "wp-content/themes" il tema originale scaricato al punto 5.
- Pubblicare sullo spazio web, tramite FTP, all'interno della cartella "wp-content/plugins" i plugins originali scaricati al punto 5.
- Eseguire un test di funzionalità: verificare che il sito venga correttamente visualizzato e provare l'accesso al pannello di controllo di WordPress.
Nel caso in cui non si utilizzi l'ultima versione di WordPress è consigliabile eseguire l'upgrade, in quando le versioni più recenti risolvono problemi di vulnerabilità risultando più sicure e performanti.
- È consigliato eseguire il cambio della password associata allo username (del tipo [email protected]) seguendo la guida dedicata ed cambio della password dell'utente amministratore di WordPress seguendo i passaggi:
- accedere al pannello di amministrazione di WordPress e quindi alla Bacheca;
- cliccare su Utenti --> Il tuo profilo;
- scorrere in basso fino a trovare la voce Nuova password;
- cliccare sul bottone Genera password e inserire la nuova password.
Si consiglia inoltre di installare una plugin di autenticazione a due fattori per l'accesso al pannello di amministrazione di WordPress (ad esempio Wordfence Login Security).
È importante non caricare nessun file del backup locale fatto al punto 1 ad esclusione della cartella indicata al punto 8.