Come pulire un sito Web o un blog WordPress violato
Pubblicato: 2021-02-16Indipendentemente dal fatto che il tuo sito Web WordPress sia stato violato e che tu stia attualmente controllando i danni, o che ti stia preparando al peggio, questo articolo ti guiderà attraverso il processo di pulizia di un sito Web WordPress violato. Il processo è documentato in un formato passo-passo facile da seguire per aiutarti a realizzare quanto segue:
- Riprendi il controllo del tuo sito Web WordPress
- Identificare la probabile fonte dell'infezione
- Trova l'infezione e il codice dannoso
- Rimuovi qualsiasi malware, backdoor e shell web
- Rimuovi il tuo dominio da qualsiasi elenco di malware come il database di Navigazione sicura di Google
- Prevenire una ricorrenza
Il tuo sito Web WordPress hackerato è davvero violato?
A volte è abbastanza chiaro quando un sito WordPress è stato violato, ad esempio, se il tuo sito web è stato deturpato. In altri casi, potrebbe non essere così chiaro. Prima di intraprendere un processo di pulizia di WordPress, conferma che il tuo sito Web WordPress è stato effettivamente violato e non si tratta di un problema tecnico non correlato. Leggi l'articolo come verificare se il mio WordPress è stato violato per determinare se il tuo sito Web o blog è stato violato o meno.
Riprendi il controllo
Il recupero del controllo inizia a seconda della quantità di accesso che potresti aver perso a causa di un attacco. Ad esempio, dopo aver ottenuto l'accesso a un server, un utente malintenzionato può ruotare le credenziali per impedire agli utenti legittimi di accedere al server, o forse può modificare la password dell'amministratore di WordPress per impedire a un amministratore di WordPress di accedere.
Sebbene ciò dipenda molto dalla tua configurazione, molto probabilmente il tuo provider di hosting sarà in grado di aiutarti con il ripristino dell'accesso a un ambiente di hosting condiviso o a un server privato virtuale (VPS) che esegue il tuo sito web. Se hai perso l'accesso all'amministratore di WordPress, segui la guida ufficiale di WordPress sulla reimpostazione della password di amministratore.
Facendo un backup
Anche se disponi di una soluzione di backup di WordPress, esegui un backup dell'attuale sito Web WordPress. Fare un backup di WordPress in questa fase è molto importante per una serie di motivi, inclusi i seguenti.
- Un backup consente di analizzare l'infezione in una fase successiva,
- Alcuni provider di hosting possono ricorrere all'eliminazione di siti Web compromessi come misura precauzionale per impedire che diffonda malware o spam, a seconda del provider di hosting ciò potrebbe accadere senza preavviso,
- Se non disponi di una strategia di backup attualmente in atto, potresti essere in grado di salvare parte del contenuto del sito Web da questo backup prima che le cose peggiorino.
Inoltre, se stai eseguendo WordPress su un Virtual Private Server (VPS), prendi in considerazione la possibilità di scattare uno snapshot dell'intera macchina virtuale (tieni presente che di solito è associato a un costo aggiuntivo). Quando scatti le istantanee, tieni presente che se stai utilizzando qualsiasi volume esterno per ospitare la tua installazione di WordPress (ad es. archiviazione collegata alla rete), dovresti anche prendere una copia di tutti i volumi che memorizzano l'installazione principale di WordPress, wp-content , il tuo database MySQL , nonché eventuali accessi al server Web e registri degli errori.
Ripristino da un backup
Se hai una strategia di backup in atto, ora è il momento di metterla in atto. Supponendo che tu abbia accesso a un backup recente, il ripristino potrebbe essere il modo più veloce per tornare online, tuttavia, non commettere errori, mentre il ripristino da un backup del tuo sito WordPress può rimuovere un'infezione e consentirti di essere di nuovo operativo, non lo fa risolvi il motivo per cui sei stato violato in primo luogo.
Se il tuo sito Web WordPress è stato violato a causa di una vulnerabilità sfruttata o di un difetto di sicurezza, è un passaggio essenziale successivo cercare di capire cosa è successo (se possibile).
Cosa succede se non ho un backup o non riesco a ripristinare il backup correttamente?
Se non disponi di un backup, puoi ripristinare correttamente, a seconda della gravità della situazione potresti voler mettere il tuo sito Web WordPress in modalità di manutenzione per consentirti di lavorare sul ripristino del tuo sito, facendo sapere ai visitatori che dovrebbero ricontrollare più tardi. Nel frattempo, continua a seguire il resto di questa guida. Mettendo il tuo sito web in modalità di manutenzione, attraverso l'uso del wp_maintenance() 1 funzione, WordPress restituirà un codice di stato HTTP 503. Uno stato 503 indica a Google e ad altri crawler che qualcosa è andato storto nella pagina e dovrebbero ricontrollare più tardi.
Una risposta HTTP 503 è importante per la SEO poiché preverrà danni alle tue classifiche di ricerca nel caso in cui il tuo sito web sia temporaneamente inattivo. Per ulteriori informazioni sul codice di stato HTTP 503 e sulla sua importanza nella SEO, consulta l'articolo di Yoast sull'argomento.
Identifica come WordPress è stato violato
Una volta eseguito il backup del tuo sito, la prossima cosa all'ordine del giorno è scoprire quanto più possibile su ciò che è successo, ovvero quale punto debole della sicurezza l'attaccante ha sfruttato per ottenere l'accesso alla tua installazione di WordPress.
Controllo dei registri delle attività, del server Web e dei registri del server FTP
Se conservi un registro delle attività di WordPress, questo potrebbe essere il posto migliore da cui iniziare la tua analisi. Vedi se riesci a identificare qualsiasi comportamento sospetto. Cerca gli eventi degli utenti appena creati o le modifiche alla password dell'utente. Controlla anche se WordPress, plugin o file di temi sono stati modificati.
Dovresti anche dare un'occhiata al server Web, al server FTP e ai file di registro del sistema operativo per comportamenti insoliti o sospetti. Anche se questo può essere un processo piuttosto impegnativo, ti consigliamo di iniziare controllando se c'è traffico strano proveniente da un singolo indirizzo IP. Puoi farlo usando una varietà di script di shell di utilità e una riga. Per una visualizzazione in tempo reale dei registri del server Web, GoAccess potrebbe tornare utile.
Plugin e temi WordPress non utilizzati e obsoleti
Controlla l'elenco dei plugin installati, sia dalla dashboard di WordPress che nella directory /wp-content/plugins/ . Vengono utilizzati tutti i plugin di WordPress? Sono tutti aggiornati? Controlla anche i temi e la directory dei temi /wp-content/themes/ . Dovresti avere un solo tema installato, quello che stai utilizzando. Se stai usando un tema figlio, avrai due directory.
Codice WordPress e installazioni inutilizzate
Il codice residuo e inutilizzato è un altro problema comune. A volte gli sviluppatori e gli amministratori di sistema aggiornano i file direttamente sul server ed eseguono un backup del file originale con un'estensione come .old , .orig o .bak . Gli aggressori spesso traggono vantaggio da questa cattiva pratica e gli strumenti per cercare tali file di backup sono ampiamente e prontamente disponibili.
Il modo in cui funziona è un utente malintenzionato che tenta di accedere a file come index.php.old . Di solito, i file .php sono configurati per essere eseguiti dall'interprete PHP, ma l'aggiunta di un'estensione .old (o altro) alla fine del file fa sì che il server Web fornisca il file all'utente. Semplicemente in grado di indovinare il nome di un file di backup, un utente malintenzionato può essere in grado di scaricare il codice sorgente che può contenere informazioni riservate o può fornire all'attaccante suggerimenti su cosa sfruttare.
Un problema simile è il mantenimento delle vecchie installazioni di WordPress. Quando gli amministratori di sistema ricostruiscono i loro siti Web, a volte lasciano copie di vecchie installazioni di WordPress in una sottodirectory /old/ . Queste vecchie installazioni di WordPress sarebbero in genere ancora accessibili su Internet e quindi un obiettivo succoso per un utente malintenzionato per sfruttare vulnerabilità note nelle vecchie versioni di WordPress insieme a qualsiasi plug-in.
Si consiglia di rimuovere eventuale codice non utilizzato, installazioni di WordPress, plugin di WordPress, temi WordPress e qualsiasi altro file vecchio o non utilizzato (ricorda che puoi sempre rivolgerti al tuo backup se hai bisogno di ripristinare qualcosa che hai cancellato accidentalmente). Il tuo sito web dovrebbe contenere solo i file di cui hai bisogno. Qualsiasi altra cosa extra o inutilizzata dovrebbe essere trattata come una superficie di attacco aggiuntiva.
Utenti e ruoli di WordPress
Verifica che tutti gli utenti di WordPress siano utilizzati. Ce ne sono di nuovi sospetti? Verifica che tutti i ruoli siano intatti. Se segui le linee guida sugli utenti e sui ruoli di WordPress, dovresti avere un solo utente con un ruolo di amministratore di WordPress.
Provider di hosting condiviso
Se il tuo WordPress è in esecuzione su un provider di hosting condiviso, l'origine dell'hacking potrebbe essere un altro sito Web in esecuzione sullo stesso server del tuo. In questo caso, lo scenario più probabile sarebbe che l'attaccante sarebbe riuscito ad aumentare i propri privilegi. Quindi, di conseguenza, accedi all'intero server e, a sua volta, al tuo sito Web WordPress. Se sospetti che si sia verificato un simile attacco, la soluzione migliore sarebbe contattare immediatamente il tuo provider di hosting, dopo aver eseguito il backup del tuo sito web.
File .htaccess
Anche i file .htaccess (file di configurazione del server HTTP Apache a livello di directory) sono un obiettivo comune per gli hacker. In genere vengono utilizzati per reindirizzare gli utenti ad altri siti Web di spam, phishing o comunque dannosi. Controlla tutti i file .htaccess sul tuo server, anche quelli che non vengono utilizzati da WordPress. Alcuni dei reindirizzamenti possono essere difficili da individuare.
Presta particolare attenzione alla configurazione che reindirizza le richieste HTTP in base a specifiche stringhe dell'agente utente: gli aggressori possono prendere di mira dispositivi specifici (ad esempio utenti mobili) o persino impegnarsi in una black hat SEO configurando il tuo server web in modo che risponda in modo diverso ai crawler dei motori di ricerca.
Se possibile, considera l'adozione della configurazione globale invece di fare affidamento sui file .htaccess all'interno del server HTTP Apache. Non solo i file .htaccess peggiorano le prestazioni, ma aprono il tuo sito Web WordPress a una serie di vulnerabilità di sicurezza se un utente malintenzionato è mai in grado di leggere o, peggio ancora, scrivere il contenuto di questi file. Secondo la documentazione di Apache HTTP Server 2 , l'uso dei file .htaccess può essere disabilitato completamente impostando la direttiva AllowOverride su nessuno nel file httpd.conf principale.
Controllo di altri punti di ingresso
Ci sono molti altri punti di accesso su un server web. Assicurati di controllarli tutti, come server FTP, SSH, server web ecc.
Trova l'infezione di WordPress e il codice dannoso
Prima di iniziare : un hack di WordPress in genere comporta l'inserimento di codice in un tema, plug-in o file principale di WordPress. Quindi, per procedere con una pulizia, dovresti essere a tuo agio con la modifica del codice. Se non lo sei, assumi professionisti della sicurezza di WordPress.
Una volta identificato il punto di ingresso degli hacker, in genere è relativamente facile trovare l'infezione. Anche se nel caso in cui non hai ancora trovato l'infezione, ci sono diversi metodi che puoi utilizzare per trovare l'infezione. Eccone alcuni.
Verifica quali file sono stati modificati negli ultimi giorni
Idealmente, dovresti utilizzare un plug-in di monitoraggio dei file di WordPress che monitora i file nell'installazione di WordPress per le modifiche e ti avvisa immediatamente. Se non disponi di un plug-in FIM (File Integrity Monitoring), dovrai cercare manualmente le modifiche ai file.
Se hai accesso SSH al tuo server, controlla quali file nel tuo sito Web WordPress sono stati modificati di recente. In genere, sarebbe consigliabile iniziare a cercare le modifiche negli ultimi cinque giorni da quando l'hack è stato notato, ampliando la ricerca se necessario. Per fare ciò, vai alla directory in cui si trova il tuo sito Web WordPress e usa il comando trova.
find .mtime -5 –ls
Il comando precedente elenca (-ls) tutti i file che sono stati modificati (.mtime) negli ultimi cinque giorni (-5). Se l'elenco è troppo lungo, utilizzare meno cercapersone per sfogliare e cercare nell'elenco con più facilità.
find .mtime -5 –ls | less
Se hai aggiornato di recente un plug-in o un tema, tutte le modifiche ai file correlate verranno visualizzate nei risultati della ricerca. Anche i log e i file di debug vengono aggiornati frequentemente, quindi verranno visualizzati anche nei risultati. Di conseguenza, potrebbe essere necessario eseguire un filtraggio approfondito dei risultati per trovare modifiche ai file di interesse. Tieni presente che plug-in specializzati come il plug-in WordPress File Changes Monitor per WordPress sono progettati specificamente per eliminare automaticamente tali falsi positivi per te. Il plug-in è appositamente creato per WordPress e può identificare una modifica del file da un core di WordPress, aggiornamenti di plug-in o temi, installazione o disinstallazione.
Controllo di tutti i file HTML
In WordPress ci sono pochissimi file HTML e agli hacker piace trarne vantaggio. Cerca nel tuo sito Web tutti i file HTML e analizza il loro contenuto. Assicurati che tutti i file HTML che hai sul tuo sito web siano legittimi e tu sappia a cosa servono.
Un modo semplice per elencare tutti i file HTML nella directory (e nelle sottodirectory) di WordPress consiste nell'usare il comando seguente.
find . -type f -name '*.html'
Ricerca del testo dell'infezione
Se il tuo sito Web è stato cancellato o del testo viene visualizzato sul tuo sito Web a causa dell'infezione, cercalo con lo strumento grep. Ad esempio, se hai visto il testo "hackerato da", vai alla directory principale del sito Web ed esegui il comando seguente.
grep –Ril "hacked by"
Il comando precedente restituirà un elenco di file che includono il contenuto "hackerato da". Una volta che hai l'elenco dei file infetti, puoi analizzare il codice e rimuovere l'infezione.
Cosa significano gli interruttori grep?
- -R indica a grep di cercare ricorsivamente (cerca nell'intera struttura di directory, comprese tutte le sottodirectory e i collegamenti simbolici).
- -i indica a grep che la ricerca non deve fare distinzione tra maiuscole e minuscole (ovvero ignorare la maiuscola del termine di ricerca). Questo è molto importante negli ambienti Linux/Unix, poiché a differenza di Windows, i file system Linux fanno distinzione tra maiuscole e minuscole.
- -l indica a grep che dovrebbe restituire il nome del file, anziché il contenuto del file. Quando il tuo sito WordPress viene violato, questo è un altro codice dannoso da cercare.
A parte l'ovvia stringa "hackerata da", di seguito è riportato un elenco di codici e frasi di testo che vengono generalmente utilizzati nei siti Web WordPress compromessi. Puoi usare lo strumento grep per cercare quanto segue:
- decodifica_base64
- is_admin
- eval
- gzuncompress
- passare attraverso
- es
- shell_exec
- asserire
- str_rot13
- sistema
- phpinfo
- chmod
- mkdir
- fope
- fclose
- file di lettura
Un modo rapido per ottenere ciò utilizzando grep è tramite il seguente comando grep che cerca i file in modo ricorsivo (segue tutti i collegamenti simbolici), cerca le stringhe che corrispondono all'espressione regolare PCRE specificata 3 e restituisce la corrispondenza del testo e il numero di riga in cui si è verificata la corrispondenza.
grep -RPn "(base64_decode|is_admin|eval|gzuncompress|passthru|exec|shell_exec|assert|str_rot13|system|phpinfo|chmod|mkdir|fopen|fclose|readfile) *\("
NOTA : parte di questo codice può essere utilizzato anche in codice legittimo, quindi analizza il codice correttamente e capisci come viene utilizzato prima di contrassegnare qualcosa come infezione o hack.
Confronta i file con un'installazione originale di WordPress
Questo è un metodo della vecchia scuola e, anche se richiede un po' di tempo, fa miracoli. Confronta i file del tuo sito web con quelli di un sito web non manomesso. Pertanto, se hai una copia di backup del tuo sito web, confronta il sito web manomesso. In caso contrario, installa una nuova copia di WordPress e dei plug-in che hai sul sito Web infetto su un host diverso e confrontali.
Esistono diversi strumenti che puoi utilizzare per confrontare i file. In questo esempio, utilizziamo uno strumento commerciale chiamato Beyond Compare, sebbene ci siano diverse alternative gratuite. Di seguito sono riportati alcuni screenshot di un confronto di esempio.
Quando si confrontano le directory principali di due siti Web WordPress, lo strumento evidenzia la differenza nel contenuto del file index.php , i nuovi file .htaccess e wp-config.php e le differenze nelle sottodirectory.
Facendo doppio clic sul file index.php possiamo vedere quali sono le differenze.
Cosa cercare in un confronto di file WordPress?
Cerca i file che non fanno parte del core di WordPress. La maggior parte delle infezioni aggiunge file alla radice dell'installazione di WordPress o alla directory wp-content . Se l'hack è il risultato di un plug-in vulnerabile, i file del plug-in potrebbero essere stati modificati.
Pulisci l'hack di WordPress
È ora di iniziare a ripulire seguendo la procedura seguente, una volta che conosci l'origine dell'hacking di WordPress e hai trovato l'infezione.
Trovare l'infezione automaticamente con un servizio WordPress
Se quanto sopra sembra troppo da gestire, non disperare. Esistono diversi servizi di sicurezza e plug-in di WordPress che puoi utilizzare per scansionare il tuo sito Web alla ricerca di malware e altre infezioni. Consigliamo i servizi di sicurezza WordPress di Malcare.
Si noti tuttavia che tali plug-in hanno un elenco limitato di firme malware che cercano. Pertanto, se l'attacco che ha colpito il tuo sito Web WordPress non è così comune, questi plug-in potrebbero non riuscire a identificare l'infezione. Non è raro per noi ricevere feedback dagli amministratori di WordPress il cui sito Web WordPress è stato vittima di un attacco per cui i plug-in malware di WordPress non hanno identificato nulla di sbagliato.
Il punto è che controlli di sicurezza efficaci implicano la presenza di diversi livelli di difesa e rilevamento. Mentre l'analisi manuale è quasi sempre il modo migliore per procedere quando puoi farlo; anche questi plugin non devono essere sottovalutati: possono ancora essere utilizzati e ad un certo punto torneranno utili.
Ripristino del tuo WordPress dal backup
Se hai un backup del tuo sito Web o blog WordPress, ripristinalo. È sempre molto più semplice che pulire manualmente il codice.
Modifica di tutte le password, elimina gli utenti non utilizzati e verifica i ruoli degli utenti di WordPress
Modifica tutte le password di tutti i tuoi utenti e servizi inclusi WordPress, CPanel, MySQL, FTP e il tuo personal computer. Controlla l'elenco degli utenti sul tuo FTP, WordPress, MySQL e qualsiasi altro servizio per confermare che tutti gli utenti sono legittimi. Se sono presenti utenti che non vengono più utilizzati, eliminarli. Verifica che tutti gli utenti di WordPress abbiano i ruoli e le autorizzazioni corretti.
Aggiornamento di WordPress core, plugin, temi e altri software
Assicurati di eseguire la versione più aggiornata di tutto il software necessario per eseguire il tuo sito Web WordPress. Questo non si limita solo a WordPress stesso, ma si estende anche a qualsiasi plug-in, tema, nonché patch del sistema operativo, PHP, MySQL e server Web (ad esempio Apache HTTP Server o Nginx) e qualsiasi server FTP in esecuzione.
Backup del tuo sito Web WordPress
Una volta a questo punto, prima di rimuovere il codice infetto effettivo, fai un backup del tuo sito Web WordPress.
Rimuovere l'avviso di malware di Navigazione sicura di Google
Se il tuo sito web è stato negato da Google Navigazione sicura, puoi richiedere un controllo di sicurezza per rimuovere l'avviso.
Una volta rimosso l'hacking di WordPress...
Congratulazioni, hai recuperato il tuo sito Web WordPress da un hack. Ora devi assicurarti che non accada di nuovo. Ecco alcuni suggerimenti su cosa dovresti fare:
- Installa un plug-in per il registro delle attività di WordPress per tenere traccia di tutto ciò che sta accadendo sul tuo sito Web WordPress.
- Se non disponi di una soluzione di backup, acquistane una.
- Usa un servizio di scansione di sicurezza di WordPress.
- Ruota le password del database e dell'amministratore e forza una forte sicurezza delle password di WordPress.
- Tieni sempre aggiornato il tuo WordPress, i plugin di WordPress, i temi e qualsiasi altro software che utilizzi.
- Rimuovi tutti i file inutilizzati come le vecchie installazioni di WordPress, i plugin e i temi WordPress inutilizzati (inclusi i temi WordPress predefiniti non utilizzati). I componenti e il software inutilizzati aggiungono una superficie di attacco non necessaria e dovrebbero idealmente essere rimossi.
- Segui la nostra guida al rafforzamento della sicurezza di WordPress per assicurarti di occuparti di ogni possibile problema di sicurezza sul tuo sito web.