Vai al contenuto

Sito wordpress hackerato? Come ripristinarlo in 5 passi e metterlo in sicurezza con una guida operativa

  • Obbiettivo : Ripristinare in modo rapido ed efficace un sito web hackerato/violato/infettato da un malware
  • Livello di difficoltà : variabile, intermedio-Avanzato a seconda del tipo di malware
  • Competenze richieste : PHP basico, FTP, utilizzo del pannello di controllo del vs hosting
  • Tempo di intervento : variabile in base al livello di severità e dal grado di penetrazione, da un minimo di 1 ora

1 -BACKUP : RIPRISTINO O ESECUZIONE PRE-INTERVENTO

Se hai un backup pulito non pensarci due volte e ripristinalo. Ti permetterà di tornare velocemente allo stato in cui il tuo sito era prima di essere attaccato e quindi lavorare sulla sicurezza o sugli aggiornamenti per prevenire. E’ come utilizzare una macchina del tempo, e ti assicuro che per quanto banale possa sembrarti il mio suggerimento, è un qualcosa che spesso si ignora, magari presi dall’ansia del momento e dalla fretta di “sistemare le cose”.

Non essere uno di quegli utenti che pensa “vabbè se mi succede lo rimetto su daccapo”. Infatti con dei backup regolari ti puoi togliere da tantissimi problemi. Però attenzione : non credere che il tuo hosting debba necessariamente pensare ad avere dei backup anche se è quello che pubblicizzano nelle loro splendide campagne di marketing. L’unico (sicuro) modo è quello di accertarsene chiedendoglielo e poi, oltre ai loro backup, utilizzare una soluzione ad hoc per wordpress che potrà fare dei backup incrementali o completi a seconda delle tue impostazioni. 

Ovviamente ove il tuo sito abbia dei dati relativi a clienti, ordini o altre informazioni che potrebbero essere modificate e quindi andrebbero perse facendo un ripristino ti consiglio di fare un backup del sito “hackerato” o di salvare queste info se sono memorizzate sotto forma di files. Nel primo caso potrai installare magari localmente il database una su un’installazione pulita ed estrarre i dati che poi andrai a re-importare nel sito, nel secondo ti basterà fare un upload dei documenti una volta che il sito sarà stato ripristinato allo stato ottimale.

Se non hai un backup fanne uno tramite il tuo pannello di controllo del server oppure scarica manualmente il sito e fai un backup del database. Non importa che il sito sia compromesso, sono dati che comunque potresti dovre recuperare ed è buona norma metterli al sicuro.

2 IDENTIFICARE LE ORIGINI E LA CAUSA DELL’INFEZIONE

Per prima cosa controlla i logs delle attività sul tuo server ed FTP, accessi, errori e quanto altro a disposizione.

Al 90% il sito è stato infettato tramite un plugin o un tema non aggiornato/sicuro, o ad esempio del codice di una precedente installazione di wordpress inutilizzata e non cancellata dal server o una copia di staging inattiva ma ancora presente (pessima abitudine, bisogna sempre lasciare pulito!!)

Esiste però anche un’ultima (ahime!) possibilità, nella quale mi sono imbattuto diverse volte : un hosting condiviso senza separazione. Cosa vuol dire? 

Semplice : tutti i siti sono presenti nella root (directory principale) del sito ed ognuno ha una sua cartella….ma sono tutti accessibili appunto dalla root.  Perfetto, questo, per un malware, che infatti, oltre ad infettare un sito, comunicherà con tutti gli altri, creando una vera e propria reazione a catena che andrà a bucare/hackerare tutti i siti presenti sul server. Bingo!! Con un colpo solo ne butta giù anche una cinquantina! Bene, ora sapete cosa chiedere al vostro hosting di fiducia : ambienti separati, anche se su un hosting condiviso. Grazie.

3 CAPIRE COME AGISCE IL VIRUS E LEGGERE IL CODICE

Innanzitutto bisogna dire che quando un sito viene hackerato ve ne accorgete in quanto oltre a non funzionare bene, presenta diversi problemi. Ad esempio quando visitate le pagine venite reindirizzati a siti esterni senza che ne siate consapevoli oppure vi appaiono contenuti di terze parti o ricevete messaggi di download ad esempio di files che potrebbero infettare (oltre al sito) anche il vostro beneamato PC. Per fare questo gli hacker inseriscono di solito del codice malevolo nei temi, nei plugin o nei files CORE del sito web. Nella migliore delle ipotesi. Nella peggiore inoltre, accedono pure al database. Ma cosa è un VIRUS? E’ uno script, del codice che viene eseguito e che effettua delle operazioni a catena al momento in cui trova determinate condizioni. Ad esempio un virus può fare in modo che ogni file con estensione .js (javascript) venga rinominato e gli venga aggiunto un codice che lo rende illegibile o che ne blocca delle funzionalità.

🧰 QUALI SONO GLI STRUMENTI DA UTILIZZARE

Per poter quindi scovare e “ripulire” il sito dobbiamo saper lavorare con il codice. Saper usare un editor web di codice come VS CODE , SUBLIME TEXT, BRACKETS, NOTEPAD++ etc. 

  • Inoltre dovrete saper accedere al vostro sito tramite un client FTP, vi consiglio FILEZILLA, gratuito, aggiornato e sempre leggero.
  • Conoscere PHP come linguaggio, almeno a livello base richiede circa un paio di ore, e vi permette di avere dei rudimenti per capire cosa cancellare e cosa non. 
  • Per poter trovare l’infezione dovete controllare i files presenti nel sito. Se non avete mai lavorato con wordpress niente panico, la struttura è molto semplice ed ordinata.
  • Scaricate wordpress dal sito ufficiale sul vostro PC per poter “vedere” ed avere a portata di mano una struttura pulita da comparare. Vi mostro nelle immagini qui sotto alcuni dettagli come i files di configurazione e le directory.
  • In un sito wordpress “compromesso” troverete, oltre ad altri files dai nomi a dir poco “insoliti” o senza estensione, anche dei files “originali” che sono modificati con il codice malevolo appunto.

💡 TIP Vi consiglio, prima di cancellare i files “dubbi” di rinominarli cambiandogli l’estensione Es. asdadsg.php in asdasdg.php_SOSPETTO

A screenshot of an FTP client window showing a list of WordPress directory contents with a highlighted 'wp-content' folder.
Spesso oltre ai files di configurazione, i malware si annidano nella sottocartella WP-CONTENTS e relative SOTTOCARTELLE – MA E’ BUONA REGOLA CONTROLLARE TUTTO IL SITO
WordPress configuration files with arrows pointing to their relationships.
Ecco i principali files di configurazione nella ROOT del sito in WordPress
  • In questo modo oltre ad “inattivarlo” potrete sempre rinominarlo ove abbiate sbagliato
  • Inoltre scaricate i files sospetti sul vostro pc in una cartella dedicata. 

Aprite a questo punto i files incriminati e leggete quello che c’è dentro, se si tratta di un virus ve ne accorgerete in quanto oltre a non avere  un codice formattato in modo ordinato e commentato, presenta delle funzioni che vanno ad inoculare del codice malevolo nel sito. Vi posto qui sotto un esempio in tal senso.

A computer screen displaying code with an orange arrow pointing to a specific line within the text editor IDE.
Qui potete vedere dove si “annidava” il virus, all’inizio di ogni file veniva aggiunto questo codice che poi, tramite una funziona di PHP si trasformava in un richiamo ad uno script PHP che si inoculava nell’header del file auto-lanciando un redirect verso un sito malevolo

💡 TIP Vi do alcuni indizi, spesso ricorrenti nei malware. Le funzioni qui di seguito infatti permettono a tale codice, di replicarsi ed inoculare il malware sul vostro server e cercandole magari potrete risparmiare tempo:

  • base64_decode
  • is_admin
  • eval
  • gzuncompress
  • passthru
  • exec
  • shell_exec
  • assert
  • str_rot13
  • system
  • phpinfo
  • chmod
  • mkdir
  • fopen
  • fclose
  • readfile

💡 TIP Avete trovato un codice alfanumerico illegibile? Volete sapere cosa significa?

Se è codificato con un sistema base_64 allora copiate ed incollatelo qui :

🚀 Base64 Decoder https://www.base64decode.org/

E potrete vedere cosa “inocula” il virus in termine di codice.

Altra chicca? Volete sapere cosa significa tutto quel codice che vedete “prima” dei vostri classici files?

🚀Malware Decoder https://malwaredecoder.com/

Copiate ed incollate qui…..SORPRESA! Quel codice viene convertito automaticamente in uno script che è inserito ed eseguito nelle vostre pagine…..non vi aspettavate che il malware fosse “semplice” o “visibile” solamente inserendo il nome del sito vero?

💡 TIP : idealmente sarebbe ottimo avere un “monitor” che ti mostri i cambi di permessi o le modifiche dei files sul server per data, in questo modo potresti risparmiare ancora più tempo nella ricerca!

'Online PHP and Javascript Decoder' web tool with an example of decoded obfuscated code revealing a hidden script URL.
Malware Decodificato

In questa immagine potete vedere il codice del malware che è stato “inoculato” nei files INDEX del sito e che veniva caricato all’avvio di ogni pagina o script di quest’ultimo. Abbiamo dovuto rimuoverlo in ogni file che aveva come parte del nome “index” ( in quanto il virus attaccava questo tipo di files). Per capire però cosa “significa” eccolo convertito in formato leggibile. Ed ecco lo script che reindirizzava ad un sito malevolo.

The image shows a computer screen with lines of highlighted code and orange arrows pointing to specific parts of the code.
Il codice del Malware che dal quale è partito il Virus

Qui potete vedere il codice sorgente del virus che era annidato in un file dal nome sospetto. Come vedete il codice in base_64 è incomprensibile ma con i tool che vi ho segnalato potrete vederne il meccanismo di azione. Inoltre il virus modificava anche in 777 le dir ed i files, quindi è necessario intervenire anche sui permessi per scongiurare una facile re-infezione del sito.

4 – RIMOZIONE DEL MALWARE E RE-UPLOAD FILES

Ora che sapete come agisce il malware, e una volta che avrete trovato però del codice “malevolo”, potrete scaricare il sito in massa (spesso potete anche “zipparlo” dal vostor pannello hosting) ed utilizzare uno strumento per iniziare a “comparare” le vostre directory con quelle “standard” di una installazione wordpress pulita.  Alcuni strumenti che vi possono aiutare in merito sono:

👉 Beyond Compare (commerciale, ma davvero potente)

👉 WinMerge 

👉 Meld

👉 DeltaWalker (commerciale)

Una volta scelto lo strumento non vi resta che comparare i files in cerca del codice del malware e dei files “sospetti” da eliminare. 

Dopo aver effettuato la pulizia potrete ricaricare sul vostro sito i files corretti e testare il sito.

Il vostro sito ancora non funziona? Sei certo di aver controllato accuratamente il sito? Fai un altro tentativo!

Spesso i malware si “accontentano” di bucare il sito e lavorare a livello di file-system, ma se così non fosse allora preparatevi…..non basterà un tutorial in quanto potrebbero aver infettato anche il server a livello più profondo o il database.

Se ancora hai problemi col sito contattami, ti aiuterò in modo professionale e rapido di ripristinare e “pulire” siti web infettati.E se non ci riesco, non pagherete nulla. O risolvo, o niente!

5- MESSA IN SICUREZZA DI WP E CONTROLLO SU GOOGLE SEARCH PER EVITARE PENALIZZAZIONI SEO

Alcuni passi ora che il sito è stato pulito sono necessari per evitare che si venga re-infettati.

  • Cambiare gli accessi al database e le password dei profili admin
  • Modificare e rigenerare le SALT KEYS di wordpress (sono delle chiavi che consentono di mantenere gli accessi aperti al sito, e sono ripristinabili con delle nuove che andranno a “tagliare” gli eventuali tunnel lasciati aperti dalle sessioni dell’hacker)
  • Chiedere un ripristino dei permessi per dir e files al vostro hosting, infatti spesso i malware vanno a modificare in 777 (files leggibili, modificabili ed eseguibili dal MONDO!) tramite CHMOD i permessi per poter poi modificare i files e bucare meglio il sito. 
  • Verificare i vostri files htaccess e wp-config che sono, tra le altre cose, molto importanti ed è anche tramite questi files che potrete aggiungere delle direttive al vs server PHP per proteggervi ancora meglio
  • Entrate nel vostro sito e verificate che tutti i plugin siano correttamente aggiornati alle ultime versioni e rimuovete plugin inutilizzati o obsoleti (RIMUOVETE, NON DISATTIVATE!)
  • Cancellate tutte le cache, verranno ripristinate al successivo reload di pagine o contenuti
  • IMPORTANTE – Se il tuo sito è stato marchiato come Infetto da malware è probabile che google lo segnali come tale e quindi penalizzi le visite con un avvertimento. Se hai pulito il sito puoi richiedere una verifica che di solito in 24 ore o meno permetterà di “sbloccare” lo stato e re-indicizzarlo positivamente.

💡 TIP : Spesso i malware creano delle directory nella subdir plugins che però non sono visibili dal lato admin, occhi aperti! Stesso discorso per la dir MU-PLUGINS (Must use plugins) 

⭐STRUMENTI CONSIGLIATI PER IL BACKUP

Certo se avessi avuto un baclup non avresti dovuto leggere tutto questo articolo e spendere ore del tuo tempo, e denaro. Un pò di pazienza, dei click ben assestati ed il gioco era fatto!

Tranquillo, è capitato a tutti. Anche di peggio. 

Però facciamo in modo che non capiti più! Prendi in considerazione di avere dei backup regolari tramite un tool specifico a scadenze determinate.

Un piano di azione potrebbe essere quello di impostare dei backup bi-settimanali e scaricarli mensilmente se preferisci sul tuo drive locale, oltre a tenerne una copia in cloud. In questo modo avrai un “doppio” piano di azione da poter attivare ove se ne presenti la necessità.

Personalmente ti consiglio questi due plugin per WordPress che mi sento di consigliarti:

🚀WP VIVID

Offre diverse funzionalità tra cui il supporto per ampi database, migrazione dei siti e backup automatici nonchè esportazione su cloud esterni oltre che su server locale. Permette comunque di dividere il backup in vari files per una migliore gestione ed altre features interessanti. Supporta backup incrementali e molto altro!

🚀WP TIME CAPSULE

⭐STRUMENTI CONSIGLIATI PER LA SICUREZZA DEL SITO

In ultimo mi sento di consigliarvi degli strumenti che sono dei Firewall e degli Anti-Virus installabili sui vostri siti con pochi semplici passi e possono aiutarvi nella pulizia in modo semi-automatico o del tutto automatico.

Personalmente anche se ho le competenze per lavorare manualmente, mi avvalgo di questi software quando voglio avere un doppio riscontro del lavoro svolto o anche solo in fast pro-attiva sui siti dei miei clienti che gestisco dal punto di vista della sicurezza. 

In molti casi oltre ad offrire una protezione in tempo reale riescono a bloccare il propagarsi del malware.

Bisogna dire che a volte non ci riescono immediatamente (mi è capitato con un nuovo 0 day malware di averlo pulito prima io che loro averlo riconosciuto), ma magari dopo 24-48 ore e se il sito è stato ad esempio cancellato, non potranno fare molto, ma possono essere impostati per agire in modo più o meno “duro”.

Ovviamente sono strumenti che vanno configurati, e che inizialmente possono dare dei falsi positivi o bloccare ad esempio la comunicazione del sito con servizi terzi, proprio come un vero e proprio FIREWALL. Però con un pò di tuning e messa a punto lavoreranno sempre meglio nel tempo.

Se per voi il tempo è denaro optate per una consulenza professionale, se potete attendere allora considerateli, sono soldi ben spesi e metteteli a bilancio. Contattami, ti aiuterò in modo professionale e rapido di ripristinare e “pulire” siti web infettati.E se non ci riesco, non pagherete nulla. O risolvo, o niente! Posso anche fare un security audit del tuo sito o un’ottimizzazione, come ho già detto, prevenire è sempre meglio che curare!

Inoltre ad eccezione di Malcare e Wordfence, Astra e Virusdie sono implementabili anche su altri framework/siti, non solo su wordpress.

👉 VIRUSDIE

👉 ASTRA SECURITY

👉 WORDFENCE FOR WORDPRESS SECURITY (Il Mio preferito per WP)

👉 MALCARE

VIDEO DI UNA RIMOZIONE CON ESEMPIO LIVE (INGLESE)

Ho realizzato un video (in INGLESE) dove mostro un ultimo caso risolto, se può interessarti lo trovi qui sotto!
476827 PR

Sito Hackerato? Niente Panico!