Sito violato: riconoscerlo, ripristinarlo e prevenirlo
Modulo 7: Sicurezza · Tempo di lettura: 10 minuti
Obiettivo della lezione: dopo questa lezione saprà riconoscere un attacco hacker, ripristinare il sito nell'ordine corretto ed evitare che accada di nuovo.
Concetti chiave: segnali di un attacco, documentare, isolare, sostituire tutte le password e i salt, trovare il punto di accesso, registri (log), backup pulito, reinstallazione pulita, checksum, amministratori sconosciuti, PHP in uploads, mu-plugins, Search Console, segnalare una violazione di dati
Cos'è un attacco hacker
Un sito è violato (hackerato) quando qualcuno ottiene senza autorizzazione il controllo su (una parte di) esso: può modificare file o il database, oppure far eseguire codice. Spesso l'intruso mantiene l'accesso tramite una backdoor: un file nascosto o un frammento di codice che gli permette di tornare in seguito, anche dopo che Lei ha chiuso la falla originale.
Questo è il punto centrale di questa lezione: rimuovere solo il danno visibile non basta. Finché la backdoor è presente, o la falla da cui è entrato è ancora aperta, l'attacco si ripeterà. Spesso entro pochi giorni.
Riconoscere l'attacco
Segnali (alcuni visibili, altri da cercare attivamente):
- Google segnala per il Suo sito "Questo sito potrebbe essere stato violato", oppure Search Console segnala un problema di sicurezza.
- Nei risultati di ricerca (
site:example.com) compaiono pagine che non conosce, spesso in un'altra lingua o su farmaci, scommesse o negozi falsi. - I visitatori vengono reindirizzati, spesso solo se arrivano da Google o da un telefono. Lei non se ne accorge perché è già autenticato o arriva tramite un segnalibro. Verifichi in una finestra privata del browser partendo da un risultato di ricerca.
- In Utenti compare un amministratore che non conosce.
- Ci sono file PHP in
wp-content/uploads, oppure file con nomi strani nella cartella principale o inwp-content/mu-plugins. - Il Suo provider di hosting o uno scanner antimalware segnala file infetti; le Sue email vengono rifiutate oppure il Suo pacchetto invia spam.
- Il sito è improvvisamente lento o lo spazio di archiviazione si riempie.
Il piano d'azione
1. Mantenere la calma e documentare
Non elimini subito tutto. Annoti cosa osserva e da quando, faccia screenshot, e crei una copia dello stato attuale (file e database, oppure un backup aggiuntivo tramite il Suo provider). Questa copia Le servirà per trovare il punto di accesso, e come prova. Non la salvi nella cartella web.
2. Fermare il danno per i visitatori
Disattivi temporaneamente il sito o lo metta dietro una pagina di manutenzione, soprattutto se i visitatori vengono reindirizzati verso malware o phishing. In DirectAdmin può sospendere il dominio; altrove può bastare una password sull'intero sito o un file index.html temporaneo con un avviso.
3. Sostituire tutte le password e le chiavi
Dia per scontato che l'intruso conosca ogni password reperibile sul sito o tramite esso. Sostituisca, preferibilmente da un altro computer (pulito):
- la password del Suo pannello di hosting e di tutti gli account FTP e SFTP (rimuova gli account che non utilizza);
- la password dell'utente del database, e la aggiorni in wp-config.php;
- le password di tutti gli amministratori di WordPress, e rimuova gli account che non riconosce;
- le chiavi e i salt in wp-config.php (lezione 1.3). Così facendo decadono tutti i cookie di accesso, anche quello dell'intruso;
- le password applicazione (lezione 3.3) e le chiavi API delle integrazioni;
- le password email, se tramite una casella di posta è stato inviato spam.
Attivi poi l'autenticazione a due fattori ovunque (lezione 7.3).
4. Trovare il punto di accesso
Senza conoscere il punto di accesso, non può essere certo che sia stato chiuso. Le cause più frequenti (lezione 7.1), e dove cercare:
- Un plugin o un tema obsoleto: quali componenti erano indietro con gli aggiornamenti? Cerchi i nomi in un database delle vulnerabilità (lezione 5.3).
- Una password compromessa: controlli la cronologia degli accessi del Suo pannello di hosting e dell'FTP.
- I registri (log) del server web: cerchi, intorno al momento in cui sono comparsi i primi file sospetti, richieste POST verso file sconosciuti o verso file di plugin, spesso dallo stesso indirizzo IP.
- File ordinati per data: ordini in Gestione file o tramite SFTP per data di modifica. I file modificati contemporaneamente, soprattutto al di fuori di un aggiornamento, meritano attenzione.
5. Ripulire il sito
Due strade, spesso combinate:
A. Ripristinare un backup pulito precedente all'attacco (lezione 8.2). Scelga un backup sicuramente precedente ai primi segnali, poiché gli intrusi a volte aspettano settimane. Ripristini completamente, in modo che anche i file aggiunti scompaiano. Aggiorni poi subito tutto (altrimenti la falla si riapre). Svantaggio: tutto ciò che è stato creato dopo il backup (articoli, ordini) andrà perso.
B. Ricostruire da zero in modo pulito mantenendo i contenuti esistenti:
- Sostituisca WordPress stesso con una copia nuova da wordpress.org (wp-admin, wp-includes e i file singoli; non wp-content e wp-config.php). Con WP-CLI può prima verificare cosa è stato modificato:
wp core verify-checksums
wp plugin verify-checksums --allQuesti comandi confrontano i Suoi file con le versioni ufficiali e segnalano ogni file modificato o aggiunto (il secondo solo per i plugin provenienti dalla directory dei plugin di wordpress.org).
- Rimuova tutti i plugin e i temi e li reinstalli dalla fonte originale, nella versione più recente. Ciò che non Le serve, non deve tornare.
- Controlli
wp-content/uploadsalla ricerca di file PHP e altri file che non sono media, ewp-content/mu-plugins. - Controlli
.htaccessalla ricerca di regole di reindirizzamento sospette, e wp-config.php per righe che non riconosce. - Controlli il database: amministratori sconosciuti, le opzioni
siteurl,homeeactive_pluginsinwp_options, e cerchi negli articoli script inseriti (<scriptcon indirizzi sospetti). - Verifichi le attività pianificate: cronjob nel Suo pannello di hosting e WP-Cron (con un plugin o
wp cron event list).
Uno scanner antimalware (del Suo provider o un plugin) aiuta nella ricerca, ma non si fidi ciecamente: ciò che non trova potrebbe comunque essere presente.
6. Chiudere la falla e verificare
- Aggiorni tutto, rafforzi la sicurezza (lezione 7.4) e riattivi il sito.
- Il Suo sito risulta segnalato come non sicuro da Google? Richieda in Search Console, nella sezione Problemi di sicurezza, una nuova verifica, solo dopo che tutto è stato ripulito.
- Tenga d'occhio le settimane successive: nuovi file, nuovi amministratori, segnalazioni del Suo scanner. Se il problema si ripresenta, significa che il punto di accesso o una backdoor non sono ancora stati trovati.
Dati personali: segnalare una violazione di dati
Se gli intrusi hanno potuto accedere a dati personali (dati dei clienti di un negozio online, invii di moduli, elenchi di soci, gli utenti del Suo sito), si tratta di una violazione di dati ai sensi del GDPR. In tal caso deve segnalarlo entro 72 ore dalla scoperta al Garante competente per la privacy nel Suo paese (nei Paesi Bassi: la Autoriteit Persoonsgegevens), a meno che sia improbabile che comporti un rischio per le persone interessate (articolo 33 del GDPR). Se il rischio è elevato, deve anche informare direttamente tali persone (articolo 34). Documenti in ogni caso cosa è accaduto e cosa ha fatto, anche se decide di non segnalare la violazione. In caso di dubbio, consulti il sito del Garante per la privacy competente nel Suo paese (lezione 9.3).
Chiedere aiuto
Ripulire un sito violato richiede tempo ed esperienza. Se non è sicuro di aver risolto tutto, chieda aiuto: il Suo sviluppatore web, un'azienda specializzata, oppure il Suo provider di hosting (alcuni provider, compreso WebOké, offrono questo servizio, solitamente a pagamento). Fornisca loro la copia del passaggio 1, cosa ha osservato e quando, e cosa ha già fatto.
Riepilogo
- Un attacco hacker lascia spesso una backdoor; rimuovere solo il danno visibile non basta.
- Ordine delle operazioni: documentare, proteggere i visitatori, sostituire tutte le password e i salt, trovare il punto di accesso, ripulire, chiudere la falla e verificare.
- La pulizia può avvenire ripristinando un backup pulito ben precedente all'attacco, oppure reinstallando da zero WordPress, i plugin e i temi e controllando uploads, mu-plugins, .htaccess e il database.
wp core verify-checksumsmostra quali file di WordPress sono stati modificati.- Se sono stati coinvolti dati personali, segnali la violazione entro 72 ore al Garante competente, a meno che un rischio sia improbabile.
Quiz
Esercizio
Esercizio D7.5: Il suo piano di emergenza per un attacco hacker. Compili il piano di emergenza per il Suo sito, così da non doverlo improvvisare quando sarà necessario: dove si trovano i Suoi backup e fino a quanto tempo indietro arrivano, chi possiede quali password e come le sostituisce tutte (elenco), dove trova i registri (log) del Suo hosting, chi chiama per chiedere aiuto, e quali dati personali sono presenti sul Suo sito (per valutare se deve segnalare una violazione di dati). Esegua poi l'esercizio pratico: quali cinque passaggi compie nella prima ora se riceve l'avviso "Questo sito potrebbe essere stato violato", in quale ordine, e perché proprio quell'ordine?
Esercizio D7.5: Il suo piano di emergenza per un attacco hacker
Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.
Prima documentare (screenshot, conservare i log) prima di eliminare qualcosa; proteggere i visitatori (sito offline o pagina di manutenzione); sostituire tutte le password e i salt; cercare il punto di accesso usato; solo allora ripristinare in modo pulito. Ripristinare soltanto, senza chiudere il punto di accesso, lascia la porta aperta.
Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.
Per approfondire
Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.
- Guida DirectAdmin 18.2: Il mio sito web è stato violato: piano d'azione
- Aiuto! Il mio sito è stato hackerato. Come posso risolvere o prevenire il problema?
- Guida DirectAdmin 15.11: Imunify360: scansione del sito web alla ricerca di malware
- Guida DirectAdmin 17.2: Riepilogo sito e log: il log degli errori e il log degli accessi
- Guida DirectAdmin 3.4: Cronologia accessi: chi ha effettuato l'accesso e quando?
- Violazioni di dati (Garante olandese, Autoriteit Persoonsgegevens): https://www.autoriteitpersoonsgegevens.nl/themas/beveiliging/datalekken
- FAQ: il mio sito è stato violato (wordpress.org, in inglese): https://wordpress.org/documentation/article/faq-my-site-was-hacked/
