Consigli per migliorare la sicurezza di un sito Joomla

Share

Consigli per migliorare la sicurezza di un sito Joomla

Nell’ultimo periodo si parla sempre più di sicurezza informatica e di sicurezza sul web, anche alla luce dei vari “leak” di password e dati riservati che hanno colpito anche i big di Internet quali Facebook, Instagram e altri servizi molto utilizzati. Tuttavia, i “data breach” possono avvenire anche su siti di piccole e medie dimensioni, pertanto è interesse del webmaster evitare che ciò accada.

In questo articolo vedremo alcune misure preventive che aiuteranno a migliorare il livello di sicurezza di un sito web Joomla e renderlo meno prono ad attacchi hacker, di vario tipo.

Come rendere sicuro un sito Joomla

La sicurezza di un sito si costruisce dalla base, quindi anche le cose più banali, ma basilari ne incrementano notevolmente le difese.

Aggiornamenti

La principale causa di attacchi hacker riusciti verso siti Joomla è l’utilizzo di versioni vecchie e non aggiornate del CMS o delle estensioni installare. Controllare regolarmente il pannello di controllo nel backend per assicurarsi che si stia eseguendo l’ultima versione supportata di Joomla.

Per verificare l’eventuale presenza di aggiornamenti per le estensioni installate, aprire “Estensioni > Gestione > Aggiorna“.

Purtroppo, a volte ciò non è sufficiente poiché non tutti gli sviluppatori di estensioni utilizzano la funzionalità di alert del core di Joomla per notificare la presenza di un aggiornamento.

Pertanto, è necessario prestare attenzione al rilascio di nuove versioni delle estensioni installate e qualora non utilizzassero la funzionalità di notifica aggiornamento del core di Joomla, abbonarsi ad eventuali newsletter o feed RSS relativi al rilascio di aggiornamenti.

Revisione periodica

Pianificare 30 minuti su base mensile per un controllo dello stato di aggiornamento dei siti gestiti. Potrebbe essere un’attività ideale per il venerdì pomeriggio, prima del weekend.

Verificare eventuali vulnerabilità note

Sarebbe opportuno stilare una lista di tutte le estensioni installate che non facciano parte del core di Joomla: componenti, moduli, plugin e template.

Joomla mette a disposizione un database contenente le vulnerabilità note delle estensioni, chiamato Vulnerable Extensions List (VEL), dove è possibile verificare l’eventuale presenza delle estensioni semplicemente inserendone il nome nella casella di ricerca.

 

Joomla Vulnerability Database

 

Iscriversi alle notifiche di Sicurezza di Joomla

Joomla utilizza delle mailing list per aggiornare gli utenti in caso di vulnerabilità nel core o in un’estensione. Le notifiche sono inviate attraverso Google Feedburner: Joomla Security Notifications.

Leggi  Eseguire Reset Password di un Blog Wordpress da Mysql

Controllare la robustezza della propria password amministratore

Le password facili da indovinare o forzare sono un problema di sicurezza molto comune. La tecnica utilizzata dagli hacker per craccare le password facili è detta “brute-force” e consiste nell’utilizzo di uno script per indovinare le combinazioni che daranno accesso al pannello di backend.

La miglior metrica riguardante l’efficacia di una password non è tanto la casualità, quanto la lunghezza. Utilizzare una password lunga con alcune variazioni nei caratteri e verificarle con tool online come “how secure is my password“.

Per esempio una password come myRand0mP4ssw0rd! richiederebbe circa 93 trilioni di anni di calcolo da parte di un computer per craccarla.

Backup

Molti hosting forniscono backup automatici. Sicuramente ottimo, ma è sempre meglio impostare e mantenere dei backup personali così da creare ridondanza in caso di problemi. L’estensione migliore, ma anche la più utilizzata è Akeeba Backup.

Qualora l’hosting non fornisca il backup o per mettersi al riparo da ogni evenienza, installare Akeeba Backup e configurarlo per eseguire il backup regolarmente e stoccarlo fuori dal sito. È prassi comune inviare manualmente il backup a Dropbox o Amazon S3.

Utilizzare Akeeba Backup e Dropbox

Una volta automatizzato il backup, è opportuno verificare con cadenza trimestrale che il backup sia valido e funzionante.

Eliminazione delle vulnerabilità

Ridurre la “superficie di esposizione” è un altro buon metodo per innalzare il livello di sicurezza del proprio sito web Joomla.

Controllare e correggere i permessi su file e cartelle

In Joomla, così come in tutte le applicazioni web, i file e le cartelle hanno dei permessi che indicano chi può cambiare cosa; ciò è molto utile per prevenire modifiche non autorizzate, tuttavia, è molto comune che qualcuno alle prime armi tenda a cambiare tali permessi consentendo a chiunque di apportare modifiche.

Quando un sito Joomla è su internet con dei permessi inappropriati, è molto più facilmente attaccabile.

Ci sono diversi modi per controllare e correggere i permessi dei file, il primo dei quali è certamente installare un’estensione che se ne prenda cura automaticamente, come Admin Tools. Un altro modo, altrettanto efficace è la correzione manuale dei permessi, che però richiede più tempo e conoscenze.

Come funzionano i permessi Unix

Controllare la versione PHP

PHP è il linguaggio in cui è scritto Joomla, così come moltissimi altri software e app sul web, e lo stesso linguaggio ha le proprie vulnerabilità di sicurezza; è pertanto fondamentale assicurarsi di utilizzare una versione aggiornata che non sia affetta da vulnerabilità.

Per verificare la versione di PHP in uso, dal backend di Joomla è sufficiente andare in “Sistema > Informazioni di sistema”.

phpinfo

Prendere nota della propria versione PHP ed inserirla nella casella di ricerca di un database di vulnerabilità (CVE – Common Vulnerability and Exposure): https://www.cvedetails.com/

Nel caso in cui la propria versione di PHP fosse affetta da vulnerabilità note, il prossimo passo sarebbe quello di selezionare una nuova versione dal proprio pannello di controllo dell’hosting oppure richiedere un update al fornitore dell’hosting.

Leggi  Come Nascondere Ajax Search Lite

Al link sottostante è possibile visualizzare l’attuale ciclo di rilascio di PHP per avere un’idea su quale versione adottare sul lungo periodo: http://php.net/supported-versions.php

Eliminare vecchi utenti amministrativi

È uno scenario molto comune per un sito Joomla che è attivo da diverso tempo, accumulare Super Users, utenti con i massimi privilegi di amministrazione del sito che nel tempo sono stati dati a sviluppatori o vecchi impiegati.

I vecchi account possono essere utilizzati per gli attacchi “brute-force”, anche perché molto spesso ci si dimentica magari di aver creato un account temporaneo con privilegi da Super User e con una password molto semplice per consentire al supporto tecnico di uno sviluppatore o di un provider di risolvere un problema o eseguire dei test.

Dopo qualche anno, questi account temporanei non eliminati potrebbero rappresentare un vero e proprio cavallo di Troia, attraverso cui gli hacker potrebbero compromettere il sito web.

Per controllare e rimediare, è sufficiente andare in Gestione utenti, filtrare per Gruppi di utenti, verificando uno ad uno gli account Administrators e Super Users ed eliminando quelli inutilizzati o non necessari.

Importante. Se è presente un account Super User che è attivo ed abilitato e non dovrebbe esserci, molto probabilmente il sito è stato hackerato ed è necessario procedere alla bonifica e messa in sicurezza.

Una prassi molto comune utilizzata dagli hacker è registrarsi tramite il frontend del sito come un normale utente per poi sfruttare una vulnerabilità per escalare i privilegi fino ad ottenere i permessi da Super User.

Controllare ed eventualmente rinominare l’utente admin

Dalla Gestione Utenti è buona norma anche andare a cercare per un utente denominato “admin”. Se questo utente esiste, meglio rinominarne l’username in qualcosa di diverso dalla parola “admin”.

La ragione per la quale conviene modificare tale nome utente risiede nel fatto che si tratta del nome utente di default del Super User e può essere utilizzato come dato sicuro nel caso di attacchi brute force.

Cambiando il nome utente in qualunque cosa diversa da admin, gli hackers dovranno indovinare anche il nome utente oltre alla password e questo rende un po’ più difficili gli attacchi brute-force.

Disinstallare le estensioni di terze parti non utilizzate

È molto comune che un sito Joomla nel corso del tempo accumuli una serie di estensioni installate, magari non più utilizzate.

Ciò, in principio, costituisce un rischio per la sicurezza, perché anche se non sono attualmente note vulnerabilità per quelle estensioni, questo non implica che non saranno scoperte in futuro.

Queste estensioni aggiuntive incrementano la possibilità che il sito sia interessato da vulnerabilità, aumentandone la superficie di attacco. Per questo è una buona prassi rimuovere le estensioni non utilizzate. Il codice che non esiste non può essere attaccato.

Importante! Ogni qualvolta si intenda procedere all’eliminazione di qualunque cosa dal proprio sito, si dovrebbe prima eseguire un backup. Inoltre, è utile disabilitare un’estensione per verificarne l’effetto sul sito prima di eliminarla completamente.

Quando si disabilitano le estensioni è consigliato disabilitare i meccanismi di caching, così da poter valutare correttamente l’impatto sul sito.

Leggi  PHP vai a capo ogni X caratteri in sequenza di caratteri lunghi

Rimuovere vecchi file ed installazioni

I siti Joomla online da anni tendono ad accumulare dei file aggiuntivi che non sono più necessari, specialmente nel caso di migrazioni o aggiornamenti non andati a buon fine. Controllare e rimuovere:

  1. Qualunque file PHP non essenziale costituisce un rischio per la sicurezza e dovrebbe essere rimosso.
  2. Backup che espongono informazioni come i dump dei database (generalmente con estensione “.SQL”) o file di backup del sito disponibili pubblicamente.
  3. Vecchie versioni o backup del sito in sottocartelle. Solo perché un vecchio sito non sia pubblicamente linkato non vuol dire che non sia raggiungibile dagli hackers. Non porta alcun beneficio avere un’installazione aggiornata se è disponibile pubblicamente una vecchia versione del sito poiché, una volta che gli hacker abbiano attaccato una parte dello spazio web, possono modificare qualunque altra parte. (Allo stesso modo, se sono utilizzati diversi CMS, esempio un blog in WordPress o un carrello non in Joomla, è di fondamentale importanza che anche queste applicazioni siano aggiornate sempre.)

Importante! È sufficiente che ci sia un solo “buco” nella sicurezza per compromettere l’intero sito o spazio web.

Assicurarsi che il rapporto errori sia disabilitato

In Configurazione Globale, in “Sistema > Configurazione globale > Server”, assicurarsi che il rapporto errori sia disabilitato (Impostato su “Nessuno”).

Questo perché si tratterebbe di “information disclosure”, cioè di pubblicazione di informazioni potenzilamente riservate e di dettagli tecnici che potrebbero aiutare gli hacker a capire percorsi e modalità di esecuzione del sito.

Disabilitando il rapporto errori, non saranno forniti dettagli sulla maggior parte degli errori che possono intenzionalmente generare.

raperr

Innalzare le difese di un sito Joomla

Dopo aver eliminato le debolezze comuni, è tempo di aumentare le difese del proprio sito Joomla.

Proteggere l’accesso al backend

Un modo per prevenire tentativi di forzare la password amministrative è quello di impedire completamente l’accesso al backend agli utenti.

I due modi più comuni per farlo sono:

  1. proteggere la cartella “administrator” con una password oppure
  2. aggiungere un parametro segreto all’URL del backend per fare in modo che si possa accedere solo quando si utilizzi il parametro segreto.

Di questi due approcci, il più semplice è quello di impostare un parametro segreto nell’URL.

Ciò perché è possibile utilizzare un’estensione per impostarlo e non è neecessario oltrepassare due schermate di login per accedere al backend del sito. Sia Admin Tools, sia RS Firewall consentono l’aggiunta del parametro all’URL del backend.

Altrimenti, nella documentazione ufficiale di Joomla sono disponibili informazioni su come proteggere con password la cartella administrator.

Utilizzare e migliorare il file .htaccess

Joomla fornisce un file chiamato “htaccess.txt”, una volta rinominato in “.htaccess” è possibile utilizzare gli URL SEF (Search Engine Friendly).

Tuttavia questo file include anche alcune solide protezioni di base contro gli hacker, anche se non sono utilizzati gli URL ottimizzati per i motori di ricerca.

Il file .htaccess in sostanza imposta le regole su quali URL possono essere raggiunti e come sono gestiti dall’installazione di Joomla.

Admin Tools, ad esempio, ha uno strumento di costruzione di file .htaccess che semplifica la creazione di regole per migliorare la sicurezza.

Considerare l’implementazione dell’autenticazione a 2 fattori

L’autenticazione a 2 fattori avvicina il telefono al login di Joomla e richiede l’inserimento di un codice numerico (token) ad ogni accesso.

Ciò riduce la possibilità per gli hacker di indovinare la password poiché non dovrebbero solo scoprire la password amministrativa, ma anche avere il controllo del cellulare, per visualizzare i codici token.

Ulteriori informazioni sull’autenticazione a due fattori: https://docs.joomla.org/J3.x:Two_Factor_Authentication

GIuseppe Zetta

Il mio pseudonimo è Giuseppe Zetta aka Zell Ho la passione per l’informatica, nata all’età di 6 anni, quando ho avuto a che fare per la prima volta con un Commodore64, appassionato di Intelligenza Artificiale, Sviluppo di Videogiochi e Tecnologie OpenSource. Porto avanti progetti informatici personali con i miei amici di vecchia data, ed ho svariate passioni che variano dall’arte del DJ al video editing passando fino alla produzione musicale.

You may also like...