Security Best Practices per Joomla! e WordPress

security best practices

Lo scopo di questa guida è elencare le best practices -buone prassi- per aumentare il livello di sicurezza complessivo del vostro sito web (sia su hosting che su server personale), rendendolo più resistente ad attacchi di terze parti.

Le elenchiamo di seguito.

CREDENZIALI DI ACCESSO

Il buon senso dice di usare una password efficace, ed è certamente corretto, tuttavia spesso ci si dimentica che le credenziali d’accesso sono una coppia di nome utente e password e pertanto entrambe le parti vanno tenute in considerazione.
Dunque evitare ‘admin’, ‘administrator’, ‘webmaster’ e altri nomi utente comuni e facilmente intuibili dai malintenzionati; anche il proprio nome va evitato.
Per quanto riguarda le password il miglior sistema è quello di affidarsi ad un programma di gestione password come Keepass; Keepass genera password robuste secondo algoritmi collaudati, di fatto rendendo gli attacchi di tipo brute-force problematici per i malintenzionati. Rimandiamo a questo video  per approfondimenti.

Un’ulteriore livello di sicurezza è dato dall’uso di un sistema di 2-Factor Authentication (2FA), ossia un sistema che prevede l’utilizzo non solo di una password, ma anche di un codice generato di volta in volta, non riutilizzabile, che viene inviato generalmente su cellulare.
Il vantaggio di usare 2FA è evidente in quanto difficilmente l’hacker può venire in possesso dello smartphone, tra gli svantaggi c’è la lentezza del processo di accesso, la necessità di ripetere la procedura ad ogni accesso e l’eventualità di rimanere (temporaneamente) tagliati fuori nel caso il cellulare non fosse a portata di mano.
Uno dei sistemi di 2FA più usati è Google Authenticator, la cui app va installata su smartphone, mentre in WordPress è previsto un plugin dedicato, in Joomla! è nativamente integrato e va soltanto abilitato.

Infine, non scordate di applicare una buona gestione a tutte le credenziali legate al sito web, quindi non solo quelle del CMS in uso ma anche del profilo FTP associato, dell’hosting, della VPS, del pannello di controllo, di PHPMyAdmin, degli indirizzi email associati, etc.

AGGIORNAMENTI

Aggiornate la versione di Joomla!/Wordpress e di tutti i componenti di terze parti utilizzati appena possibile; gran parte degli attacchi viene condotta sfruttando delle falle, dei bug, delle debolezze nel codice, che offrono agli hacker la possibilità di compiere le loro azioni pericolose.
Gli aggiornamenti, oltre ad introdurre nuove funzioni, a migliorare quelle esistenti o a cambiare la parte grafica, servono a sistemare i bug presenti, rendendo il prodotto più sicuro.

In Joomla! e WordPress la gestione degli aggiornamenti è pressoché identica, infatti basta premere l’apposito pulsante e aspettare che il sistema si aggiorni in autonomia; consigliamo di valutare sempre prima il feedback degli utenti onde evitare incompatibilità con i componenti installati, e di effettuare un backup preventivo.
In alcuni casi l’aggiornamento potrebbe richiedere un intervento più robusto e complesso, in questo caso si consiglia di seguire accuratamente le guide messe a disposizione dal produttore.
L’update dei componenti di terze parti come plugin e temi invece va considerato accuratamente caso per caso, e le modalità d’aggiornamento possono variare. In genere si tratta comunque di operazioni facili e veloci.

ESTENSIONI E TEMI DI TERZE PARTI

Joomla! e WordPress, se costantemente aggiornati, offrono poche debolezze e vie d’accesso per gli hacker, sono dei sistemi sostanzialmente sicuri, e in ogni caso il rilascio di patch è tempestivo; la gran parte degli attacchi, oltre a quelli in cui si trovano le credenziali d’accesso, viene condotta sfruttando delle debolezze presenti nei componenti di terze parti, come temi, estensioni e plugin e nelle versioni obsolete di Joomla! o WordPress (abbiamo già parlato dell’importanza degli aggiornamenti).
Il consiglio generale è di fidarsi solo di quei prodotti con aggiornamenti costanti, con un supporto valido ed affidabile alle spalle, sviluppati da produttori autorevoli e di cui si possono trovare vari feedback in rete.
Ponete particolare attenzione ai componenti gratuiti, forniti senza supporto e disponibili su siti di dubbia autorità, così come a quelli disponibili su siti diversi da quello dei produttori, stante il rischio di trovarsi con estensioni o plugin modificati con codice malevolo. Controllate sempre se ci sono feedback disponibili sul prodotto e sul produttore, che deve essere autorevole e offrire un buon supporto.
I siti suggeriti dove cercare temi, plugin ed estensioni sono naturalmente le directory
di WordPress e Joomla!.
Infine, disinstallate ciò che non viene più usato e controllate periodicamente lo stato dei componenti utilizzati.

BACKUP

I backup costituiscono la classica scialuppa di salvezza nel caso le cose dovessero andare male; la raccomandazione è quella di pianificare un sistema di backup completo ed affidabile.
Joomla! e WordPress sono costituiti sostanzialmente da due parti: una costituita dal contenuto della cartella root del sito, per intenderci quella a cui accedete per caricare i contenuti via FTP, e un database MySQL dove sono salvate tutte le informazioni.
Entrambe le parti devono essere sottoposte a backup sia ad intervalli regolari per proteggersi da eventuali attacchi, sia in concomitanza di eventi rilevanti a livello di sistema come aggiornamenti ed installazione di componenti, per proteggersi da eventuali conflitti o non compatibilità fra prodotti.
Il backup manuale si effettua semplicemente copiando il contenuto della cartella root via FTP (articolo di riferimento) e il database usando l’opportuna funzione disponibile nel pannello di controllo (articolo di riferimento) o da phpMyAdmin (articolo di riferimento); tuttavia, oltre ad essere due operazioni tediose e soggette a possibili errori manuali, si incontrano delle difficoltà quando il backup deve essere ripetuto costantemente.
Il miglior modo per fare dei backup automatici è usare dei plugin (come sempre vale la regola d’oro di verificare l’affidabilità dei plugin in uso) di terze parti, come ad esempio Akeeba Backup; alcuni prodotti possono gestire i vostri backup direttamente su uno spazio di archiviazione online.
Per ultimo, fate sempre delle prove per verificare che il restore dei backup avvenga senza problemi: non ha senso trovarsi con un backup inutilizzabile, anzi, l’illusione di una falsa sicurezza può generare ulteriori problemi.

GESTIONE PERMESSI FILE E CARTELLE

I file e le cartelle hanno degli attributi particolari che definiscono l’accesso da parte degli utenti.
Ci sono 3 livelli di accesso: lettura, scrittura ed esecuzione.
Senza entrare nei dettagli, è importante configurare i permessi in modo corretto al fine di evitare l’accesso a parti indesiderate -non solo hacker- pur garantendo il livello di accesso adeguato al sistema in modo da poter servire di volta in volta il sito web.
Abbiamo parlato di come configurare i permessi in questo articolo (hosting Linux) e in quest’altro (hosting Windows).

HOSTING E SERVIZI SICURI

Avere un sito conforme alle best practices descritte in questo articolo ha ben poco significato se l’architettura su cui si basa non è sicura.
Scegliete un provider che vi possa fornire un servizio di hosting sicuro, collaudato, aggiornato e conforme, a sua volta, alle best practices descritte per i componenti lato server/networking/applicativo.
Nondimeno, gli attacchi purtroppo esistono e non esiste un’architettura completamente sicura, dunque verificate il supporto che vi viene fornito ponendo particolare attenzione alle procedure standard seguite dopo aver subito un attacco. Verrete lasciati soli o un tecnico vi aiuterà a riportare online e funzionante il vostro sito?

 

Gestire la sicurezza del proprio sito non deve aver a che fare con ansia o paranoia, è una parte della gestione al pari di altre azioni comuni come la gestione dei contenuti o delle statistiche di utilizzo; nondimeno, seguire le best practices che abbiamo descritto contribuisce ad aumentare nettamente la resistenza agli attacchi esterni.