Le telefonate su un sito bucato arrivano quasi sempre nei momenti peggiori: venerdì pomeriggio, sabato mattina, il giorno prima di una fiera. E arrivano con una di tre frasi. La prima è che il sito manda le persone su una pagina di scommesse o di farmaci. La seconda è che aprendolo compare un avviso rosso del browser che dice che il sito è pericoloso. La terza, la più subdola, è che un cliente ha segnalato che cercando l'azienda su Google escono risultati in un'altra lingua con parole che con l'attività non c'entrano niente.
La reazione istintiva del titolare, comprensibilmente, è il panico misto a vergogna, come se essere stati bucati fosse una colpa personale. Non lo è quasi mai. Nella stragrande maggioranza dei casi che ho gestito non c'era nessuno che ce l'avesse con quell'azienda: erano programmi automatici che girano in continuazione cercando siti con un componente vecchio o una password debole. Non hanno scelto te, hanno scelto una versione di un plugin che non era aggiornata e tu ce l'avevi.
Quello che ti racconto qui è come procedo io, nell'ordine in cui lo faccio, con una premessa che voglio mettere subito: la cosa più importante nelle prime ore non è pulire, è capire da dove sono entrati. Chi salta questo passaggio pulisce il sito, lo rimette online, e dopo tre giorni si ritrova nella stessa identica situazione perché la porta d'ingresso è rimasta aperta. Ne ho recuperati diversi che erano già stati puliti due volte da qualcun altro.
Come ci si accorge che il sito è compromesso
I segnali cambiano molto a seconda di cosa volevano ottenere. Alcuni attacchi sono rumorosi e si vedono subito, altri sono progettati apposta per restare invisibili il più a lungo possibile, e quelli sono i più dannosi perché lavorano per mesi prima che qualcuno se ne accorga.
- Il sito manda i visitatori su pagine di altri siti, spesso solo da telefono o solo la prima volta.
- Il browser o Google mostrano un avviso di sito pericoloso o ingannevole.
- Cercando il nome dell'azienda escono pagine in altre lingue che tu non hai mai scritto.
- Compaiono utenti amministratori che nessuno ha creato.
- Il server risulta molto più carico del solito senza che le visite siano aumentate.
- Le mail inviate dal sito finiscono tutte nella posta indesiderata, segno che il dominio è finito in qualche lista nera.
- Nei file del sito compaiono cartelle o file con nomi senza senso, spesso nella cartella dei caricamenti.
Il terzo punto della lista merita una spiegazione perché è quello che sorprende di più. Un tipo di attacco molto comune non rovina il sito per niente: ci costruisce dentro centinaia di pagine nascoste che vendono roba, visibili solo ai motori di ricerca e non a te. Il sito per il visitatore è normale, il titolare non nota niente per mesi, e intanto su Google il dominio si riempie di pagine estranee. Quando poi arriva la penalizzazione, il danno sul posizionamento è pesante e ci vogliono mesi per recuperarlo. Per questo, quando faccio un controllo su un sito nuovo che prendo in gestione, una delle prime cose che faccio è cercare su Google tutte le pagine di quel dominio e guardare se ci sono cose che non dovrebbero esserci.
Il quinto punto, il carico del server, è quello che spesso segnala l'uso peggiore: il sito trasformato in una macchina che manda posta indesiderata per conto di qualcun altro. Lì il danno non è solo tecnico. Il dominio finisce nelle liste nere e da quel momento le mail aziendali normali, quelle che mandi ai clienti e ai fornitori, iniziano a non arrivare più. Tirarsi fuori da quelle liste richiede tempo e procedure, e nel frattempo lavori a metà.
Le prime due ore: cosa faccio e cosa non faccio
La tentazione numero uno, quando si scopre il problema, è cancellare tutto e ripristinare l'ultimo backup. È comprensibile e a volte è anche la strada giusta, ma se lo fai per primo distruggi le prove e non saprai mai da dove sono entrati. In più, se l'intrusione è avvenuta un mese fa e i backup coprono due settimane, stai ripristinando un sito già compromesso. Quindi la prima mezz'ora la passo a guardare, non a toccare.
- Faccio una copia completa dello stato attuale, sporco com'è, e la metto da parte: è la scena del crimine.
- Guardo i registri di accesso del server per capire quando e da dove è iniziato.
- Controllo la data di modifica dei file per trovare quelli toccati di recente.
- Verifico l'elenco degli utenti amministratori e quando sono stati creati.
- Cerco le attività pianificate anomale, che sono il modo più comune per rientrare dopo la pulizia.
- Solo a questo punto decido se pulire o ripristinare da un backup sicuro.
Il punto tre è quello che risolve il caso in metà dei siti su cui intervengo. Ordinare i file per data di modifica e guardare cosa è stato toccato nelle ore o nei giorni in cui sono iniziati i problemi restringe il campo in modo brutale. Se vedi che un file dentro un plugin specifico è stato modificato tre settimane fa alle quattro di notte, sai già da dove guardare. Da lì risalgo alla versione di quel plugin e quasi sempre scopro che era ferma a una versione con una falla nota e pubblicata da mesi.
Il punto cinque è quello che chi pulisce in fretta dimentica sempre. Chi entra non si limita quasi mai a fare il danno: lascia un modo per tornare. Può essere un utente amministratore nascosto, un file che sembra innocuo in una cartella di sistema, oppure un'attività pianificata che ogni notte ricrea i file infetti. Ho visto siti puliti accuratamente tornare infetti tre giorni dopo esattamente per questo motivo, con il cliente convinto di essere stato attaccato di nuovo quando in realtà non era mai finito il primo attacco.
Sul mettere il sito offline mentre si lavora, la mia posizione è sfumata. Se il sito manda i visitatori su pagine pericolose o se c'è un avviso attivo del browser, sì, lo metto in manutenzione subito: ogni ora in più significa più persone che arrivano e si spaventano, e più segnalazioni negative che poi devi ripulire. Se invece l'attacco è del tipo silenzioso, con pagine nascoste ai motori, spesso conviene tenerlo su mentre si lavora, perché toglierlo di mezzo non risolve niente e in compenso interrompe il lavoro dell'azienda.
La pulizia: come si fa e quanto ci si può fidare
Qui devo essere onesto su una cosa che non piace sentire: un sito compromesso non torna mai al cento per cento come prima con la sola pulizia. Puoi arrivare molto vicino, e nella pratica in moltissimi casi è sufficiente, ma la certezza assoluta ce l'hai solo ricostruendo il sito da componenti puliti e riportando dentro i contenuti. La scelta tra le due strade dipende da quanto è complesso il sito e da quanto è profonda l'intrusione.
Quando pulisco, il metodo è questo. Sostituisco i file del nucleo di WordPress con quelli originali scaricati dal sito ufficiale, che è un'operazione sicura perché quei file non contengono niente di tuo. Faccio la stessa cosa con tutti i plugin e i temi, reinstallandoli da zero nelle versioni aggiornate invece di provare a ripulire i file uno per uno. Le uniche parti che vanno esaminate a mano sono il file di configurazione, la cartella dei caricamenti, che dovrebbe contenere solo immagini e documenti e invece spesso nasconde file eseguibili, ed eventuali personalizzazioni fatte su misura per quel cliente.
Il database è il capitolo delicato. Lì l'infezione tipica sta dentro il contenuto delle pagine e degli articoli, sotto forma di codice inserito nel testo, oppure nelle impostazioni generali, oppure negli utenti. Si cerca con pazienza, si confronta con quello che ci si aspetta di trovare e si ripulisce. In un negozio online questa parte richiede una cura particolare perché il database contiene ordini e clienti, quindi non puoi buttarlo e rifarlo: devi disinfettarlo mantenendo tutto il resto intatto.
| Componente | Cosa faccio | Perché |
|---|---|---|
| Nucleo di WordPress | Sostituzione completa con i file ufficiali | Non contiene niente di personale, sostituirlo è sicuro |
| Plugin e temi | Reinstallazione pulita nelle versioni aggiornate | Ripulire riga per riga è lento e inaffidabile |
| Cartella caricamenti | Esame manuale alla ricerca di file eseguibili | È il nascondiglio preferito, lì dentro ci sono cose tue |
| File di configurazione | Confronto con quello standard, riga per riga | Spesso contiene istruzioni aggiunte dall'esterno |
| Database | Pulizia mirata di contenuti, impostazioni e utenti | Non si può buttare, contiene ordini e clienti |
| Personalizzazioni su misura | Confronto con la copia di lavoro, se esiste | È l'unico pezzo davvero irrecuperabile se non hai copie |
Sull'ultima riga apro una parentesi che riguarda la prevenzione più che l'emergenza. Se il tuo sito ha parti scritte su misura e non esiste da nessuna parte una copia di riferimento di quel codice, il giorno in cui succede un guaio sei nelle mani della fortuna. Nei progetti che seguo io tengo sempre una copia del codice personalizzato fuori dal server, proprio perché nel momento della ricostruzione è la differenza tra mezza giornata di lavoro e una settimana.
Cambiare le chiavi, tutte, non solo quella del sito
Finita la pulizia, prima di rimettere tutto in circolo, c'è un passaggio che va fatto in modo completo e che quasi tutti fanno a metà. Bisogna cambiare tutte le credenziali collegate al sito, non solo la password dell'amministratore, perché non sai quali sono state lette. La lista è più lunga di quanto sembri.
- Password di tutti gli utenti amministratori, ed eliminazione di quelli che non servono.
- Password di accesso ai file sul server e al pannello dell'hosting.
- Password dell'utente del database e relativo aggiornamento nella configurazione.
- Le chiavi di sicurezza del file di configurazione, che invalidano tutte le sessioni aperte.
- Chiavi di collegamento verso servizi esterni: pagamenti, spedizioni, gestionale, newsletter.
- Password dell'account con cui si registra il dominio, che spesso nessuno ricorda di avere.
La quarta voce è la più tecnica e la più dimenticata. Dentro la configurazione di WordPress ci sono delle stringhe che servono a mantenere le sessioni degli utenti collegati. Se chi è entrato le ha lette, può restare collegato come amministratore anche dopo che hai cambiato tutte le password. Rigenerarle è un'operazione di due minuti che chiude questa porta di colpo e che fa la differenza tra un sito sicuro e un sito che sembra sicuro.
Sulla sesta voce, l'account del dominio, insisto sempre anche se sembra esagerato. Se usi la stessa password in più posti, e le persone lo fanno, chi ha ottenuto una credenziale del sito potrebbe averla provata altrove. Il dominio è la cosa più preziosa che hai: se lo perdi, perdi il sito, le mail e anni di lavoro tutti insieme. Su quell'account, se il fornitore lo permette, attiva anche la verifica in due passaggi, che è il singolo intervento di sicurezza che rende di più in assoluto rispetto alla fatica che costa.
Rimettere a posto la reputazione: Google e i browser
Il sito pulito non basta, perché nel frattempo il mondo esterno si è accorto del problema e ti ha marcato. Questa parte è quella che molti trascurano e che ha gli effetti più duraturi sul lavoro, perché un avviso rosso lasciato attivo per settimane fa più danni dell'attacco stesso.
La procedura è nota ma va fatta nell'ordine giusto. Prima ci si assicura che il sito sia davvero pulito, controllandolo con più strumenti diversi, perché se chiedi la revisione e ti trovano ancora infetto la seconda richiesta viene presa meno sul serio e i tempi si allungano. Poi, dagli strumenti per i proprietari di siti, si chiede la revisione spiegando cosa è successo e cosa hai fatto per sistemarlo. Nella mia esperienza, quando la richiesta è scritta bene e il sito è davvero pulito, la rimozione dell'avviso arriva in tempi ragionevoli, nell'ordine di qualche giorno.
C'è poi la parte del posizionamento, che è la più lenta. Se l'attacco aveva creato centinaia di pagine finte indicizzate, quelle vanno rimosse in modo ordinato: far restituire al sito un errore chiaro per quegli indirizzi e, per i casi più grossi, usare gli strumenti di rimozione rapida. Il recupero del posizionamento sulle pagine vere, nei casi che ho seguito, richiede da qualche settimana a un paio di mesi a seconda di quanto a lungo è durata l'infezione. Questo è il motivo principale per cui insisto sui controlli periodici: il danno cresce con il tempo di esposizione, non con la gravità tecnica.
Se il sito è un negozio online o gestisce dati di clienti, si aggiunge un capitolo che esula dalla tecnica e su cui ti mando dal professionista giusto: capire se ci sia stato accesso a dati personali e cosa questo comporta in termini di obblighi verso i clienti e verso le autorità. Non è materia mia e non improvviso, ma è mio dovere dirti di verificarlo subito e non tra un mese, perché ci sono tempi da rispettare. La copia dello stato iniziale che ti ho detto di conservare all'inizio serve anche a questo: se serve ricostruire cosa è successo, quella è l'unica fonte.
Da dove entrano, secondo quello che ho visto io
Se guardo indietro ai siti che mi è capitato di recuperare, le cause si ripetono in modo quasi noioso. Non ho mai incontrato un caso di attacco sofisticato rivolto specificamente contro un'azienda di quelle che seguo. Sono sempre state le stesse tre o quattro debolezze, tutte evitabili.
| Causa | Quanto è frequente | Come si evita |
|---|---|---|
| Plugin o tema non aggiornato con falla nota | La più frequente di tutte | Aggiornamenti regolari, rimozione di ciò che non si usa |
| Password deboli o riutilizzate | Molto frequente | Password diverse e lunghe, verifica in due passaggi |
| Tema o plugin scaricato da siti di versioni piratate | Frequente più di quanto si creda | Non installare mai roba a pagamento presa gratis |
| Utenti amministratori mai rimossi | Frequente nei siti passati di mano | Revisione periodica degli accessi |
| Hosting condiviso con altri siti infetti | Meno frequente ma reale | Hosting di qualità, isolamento tra siti |
| Computer dell'utente infetto che ruba le credenziali | Rara ma insidiosa | Antivirus aggiornato, attenzione alle mail |
La terza riga è quella su cui mi arrabbio di più, perché è completamente autoinflitta. Esistono siti che distribuiscono gratuitamente temi e plugin che normalmente si pagano. Sembra un affare: risparmi ottanta euro. Quei file, nella quasi totalità dei casi, contengono codice aggiunto che apre una porta nel tuo sito. È il modo più economico per farsi bucare e l'ho trovato come causa in un numero di siti che non mi aspettavo. Se un componente costa ottanta euro l'anno e non puoi permettertelo, la strada giusta è usare un'alternativa gratuita ufficiale, non la versione piratata.
La quarta riga riguarda i siti che cambiano gestore. Ogni volta che prendo in carico un sito esistente, una delle prime cose che faccio è guardare la lista degli utenti. Trovo regolarmente account di ex dipendenti, di agenzie con cui il rapporto è finito tre anni fa, di stagisti passati per l'azienda un'estate. Ognuno di quelli è una chiave in circolazione di cui nessuno sa più niente. Ripulire la lista è un lavoro da venti minuti e toglie un rischio concreto.
Come evito che risucceda
Dopo un recupero, la parte che conta davvero inizia il giorno dopo. Perché il sito pulito è un sito sano oggi, non un sito sicuro domani, e la differenza la fanno poche abitudini tenute nel tempo. Quello che imposto sui siti che seguo è un insieme di cose semplici, niente di esotico.
- Aggiornamenti controllati con cadenza fissa, non automatici alla cieca e non mai.
- Rimozione di tutti i plugin e i temi disattivati, che restano attaccabili anche se spenti.
- Backup automatici su un sistema esterno al server, con verifica periodica che si ripristinino davvero.
- Verifica in due passaggi sugli accessi amministrativi e limitazione dei tentativi di accesso.
- Controllo mensile della lista utenti e delle pagine indicizzate su Google.
- Un monitoraggio che avvisi quando il sito non risponde o cambia in modo anomalo.
Sul punto due c'è una cosa che quasi nessuno sa e che vale la pena ripetere: un plugin disattivato è comunque presente sul server, e se contiene una falla può essere sfruttato anche se non è attivo. Disattivare non protegge, serve disinstallare. Nei siti che eredito trovo mediamente cinque o sei plugin disattivati da anni, dimenticati lì dopo qualche prova. Sono rischio puro senza nessun beneficio.
Sul punto tre insisto sulla verifica, perché è la lezione più amara che ho imparato. Avere i backup non serve a niente se non li hai mai provati. Ho trovato sistemi di backup che giravano da due anni e producevano archivi vuoti, e nessuno se n'era accorto perché nessuno aveva mai provato a ripristinare. Una volta ogni tre o sei mesi vale la pena prendere l'ultimo backup e ripristinarlo su un sito di prova: se funziona dormi tranquillo, se non funziona l'hai scoperto in un giorno in cui non stava succedendo niente di grave.
Sui backup aggiungo il requisito che considero non negoziabile: devono stare fuori dal server del sito. Se il backup è nella stessa macchina e quella macchina viene compromessa, hai perso entrambi. Uno spazio esterno costa pochi euro al mese ed è l'assicurazione più economica che esista in questo mestiere.
Le domande che mi fanno più spesso
Le domande che mi fanno sempre quando chiamano per un sito compromesso, di solito nella stessa telefonata.
Quanto ci vuole a rimettere a posto un sito bucato?
Dipende molto da quanto è complesso il sito e da quanto tempo è durata l'infezione, ma ti do gli ordini di grandezza che vedo. Un sito vetrina di venti o trenta pagine con un'infezione recente e un backup pulito disponibile si risolve in mezza giornata di lavoro. Un sito senza backup utilizzabili, dove tocca pulire tutto a mano e ricostruire pezzo per pezzo, richiede da uno a tre giorni. Un negozio online con ordini attivi è il caso più lungo, perché non puoi semplicemente tornare indietro senza perdere gli ordini arrivati nel frattempo, e lì si arriva tranquillamente a qualche giorno di lavoro distribuito. A questi tempi va poi aggiunta la parte di rimozione degli avvisi e recupero del posizionamento, che non dipende da te e va avanti per settimane.
Basta installare un plugin di sicurezza per essere protetti?
Aiuta, ma non è la soluzione e non voglio venderti questa illusione. Un buon plugin di sicurezza fa tre cose utili: limita i tentativi di accesso, ti avvisa se i file cambiano in modo anomalo, e blocca una parte del traffico ostile prima che arrivi al sito. Sono tutte cose che valgono la spesa. Quello che non fa è proteggerti da un plugin vulnerabile che non aggiorni, da una password debole usata anche altrove, o da un tema piratato che ha già il codice ostile dentro. La sicurezza di un sito è fatta per l'ottanta per cento di manutenzione noiosa e per il venti per cento di strumenti. Chi ti vende solo lo strumento ti sta facendo un favore a metà.
Posso semplicemente ripristinare un backup e non pensarci più?
Solo se sono vere due condizioni, e vanno verificate prima. La prima è che il backup sia precedente all'intrusione, e per saperlo devi prima capire quando è avvenuta: se ripristini una copia di una settimana fa ma sono entrati un mese fa, hai appena rimesso online un sito già compromesso. La seconda, più importante, è che la falla da cui sono entrati sia stata chiusa. Se ripristini un backup che contiene la stessa versione vulnerabile del plugin, ti ribucano in pochi giorni, spesso in poche ore, perché i programmi automatici che scansionano la rete ripassano di continuo. Il ripristino è uno strumento ottimo, ma è il secondo passo, non il primo. Il primo è sempre capire da dove sono entrati.
Ho perso dati dei clienti: cosa devo fare?
Qui ti dico chiaramente dove finisce il mio mestiere. Sul piano tecnico posso ricostruire cosa è successo, a quali dati era possibile accedere e in che finestra temporale, ed è per questo che la copia iniziale dello stato compromesso va conservata invece di essere cancellata subito. Sul piano degli obblighi, invece, devi parlare immediatamente con chi ti segue per la protezione dei dati o con il tuo consulente legale, perché esistono tempi stretti per le comunicazioni dovute e non è materia su cui si improvvisa. Quello che ti raccomando è di non aspettare di aver finito la parte tecnica per fare quella telefonata: le due cose vanno avanti in parallelo, e il ritardo è l'unica cosa che peggiora davvero la situazione.
Quanto costa far recuperare un sito compromesso?
Il recupero vero e proprio di un sito aziendale normale sta nell'ordine di qualche centinaio di euro, con variazioni forti in base a quanto è profonda l'infezione e a quanto è complesso il sito. Quello che vale la pena mettere in prospettiva è il confronto con la prevenzione: una manutenzione ordinaria con aggiornamenti controllati, backup verificati e monitoraggio costa una frazione di quella cifra ogni mese, e soprattutto evita il costo indiretto, che è quello vero. Perché il conto del sito bucato non è la fattura del recupero: sono i giorni in cui i clienti non ti trovano, l'avviso rosso che hanno visto i tuoi fornitori, le mail che per due settimane finiscono nello spam e il posizionamento che torna lentamente. Quella parte lì non te la fattura nessuno, ma la paghi tutta.
Se posso lasciarti una cosa sola: il momento per occuparsi di questo tema non è quando succede, è adesso che non sta succedendo niente. Controlla se i backup esistono e se funzionano davvero, guarda la lista degli amministratori del tuo sito, verifica che i plugin siano aggiornati e disinstalla quelli spenti da anni. Sono tre quarti d'ora di lavoro e tolgono la gran parte del rischio. Le telefonate del sabato mattina arrivano quasi sempre da siti in cui nessuno aveva mai fatto queste tre cose.
Sospetti che il tuo sito sia compromesso o vuoi solo dormire tranquillo?
Scrivimi dicendomi cosa hai notato e da quanto: ti dico cosa controllerei per primo e se serve un intervento urgente o basta una sistemata.