Come recuperare un sito WordPress hackerato

Sito malevolo, come risolvere questo problema, eliminare il malware

Sito malevolo a causa di un malware!

Trovare il sito WordPress hackerato è ciò che ogni amministratore di un sito WordPress non vorrebbe mai.

In questa pagina ti propongo un piano pratico, passo-passo, per identificare l’attacco, rimuovere il malware, ripristinare il sito e ridurre il rischio che succeda di nuovo.

Checklist di recupero rapido (sintetica)

  1. Backup completo (file + DB).
  2. Metti il sito offline / maintenance.
  3. Cambia tutte le password sensibili.
  4. Elimina utenti sospetti.
  5. Scansiona e identifica file malevoli.
  6. Reinstalla core, plugin e temi da sorgenti pulite.
  7. Pulisci il database da script/iframe.
  8. Aggiorna sali (keys) in wp-config.php.
  9. Controlla e correggi permessi file.
  10. Abilita 2FA e limiti di login.
  11. Ripristina online e monitora.
  12. Implementa backup esterni e scansioni automatiche.

Mantieni la calma

Prima di tutto, mantieni la calma.

Crea subito una copia di backup di tutto il sito, pur sapendo che è infetto.

Installa ed attiva il plugin UpdraftPlus.

Vai su UpdraftPlus e clicca su Esegui backup adesso.

Il backup potrebbe contenere il malware ma serve come “fotografia” dello stato attuale.

Operazioni affrettate possono eliminare tracce utili per capire cosa è successo o rendere il recupero più difficile.

Isola il sito

Metti il sito in modalità manutenzione.

Puoi usare il plugin Under Contruction.

Scansione rapida (file e database)

Usa strumenti di scansione malware per WordPres.

Installa ed attiva il plugin Wordfence.

Vai su Wordfence > Scan.

Clicca sul pulsante Start new scan per avviare una scansione del sito.

wordfence scan

Terminata la scansione del sito a fondo pagina troverai i problemi rilevati.

Scan wordfence results

Questo registro mostra tutti i problemi rilevati in ordine di priorità, a seconda di quanto sono gravi.

Oltre a Wordfence ci sono altri plugin di sicurezza che permettono di limitare al minimo questi attacchi da parte degli hacker.

Forza il reset password

Forza il reset password degli utenti amministratori.

Puoi usare il plugin Emergency Password Reset che invia a tutti gli utenti un link per resettare la password o forza il reset.

Rimuovi utenti sospetti

Vai su Utenti > Tutti gli utenti.

Controlla se sono stati creati nuovi utenti, specialmente utenti amministratore.

Elimina gli utenti che non ti aspetti di avere.

Scansione manuale

Cerca file PHP o file con timestamp insoliti nelle cartelle wp-content/uploads/.

Nel database, tramite phpMyAdmin, cerca script o iframe nelle tabelle wp_posts:

SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%<iframe%' OR post_content LIKE '%<script%';

Controlla i log e ricostruisci la timeline

Analizza i log server (access.log, error.log) per capire come e quando è avvenuta l’intrusione.

Dovresti cercare:

  • IP sospetti
  • User agent insoliti
  • Richieste POST verso wp-login.php o admin-ajax.php

Questa analisi aiuta a capire il vettore d’attacco (brute force, plugin vulnerabile, credenziali compromesse), così da capire dove si trova la falla di sicurezza e capire come chiuderla.

Rimuovi backdoor e file sospetti

Ricontrolla se sono presenti file sospetti.

Rimuovi file .php in wp-content/uploads/.

Controlla file .htaccess se ha qualche redirect non impostato da te o se ha delle regole malevole.

Ripristina core, plugin e temi da sorgenti pulite

Sostituisci i file con copie ufficiali pulite.

Reinstalla i plugin e i temi da repository ufficiali o da backup puliti (sei sicuro che siano puliti?).

Ma soprattutto, non usare copie pirata o nulled, che spesso contengono malware.

Per il core di WordPress:

  • Elimina le cartelle wp-admin, wp-includes e i file presenti nella root di WP dal server.
  • Non eliminare wp-config.php e .htaccess.
  • Scarica una copia pulita di WordPress (core).
  • Copia e sovrascrivi i file core, escludendo escludendo wp-content.

Conserva la cartella wp-content/uploads/ ma scansionala a fondo per file PHP o file sospetti.

Normalmente in wp-content/uploads/ dovrebbero esserci solo immagini, PDF e media.

Per il tema:

  • Elimina la cartella del tema
  • Scarica una copia pulita del tema
  • Installa questa copia pulita

Per i plugin:

  • Segnati i plugin attivi
  • Elimina le cartelle dei plugin
  • Scarica una copia pulita dei plugin
  • Installa queste copie pulite

Elimina i plugin che non usi.

Pulisci il database

Cerca ed elimina opzioni sospette nella tabella wp_options (voci con nomi strani o contenuti di script).

SELECT option_name, option_value FROM wp_options WHERE option_value LIKE '%<script%' OR option_value LIKE '%<iframe%' LIMIT 50;

Resetta credenziali

Cambia tutte le password sensibili:

  • account hosting
  • FTP/SFTP
  • database
  • email
  • account FTP
  • pannello di controllo

Cambia le chiavi di sicurezza (salts)

Nel wp-config.php genera nuove AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY e sostituiscile.

Per generare nuove chiavi, usa il servizio ufficiale di WordPress.

Copia le chiavi ed incollale nel wp-config.php al posto di quelle vecchie.

Aggiorna tutto

Ora aggiorna WordPress, plugin e temi all’ultima versione.

Hardening

Riduci le superfici di vulnerabilità con questi passaggi.

Guarda come migliorare la sicurezza in WordPress.

Disabilita plugin non necessari

Disabilita plugin non necessari e poi eliminali.

Permessi dei file

Imposta permessi file corretti (es. 644 per file, 755 per cartelle).

Limitazioni di accesso cartella uploads

Considera limitazioni di accesso: impedisci l’esecuzione php nella cartella wp-content/uploads/ via .htaccess o tramite configurazione server.

Esempio .htaccess (diverso da quello della root) per bloccare PHP in wp-content/uploads/:

# blocca l'esecuzione di file php nella cartella uploads
<FilesMatch "\.php$">
    Order allow,deny
    Deny from all
</FilesMatch>

Attenzione: assicurati che il file .htaccess sia nella directory wp-content/uploads/ e non nella root del sito.

Autenticazione a due fattori

Abilita autenticazione a due fattori (2FA) per account admin. Si può fare con il plugin Wordfence > Login security.

Usa Google Authenticator per scansionare il QR Code, leggere il codice ed immetterlo nel campo codice a destra.

Poi clicca su Activate per attivare il login a due fattori per il tuo utente (admin).

Cambia URL di login

Cambia URL di login.

Ad esempio puoi impostare come url di accesso /login invece del classico /wp-login.php.

Puoi usare il plugin WPS Hide Login.

Limita tentativi di login

Limita i tentativi di login (rate limiting) usando Wordfence.

Vai su Wordfence > All options e alla sezione Brute force protection puoi impostare dopo quanti tentativi di login l’utente verrà bloccato temporaneamente:

Usa HTTPS

Installa un certificato SSL per usare il protocollo HTTPS sul sito.

Normalmente il certificato è disponibile gratuitamente con Let’s Encrypt.

Guarda dal pannello di controllo del tuo hosting.

Contatta l’assistenza dell’hosting

Contatta l’assistenza dell’hosting per chiedere una verifica.

Riporta online con cautela

Quando sei convinto che il sito sia stato pulito al 100%, puoi riportare il sito online togliendo la modalità manutenzione.

Monitora

Vai su Sucuri Check per fare un controllo del sito.

sucuri check

Inserisci il tuo sito e clicca su Submit.

Sucuri farà un controllo per i malware conosciuti, virus, errori del sito, codice malevolo e l’eventuale stato di blacklist.

Poi attiva le scansioni periodiche del plugin Wordfence andando su Wordfence > Scan > Scan Options and Scheduling e seleziona Enabled.

scan wordfence scheduling

Imposta anche dei backup periodici di tutto il sito.

Controlla Il Google Search Console

Accedi al tuo Google Search Console e vai alla sezione Problemi di sicurezza della proprietà del sito.

Dovresti avere Nessun problema rilevato.

google search conole problemi sito

Se invece ti segnala qualche problema, dovrai controllare i problemi uno per uno e correggerli.

Quando tutti i problemi elencati nel report saranno corretti in tutte le pagine, seleziona Richiedi esame nel report Problemi di sicurezza.

Nella richiesta di riconsiderazione, descrivi le correzioni apportate.

La maggior parte degli esami per la riconsiderazione può richiedere diversi giorni o settimane.

Comunicazione e obblighi legali / reputazionali

Se l’attacco riguarda informazioni personali, valuta la necessità di avvisare utenti interessati subito (in base a obblighi legali, PR, GDPR).

Prepara un breve messaggio per utenti/clienti: cosa è successo, quali dati potrebbero essere interessati, cosa state facendo e cosa dovrebbero fare (es. cambiare password).

Esempio breve per utenti:

Abbiamo rilevato un accesso non autorizzato al nostro sito il [data].

Abbiamo isolato il problema, rimosso il contenuto malevolo e stiamo rafforzando la sicurezza.

Ti consigliamo di cambiare la password associata al tuo account.

Quando chiamare aiuto professionale

Probabilmente chiamare un aiuto professionale è sempre la scelta migliore.

Più che altro per assicurarsi che siano state chiuse tutte le backdoor e ridurre al massimo le probabilità che l’evento si ripeta.

Cos’è il Malware

Il malware (abbreviazione di malicious software, cioè “software dannoso”) è qualsiasi programma o codice creato con l’obiettivo di danneggiare, infettare o sfruttare computer, server, reti o siti web.

Per eliminare il malware, basta eliminare il codice che è stato aggiunto.

Anni fa, in un mio sito ho trovato questo malware:

codice malware sito malevolo bloccato da google

Nel mio caso l’ho trovato sulle pagine header.php e footer.php del tema.

Sponsor

Vhosting
themeforest