Avrete notato che negli ultimi giorni il mondo Evermind ha subito un attacco informatico abbastanza importante, che ha praticamente inficiato non solo tutto il sito ma anche il nostro ambiente di test e tutti i progetti interni ai quali stiamo lavorando.
Cosa è successo?
Ho già affrontato il problema della pagina bianca su WordPress e di come si possa risolvere più o meno facilmente. Questa volta, però, l’intrusione è stata molto più invasiva e di difficile soluzione.
Abbiamo subito iniziato ad analizzare la nostra installazione WordPress, scoprendo un attacco code injection nella prima riga di tutti i file PHP nello specifico di una stringa hash dinamica ed ogni file PHP aveva una sua riga diversa da tutte le altre.
Sembrandomi piuttosto strano, abbiamo approfondito l’indagine per poi scoprire che il codice iniettato aveva una firma comune:
GLOBALS[“%x61%156%x75%156%x61”]
Come risolvere?
Purtroppo non esiste alcuna reference su Google su questa problematica, per cui non ci è rimasta altra soluzione che eliminare tutto, ripristinando selettivamente tutta l’installazione di WordPress.
Se dovesse capitarti un problema di questo tipo, devi avere cura di eliminare tutti i file PHP perchè, se ne tralasci anche uno solo lo script riparte ed infetta nuovamente il sito.
Un’altra soluzione sicuramente più veloce e smart, in ambiente Unix, è quella di avviare una combinazione di comandi egrep e sed, per cercare ricorsivamente l’occorrenza della firma precedentemente evidenziata e sostituirla con il tag di apertura di PHP.
egrep -irl '%x61%156%x75%156%x61' ./ |xargs sed -i -e "1s/.*/
Per questo comando ringrazio Sascha che mi ha fatto risparmiare non poco tempo 🙂
I log di accesso e di errore non ci aiutano molto nel capire quale sia la vulnerabilità, per cui se vuoi contribuire a risolvere questo problema definitivamente, senza pezze di alcun tipo, commenta questo post!