Introduzione
Abbiamo già trattato in precedenti articoli il tema della sicurezza in Joomla, sia sul versante back-end che su quello front-end. In questo articolo presenteremo tre nuovi componenti che si prefiggono come scopo quello di innalzare il livello di sicurezza del back-end del CMS Joomla.
Una delle prime azioni compiute da un ipotetico hacker su un sito gestito con Joomla è quella di verificare che effettivamente, il sito sia amministrato con Joomla, naturalmente l'azione più semplice è quella di digitare l'indirizzo del sito che si vuole tentare di attaccare aggiungendo il path /adiministrator (http://www.miositojoomla.com/adminitrator). Nella modalità standard, cioè senza alcuna protezione Joomla risponderà caricando il form per il login, i plugin che andremo a presentare hanno come funzionalità di base, l'obiettivo di modificare tale comportamento reindirizzando la richiesta in altre pagine del sito, spesso l'azione di testing viene essere effettuata in automatico da script, appositamente sviluppati così da poter sferrare attacchi a forza bruta.
AdminExile
Il primo componente che presenteremo è AdminExile, giunto alla versione 1.4, distribuito con licenza GPLv2 non commerciale e sviluppato da Michael Richey. È possibile prelevare il pacchetto d'installazione tramite il sito ufficiale del progetto, scegliendo eventualmente la distribuzione sia per la versione 1.5 che 1.6/1.7 di Joomla.
Una volta utilizzata la normale procedura d'installazione prevista per il plugin di Joomla occorrerà attivare il componente servendoci del menu "Gestione Plugin: Plugins", ad attivazione avvenuta il CMS ci reindirizza automaticamente alla home page del nostro sito, a questo punto provando nuovamente a richiamare l'indirizzo http://www.miositojoomla.com/adminitrator, il sistema reindirizzerà la nostra richiesta alla home page, per poter accedere alla sezione back-end si dovrà da questo momento in poi digitare il seguente indirizzo http://www.miositojoomla.com/adminitrator?adminexile
, dove adminexile è la chiave di default utilizzata dal componente.
È naturalmente sconsigliato lasciare la chiave impostata uguale a quella di default, è possibile infatti, in qualsiasi momento modificare sia la chiave utilizzata che la pagina alla quale redirigere la richiesta, operazione resa possibile tramite l'accesso al pannello d'amministrazione ed alla relativa sezione "Gestione Plugin: Plugins" contenente le impostazioni del modulo "System – AdminExile" (figura 1).
È altresì possibile nel caso in cui si verifichino problemi d'accesso al pannello d'amministrazione agire direttamente all'interno del database MySql utilizzato alla base del nostro Joomla, in particolare potremo disabilitare il plugins utilizzando al seguente query: " UPDATE '#__extensions' SET 'enabled' = 0 WHERE 'name' = 'PLG_SYS_ADMINEXILE' ".
Backend Token
Come nel caso precedente, anche Backend Token protegge l'accesso al back-end di Joomla andando ad analizzare l'URL digitato dall'utente, in particolare viene astratto il concetto di token.
Una volta effettuata l'installazione tramite la normale procedura prevista da Joomla occorrerà attivare all'interno della sezione "Gestione Plugin: Plugins" il componente "backedntoken" e personalizzare sia l'URL di reindirizzamento sia il token da digitare per poter accedere al login del pannello di controllo.
Supponiamo di voler utilizzare come token la stringa "123456" e di reindirizzare tutte le richieste errate ad una ipotetica pagina presente sul nostro sito con nome indesiderato.php, per adempiere a questo compito imposteremo gli appositi campi deputati a tali funzioni come mostrate in figura 2.
Da questo momento in poi, per poter raggiungere la nostra sezione back-end si dovrà digitare l'indirizzo del pannello d'amministrazione con l'aggiunta della query-string token=123456
, dove naturalmente 123456 corrisponde al valore del token prescelto in fare di configurazione del plugin.
Anche in questo caso il modulo è pienamente compatibile con le versioni 1.5, 1.6 ed 1.7 di Joomla.
Secure Authentication
Concludiamo la nostra carrellata legata ai plugin, per la messa in sicurezza del back-end d'amministrazione, presentando Secure Authentication. Questo plugin è giunto alla versione 1.6.2 ed è utilizzabile esclusivamente su versioni 1.6 e 1.7 di Joomla. Anche in questo caso il plugin va ad agire sull'URL di accesso al pannello d'amministrazione, a differenza dei precedenti plugin presentati, Secure Authentication innalza il livello di sicurezza permettendo l'inserimento di un ritardo dopo ogni login fallito da parte di un utente o di un amministratore, così da scoraggiare e limitare gli attacchi basati sulla tecnica di forza bruta.
Prelevato il componente mediante il link precedentemente fornito, occorrerà installarlo all'interno del CMS utilizzando la procedura standard di Joomla. Come accaduto per i plugins precedenti, si dovranno attivare le funzionalità del componente utilizzando la sezione "Gestione Plugin: Plugins", sempre tramite questa area potremo impostare la chiave segreta, supponiamo di voler impostare la chiave segreta uguale alla stringa "segreta", per raggiungere tale scopo occorrerà inserire all'interno del campo Key la stringa "segreta", mentre nel campo "Delay" si dovrà specificare il tempo in secondi tra un tentativo fallito di login ed un altro possibile tentativo da parte dello stesso utente.
Non appena si effettua l'impostazione della Key e si attiva il componente al successivo login occorrerà digitare l'URL fornendo la chiave segreta prescelta in precedenza, nel nostro caso http://www.miositojoomla.com/adminitrator?segreta.
Conclusioni
La protezione del login della sezione amministratore è il primo step, per poter perseguire la sicurezza di un intero sito gestito da Joomla, al fine di evitare spiacevoli attacchi che possono vanificare il nostro lavoro, procurandoci un danno sia materiale sia d'immagine. Abbiamo deciso di proporre tre plugin per poter dare l'opportunità all'utente di scegliere quello che più si addice ai suoi obiettivi, l'utilizzo degli stessi plugin è estremamente semplice.