Quando scopri che un sito WordPress è stato compromesso, la tentazione è di fare tutto in una volta: cancellare i file malevoli, cambiare tutte le password, lanciare uno scanner, ripristinare da un backup, chiamare l’hosting. Eseguite nell’ordine sbagliato, queste azioni possono distruggere le prove che ti servono per trovare il punto di ingresso, lasciare l’aggressore ancora sul server e rendere il ripristino più difficile del necessario. Questo articolo descrive l’ordine delle operazioni che seguiamo nelle prime 24 ore dopo una compromissione confermata di WordPress.
Ora 0: conferma la compromissione
Prima di attivare una risposta d’emergenza, assicurati che ci sia davvero una compromissione. Alcuni sintomi hanno spiegazioni innocue. Un nuovo utente amministratore potrebbe essere un collega che ha dimenticato di dirlo. Un file del tema modificato potrebbe essere una modifica in sospeso di uno sviluppatore. Un avviso in un plugin di sicurezza potrebbe essere un falso positivo.
Controlla prima i segnali più forti. File nella root del documento che non dovrebbero esserci. URL indicizzati in Search Console che non corrispondono a nulla del tuo sito. File del core di WordPress modificati. Connessioni in uscita verso destinazioni sospette. Avvisi del browser sull’URL. Confermato uno solo di questi, hai un incidente.
Ora 1: scatta un’istantanea forense
Questo è il passaggio che la maggior parte delle persone salta e che più spesso rimpiange in seguito. Prima di cambiare qualsiasi cosa, esegui un backup completo dello stato compromesso attuale. File, database, tutto. Conservalo fuori sede, in un luogo che non verrà toccato. Questa è la tua istantanea forense. Senza di essa, non riuscirai a risalire a come è entrato l’aggressore, e senza quello lo stesso attacco si ripeterà.
L’istantanea non serve per il ripristino. Serve per l’analisi. Tienila separata dai tuoi backup puliti.
Ora 2: comunica, ma non ancora pubblicamente
Avvisa le persone che devono saperlo. Il team di sicurezza del tuo provider di hosting, soprattutto se gestisce infrastruttura condivisa. Il tuo sviluppatore o la tua agenzia. Internamente, chiunque abbia accesso da amministratore. I clienti e il pubblico possono aspettare finché non hai i fatti e una correzione chiara in corso. La comunicazione pubblica durante la fase di caos tende a essere errata e crea più lavoro di quanto ne risolva.
Ora 3: contieni il danno
Ferma l’emorragia senza cancellare le prove. Se l’aggressore ha deturpato visibilmente delle pagine o sta distribuendo malware, metti il sito temporaneamente offline. La maggior parte degli hosting dispone di una modalità di manutenzione o di una pagina «prossimamente» attivabile in pochi secondi. Questo protegge i visitatori senza sovrascrivere alcun file.
Se sono compromesse pagine specifiche ma il resto del sito funziona, puoi aggirarle con reindirizzamenti o blocchi temporanei a livello di hosting. Evita di modificare i file a meno che non sia indispensabile.
Dalle 4 alle 6 ore: ruota tutto
Dai per scontato che ogni credenziale che l’aggressore potrebbe aver toccato sia compromessa. Cambiale tutte:
- Le password di amministratore di WordPress.
- La password del pannello di controllo dell’hosting.
- Le credenziali SFTP e SSH.
- La password del database, poi aggiorna wp-config.php con il nuovo valore tramite la console dell’hosting anziché sul sito in produzione.
- Qualsiasi chiave API memorizzata nei plugin per email, pagamenti, analytics o altri servizi.
- I salt e le chiavi di WordPress in wp-config.php.
Ruotare i salt e le chiavi invalida ogni sessione WordPress esistente, il che espelle sia te sia qualsiasi aggressore. Questo è essenziale. Senza di esso, un aggressore che ha catturato un cookie di sessione potrebbe mantenere l’accesso anche dopo aver cambiato tutte le password.
Dalle 6 alle 12 ore: individua il punto di ingresso
Ora usa l’istantanea forense per capire come è entrato l’aggressore. Esamina le modifiche recenti ai file nella root del documento. Esamina i log di accesso dell’hosting alla ricerca di richieste POST insolite verso wp-admin/admin-ajax.php, wp-login.php, xmlrpc.php o endpoint specifici di plugin. Esamina l’elenco dei plugin alla ricerca di qualsiasi plugin con una vulnerabilità nota per la versione installata.
Nel caso di studio di Sydney che abbiamo citato in articoli precedenti, il punto di ingresso era quasi certamente un plugin di gestione file obsoleto, con una lunga storia di vulnerabilità di esecuzione di codice da remoto. Individuarlo ha fatto la differenza tra correggere il sintomo e correggere la causa.
Senza trovare il punto di ingresso, l’aggressore tornerà nel giro di giorni, spesso di ore.
Dalle 12 alle 18 ore: pulisci in modo sistematico
Con il punto di ingresso noto e l’istantanea forense conservata, inizia la pulizia. Rimuovi ogni file malevolo. Confronta i file del core di WordPress con le versioni ufficiali e sostituisci tutto ciò che è stato modificato. Controlla temi e plugin allo stesso modo. Verifica gli utenti e rimuovi qualsiasi account sconosciuto. Esamina il contenuto degli articoli alla ricerca di link o script iniettati. Esamina il database alla ricerca di chiavi di opzioni di malware note e di voci sospette in wp_options.
Alcune compromissioni sono abbastanza estese da rendere la risposta giusta il ripristino da un backup pulito antecedente all’incidente, riapplicando solo le modifiche ai contenuti verificate da allora. Altre sono abbastanza circoscritte da rendere più rapida una pulizia chirurgica.
Dalle 18 alle 24 ore: chiudi la porta
Correggi la vulnerabilità che ha fatto entrare l’aggressore. Se era un plugin obsoleto, aggiornalo o rimuovilo. Se era una password debole, la rotazione l’ha già risolto, ma attiva la 2FA perché non possa succedere di nuovo. Se era un cookie di sessione rubato, hai già ruotato chiavi e salt. Se era un’email di phishing che ha catturato un accesso amministratore, forma il team e verifica l’attività di accesso alla ricerca di altri account compromessi.
Applica un irrobustimento aggiuntivo che avrebbe impedito l’attacco:
- Blocca l’esecuzione di PHP nella cartella degli upload.
- Limita l’accesso a xmlrpc.php.
- Attiva limiti ai tentativi di accesso e la 2FA su ogni account amministratore.
- Passa a un plugin di sicurezza che monitori la comparsa di nuovi file in posizioni inattese.
Le 48 ore successive
Una volta che il sito è pulito, il lavoro non è finito. Esegui una nuova scansione malware con almeno due strumenti affidabili per un riscontro incrociato. Invia una richiesta di riesame in Google Search Console se è stata applicata un’azione manuale. Comunica con i clienti se qualche dato potrebbe essere stato esposto. Documenta cosa è successo, la cronologia, il punto di ingresso e le modifiche apportate. Il documento è destinato al tuo team e a qualsiasi audit futuro.
Hai bisogno di aiuto?
Se il tuo sito WordPress è attualmente compromesso o sospetti che possa esserlo, è disponibile una risposta agli incidenti d’emergenza. Mettiti subito in contatto e ti guideremo attraverso i passaggi sopra in tempo reale: prima è la risposta, minore è il danno. Parlane con il team di Defyn.



