Falla di Joomla 3.4.5 e attacco al sito
Sviluppare siti con sistemi CMS offre numerosi vantaggi, ma esiste anche un rischio da non sottovalutare: se l'infrastruttura base del sistema, il motore software insomma, ha buchi o, peggio, falle di sicurezza, gli hacker hanno a disposizione migliaia, o decine di migliaia, di siti che si possono compromettere con la stessa tecnica.
Recentemente è stata scoperta una falla di sicurezza in Joomla 3.4.5 (e versioni precedenti). Come si legge nell'articolo, tali falle vengono sfruttate anche entro poche ore, tempo più che sufficiente per infettare numerosissimi siti. La patch è stata pubblicata rapidamente, ma l'attacco era già andato a segno.
Questa premessa ha lo scopo di raccontarvi la mia disavventura di fine 2015. Un giorno mi arriva una mail da Altervista, dove questo sito è ospitato. La pubblicazione del sito era stata bloccata a seguito dell'invio di numerose mail sospette. Ohibò. Mi collego via FTP ed effettivamente noto una serie di strani file PHP nella root del sito e altrove. Inizio una lunga e faticosa pulizia, aggiorno Joomla alla versione più recente (3.4.8), controllo se ci sono aggiornamenti di plugin e moduli aggiuntivi e finalmente comunico a Altervista l'avvenuta bonifica. A breve, il sito è nuovamente disponibile.
Tuttavia, dopo qualche tempo un secondo mail mi informa che SpamCop ha individuato uno script malevolo nel sito. Evidentemente mi era sfuggito il file PHP responsabile. A questo punto decido di prendere il toro per le corna: è inutile cercare in tutte le numerosissime sottocartelle di Joomla alla ricerca di file dannosi, meglio cancellare tutto, cartelle Joomla e database MySQL, e reinstallare. Così mi sono armato di pazienza e ho proceduto ad un'installazione locale di Joomla 3.4.8, quindi dell'ultima versione del template e dei (pochi) plugin, moduli e componenti aggiuntivi che utilizzo.
Fatto questo, ho applicato tutte le varie personalizzazioni (CSS, override, etc.), di cui ovviamente tengo sempre copia, e ho testato la corretta funzionalità del sito in locale; fortunatamente tutto ha funzionato (quasi) subito, grazie a due precauzioni che prendo sempre: la prima, di cui è inutile sottolineare l'importanza, è un backup periodico del sito, sia del database MySQL che di tutte le cartelle Joomla; il secondo, tenere sempre una documentazione completa di quali file personalizzo ed utilizzo in override e delle relative modifiche applicate, elencando in modo completo cosa è stato modificato e perchè, oltre a tenere traccia degli altri aggiustamenti fatti al sito, non solo riguardo ai file stessi, ma anche relativamente alle opzioni del template, alle impostazioni generali di Joomla, alle traduzioni nell'Override lingua e così via.
Creare e tenere aggiornato questo documento è una scocciatura mondiale; ma quando ci si trova a dover rimettere in piedi un sito ex-novo è una risorsa fondamentale. Se non l'avessi avuto, non so se mi sarei preso la briga di fare una pulizia così radicale; probabilmente avrei chiuso tutto la baracca.
Ora è tutto aggiornatissimo e pulito. Se riscontrate problemi mi farete cosa gradita avvisandomi.