Se il tuo sito WordPress è stato hackerato e ora mostra spam farmaceutico, reindirizza i visitatori verso pagine sgradevoli o è stato segnalato da Google come ingannevole, parti da qui e non da un plugin. L’istinto è installare uno scanner di sicurezza e premere il pulsante di pulizia. Così si rimuove il sintomo visibile e si lascia intatta la via d’ingresso, ed è per questo che tanti siti vengono reinfettati nel giro di pochi giorni e i loro proprietari concludono che WordPress sia semplicemente insicuro.

Non lo è. Quasi ogni compromissione entra da un plugin non aggiornato, e quasi ogni pulizia fallita nasce dal fatto che qualcuno ha rimosso il malware ma non l’accesso.

La prima ora: Metti il sito offline o in modalità manutenzione. Cambia la password del pannello di hosting, quella del database, tutte le password degli amministratori e le credenziali FTP o SSH. Non ripristinare ancora un backup e non cancellare ancora nulla. Ti serve lo stato attuale per capire come sono entrati, e un ripristino distrugge proprio quelle tracce mentre con ogni probabilità rimette al suo posto la stessa vulnerabilità.


Cosa fare nella prima ora

Qui l’ordine conta, e gli errori più comuni nascono tutti dalla fretta.

Metti giù il sito. Una pagina di manutenzione o un blocco temporaneo a livello di hosting o CDN protegge i visitatori e impedisce che il sito continui a distribuire malware mentre lavori. Se il sito serve reindirizzamenti malevoli, ogni ora in più online aggrava il danno reputazionale.

Ruota tutte le credenziali, non solo la password dell’amministratore WordPress. Significa pannello di hosting, utente del database, chiavi FTP e SSH e qualsiasi chiave API conservata nella configurazione del sito. Gli attaccanti creano abitualmente un secondo account amministratore o lasciano dietro di sé una chiave, quindi cambiare una sola password non serve a niente.

Conserva le prove prima di modificare qualsiasi cosa. Fai una copia completa dei file e del database così come sono adesso, e scarica i log di accesso del server relativi almeno agli ultimi trenta giorni. Sono quei log a rivelarti il punto di ingresso, e molti hosting li ruotano nell’arco di pochi giorni.

Solo a quel punto mettiti a capire cosa è successo.


Come il tuo sito WordPress è stato hackerato: trovare il punto di ingresso

Pulire senza diagnosi è il motivo per cui la reinfezione è così comune. Quattro verifiche individuano la causa nella maggior parte dei casi.

Confronta le versioni di plugin e tema con le vulnerabilità note. I plugin non aggiornati sono di gran lunga la causa principale. Annota ogni plugin, la sua versione e se esiste una release di sicurezza che non hai applicato. Presta particolare attenzione a tutto ciò che ha una licenza scaduta, perché i plugin a pagamento smettono di ricevere aggiornamenti alla scadenza pur continuando a risultare installati e attivi.

Leggi i log di accesso intorno al primo segnale di problemi. Cerchi richieste POST verso percorsi insoliti, richieste a file che non dovrebbero esistere e un’ondata di attività da un singolo indirizzo poco prima del defacement. Di solito la risposta è lì.

Cerca i file che non dovrebbero esserci. File PHP modificati di recente nella cartella degli upload sono un segnale forte, perché lì dentro non dovrebbe mai essere eseguito nulla. Lo stesso vale per file con nomi costruiti per sembrare plausibili e per le modifiche a wp-config.php o .htaccess.

Controlla gli account amministratore aggiunti e le attività pianificate. Gli attaccanti creano spesso un utente da cui rientrare e registrano un’attività pianificata che reinstalla il codice malevolo dopo la tua pulizia. Un sito che si reinfetta con cadenza regolare nasconde quasi sempre un’attività pianificata che nessuno è andato a cercare.


Perché « basta ripristinare un backup » di solito non funziona

È il primo suggerimento che ricevono tutti, ed è corretto circa una volta su tre.

Il ripristino funziona quando conosci la data della compromissione, hai un backup precedente e hai individuato e corretto la vulnerabilità. Senza tutti e tre fallisce in modo prevedibile. Ripristina un backup della settimana scorsa e potresti ripristinare un sito già compromesso da due settimane e semplicemente rimasto silenzioso. Ripristina senza aggiornare il plugin vulnerabile e hai appena ricostruito la porta da cui ti hanno chiuso fuori.

C’è poi il problema di quanto ti costa un ripristino. Su un negozio o su un sito con abbonamenti, tornare indietro significa perdere ogni ordine, ogni registrazione e ogni commento successivi al backup. Spesso è inaccettabile, e questo spinge verso la pulizia del sito in produzione invece della sua sostituzione.

L’approccio affidabile è la ricostruzione, non il ripristino. Installa il core di WordPress da zero, installa copie pulite di ogni plugin e tema dalle fonti ufficiali e non dal sito compromesso, e porta con te soltanto la cartella degli upload e il database, entrambi ispezionati prima. Questo garantisce che il codice eseguibile sia pulito, cosa che la pulizia file per file non ottiene mai del tutto.


Pulire il database

È nel database che le pulizie incomplete lasciano qualcosa indietro, perché gli scanner si concentrano sui file.

Il contenuto iniettato compare di solito nel testo degli articoli sotto forma di link nascosti o iframe, nella tabella delle opzioni dove finiscono gli script di reindirizzamento, e nei metadati degli utenti. Cerca tag script, blocchi codificati in base64 e domini sconosciuti nelle tabelle dei contenuti e delle opzioni.

Controlla a mano la tabella degli utenti. Guarda ogni account con privilegi di amministratore, conferma di riconoscerli tutti, poi confronta le date di registrazione con i tuoi registri.

Guarda le attività pianificate, che in WordPress vivono anch’esse nella tabella delle opzioni. Una voce che punta a una funzione che non riconosci è il modo in cui un sito si reinfetta da solo a intervalli regolari, molto tempo dopo che i file sono stati puliti.

Fai particolare attenzione a tutto ciò che è codificato. Gli attaccanti offuscano il codice proprio perché una ricerca di stringhe evidenti non lo trovi, quindi decodifica tutto ciò che appare sospetto invece di dare per scontato che sia un plugin legittimo a fare qualcosa di ingegnoso.


Rimuovere le segnalazioni e recuperare il posizionamento

Pulire il sito non è la fine, perché gli avvisi restano finché non chiedi una revisione.

Se Google ha segnalato il sito, il rapporto sui problemi di sicurezza in Search Console indica cosa è stato rilevato e consente di chiedere una revisione una volta risolto. Richiedila solo quando il sito è davvero pulito, perché una revisione respinta allunga i tempi.

Verifica se il dominio è finito nelle liste di blocco usate da browser e fornitori di posta. Essere puliti non basta di per sé: ognuna mantiene la propria lista e la propria procedura di rimozione.

Poi guarda i danni. La visibilità nei motori di ricerca di solito si riprende una volta rimossi gli avvisi, ma un sito che ha servito pagine di spam per settimane potrebbe averle fatte indicizzare. Cerca gli URL indicizzati che non sono mai stati tuoi, falli rimuovere e verifica che le versioni pulite vengano scansionate. La nostra guida all’audit di sicurezza del sito web descrive più in dettaglio i passaggi di verifica.


Quanto costa un recupero professionale

I prezzi riflettono le tariffe britanniche tipiche e variano in base a quanto a lungo la compromissione è passata inosservata.

Una pulizia semplice su un sito piccolo scoperto in fretta, con una causa nota, costa in genere da £400 a £1.200 e richiede uno o due giorni. È il caso più comune, quando qualcuno se ne accorge entro una settimana.

Una risposta completa all’incidente, cioè analisi dei log per stabilire punto di ingresso e cronologia, ricostruzione pulita, ispezione del database, rotazione delle credenziali, hardening e rimozione dalle liste di blocco, costa di norma da £1.500 a £5.000. È quanto deve mettere in conto un negozio o un sito che detiene dati dei clienti, perché occorre anche stabilire se qualcuno vi abbia avuto accesso.

I siti compromessi da mesi, o che ospitano più siti sullo stesso account, costano di più, perché la contaminazione incrociata tra siti in hosting condiviso è frequente e ciascuno va controllato.

Se qualcuno potrebbe avere avuto accesso a dati personali, ci sono obblighi che vanno oltre la pulizia tecnica. Il GDPR del Regno Unito impone di notificare l’ICO entro 72 ore da quando si viene a conoscenza di una violazione soggetta a notifica, e quell’orologio parte dalla consapevolezza, non dalla fine della pulizia. Chiedi consulenza presto, non dopo aver finito di rimettere ordine. La nostra guida alla conformità tecnica al GDPR affronta il lato ingegneristico della questione.


Fare in modo che non succeda di nuovo

Recuperare senza irrobustire il sito significa soltanto rimettere a zero il contatore.

La disciplina degli aggiornamenti è tutto. La stragrande maggioranza delle compromissioni sfrutta una vulnerabilità per cui una patch esiste già, quindi la soluzione è una routine che applica rapidamente le release di sicurezza e una regola che rimuove tutto ciò che non è più mantenuto. I plugin a pagamento con licenza scaduta vanno rinnovati o sostituiti, mai lasciati dove sono.

Riduci ciò che può essere eseguito. Nella cartella degli upload nulla deve mai girare come PHP, la modifica dei file dall’interfaccia di amministrazione va disattivata e gli account amministratore devono essere pochi e nominativi.

Aggiungi l’autenticazione a più fattori su ogni account amministratore e limita le richieste all’endpoint di login. La maggior parte degli attacchi alle credenziali è automatizzata e smette di essere praticabile nel momento in cui esiste un secondo fattore.

Infine, esegui backup come si deve e provali. Un backup che non hai mai ripristinato è soltanto un’ipotesi. Conserva più generazioni, perché la più recente potrebbe già contenere la compromissione. La nostra checklist di hardening della sicurezza WordPress illustra la configurazione completa, e la nostra guida all’audit delle prestazioni WordPress tratta quella disciplina sui plugin che, come effetto collaterale, riduce la superficie di attacco.


Fallo pulire come si deve

Mecanik si occupa di audit di sicurezza WordPress e di recupero dopo un incidente: stabilire come è avvenuta la compromissione, ricostruire in modo pulito invece di rattoppare, ispezionare il database e irrobustire il sito perché la stessa via si chiuda alle tue spalle.

Lavoriamo a partire dai log del server e non dall’output di uno scanner, perché uno scanner ti dice cosa riconosce mentre i log ti dicono cosa è successo davvero. Quando il sito tratta dati dei clienti ti diremo anche chiaramente se sembra esserci una violazione da notificare, invece di lasciartelo scoprire più avanti. La manutenzione continuativa passa dal nostro servizio di sviluppo WordPress , in genere più economico di un secondo incidente.

Se il tuo sito è compromesso proprio adesso, mettilo offline, ruota le credenziali, conserva i log e mettiti in contatto.


Post correlati: OWASP Top 10 spiegato per i titolari d’impresa , Checklist audit sicurezza server: cosa viene verificato e Guida all’audit di sicurezza del sito web per le aziende .


Domande frequenti

Cosa devo fare per primo se il mio sito WordPress è stato hackerato? Metti il sito offline, ruota tutte le credenziali comprese quelle di hosting, database, FTP e di ogni account amministratore, e conserva una copia dei file attuali, del database e dei log del server. Non ripristinare un backup e non cancellare file per ora, perché così distruggi le prove che servono a individuare il punto di ingresso.

Perché il mio sito WordPress continua a essere reinfettato? Quasi sempre perché la pulizia ha rimosso il malware ma non l’accesso. Cerca account amministratore che non riconosci, backdoor nella cartella degli upload e attività pianificate nella tabella delle opzioni che reinstallano il codice malevolo. Una reinfezione a cadenza regolare indica di solito un’attività pianificata.

Basta ripristinare un backup per sistemare un sito hackerato? Solo se sai quando è avvenuta la compromissione, hai un backup precedente e hai corretto la vulnerabilità di fondo. Senza tutti e tre rischi di ripristinare un sito già compromesso o di riaprire la stessa falla. Una ricostruzione pulita con core, plugin e tema nuovi è più affidabile.

Quanto costa la rimozione di malware da WordPress? Una pulizia semplice su un sito piccolo scoperto presto costa di solito da £400 a £1.200. Una risposta completa all’incidente con analisi dei log, ricostruzione pulita, ispezione del database e hardening arriva in genere da £1.500 a £5.000, e le compromissioni prolungate o su più siti costano di più.

Come faccio a togliere la segnalazione di Google dal mio sito? Pulisci completamente il sito, poi richiedi una revisione tramite il rapporto sui problemi di sicurezza in Search Console. Richiedila solo quando il sito è davvero pulito, dato che una revisione respinta allunga i tempi, e controlla a parte le liste di blocco di browser e provider di posta, ognuna con la propria procedura di rimozione.