Introduzione
Sebbene gli sviluppatori di Joomla cerchino di innalzare continuamente il livello di sicurezza del CMS, tramite il rilascio continuo di aggiornamenti ogni qualvolta una nuova falla viene scoperta, è opportuno integrare all'interno del nostro CMS Joomla plugin appropriati, che avranno come obiettivo principale quello di migliorare l'affabilità in termini di sicurezza del sistema, prevenendo e limitando per quanto possibile gli attacchi di cracker. In quest'articolo presenteremo uno di questi strumenti, nello specifico Admin Tools giunto alla versione 2.1 stable, distribuito da Akeeba Developers con licenza GPLv2. Il tool può essere integrato sia nella versione 1.5.x che nella nuova versione 1.6.x di Joomla e si pone l'obiettivo principale di salvaguardare la sezione back-end del CMS.
I primi passi
Una volta scaricato Admin Tools lo potremo installare come un normale componente, mediante il pannello "gestione estensioni" di Joomla possiamo installare il pacchetto. Al termine della procedura, se tutto è andato a buon fine, verrà visualizzata una schermata simile a quella mostrata in figura 1 e contestualmente nel menu Componenti di Joomla comparirà la voce Admin Tools, con la quale avremo pieno accesso alle funzionalità del componente appena installato.
Aggiornamenti
Nella parte destra del pannello di amministrazione di Admin Tools vengono riportate le informazioni relative alla versione di Joomla installata, e contestualmente lo stato della release, nell'esempio riportato in figura 2, il componente ci segnala che stiamo utilizzando la versione 1.6.3, mentre è disponibile una versione più aggiornata, per la precisione la versione 1.7ALPHA-1, per procedere all'aggiornamento possiamo avvalerci del tasto "Rilevato Aggiornamento" (posizionato in alto a destra del pannello di Admin Tools), e seguire il wizard automatico. Essendo ancora la versione 1.7 una "alpha" è sconsigliato l'aggiornamento, essendo tale versione ancora una pre release.
Sicurezza
La sezione sicurezza visualizzata in figura 3 offre cinque funzionalità: Modalità d'emergenza Off-line, Password Principale, Applicazione password amministrativa, Modifica del prefisso delle tabelle del database e gestion dell'ID Super Administrator.
Tramite l'ausilio della "Modalità Off-Line di Emergenza" potremo impedire l'accesso al sito a tutti gli utenti, che non provengono dall'indirizzo IP utilizzato per l'attivazione della modalità Off-line di Emergenza, naturalmente se non si ha a disposizione un indirizzo IP statico (come per le connessioni domestiche), tale funzionalità potrà provocare dei problemi di accesso, comunque facilmente risolvibili, di fatto si dovrà avere l'accortezza di andare a modificare manualmente il file ".htaccess" contenuto nella cartella principale di Joomla utilizzando un qualsiasi client FTP.
Per attivare la funzionalità occorrerà selezionare il tasto "Imposta il sito Non in Linea (Offline)" all'interno del menù "Modalità Off-Line di Emergenza", così come evidenziato dalla figura 4.
Password Principale
La seconda funzionalità messa a disposizione dal menu Sicurezza prevede la possibilità di impostare una password per poter proteggere alcune funzionalità come gli strumenti del database, la Modalità Off-line di Emergenza vista precedentemente, la Blacklist e Whitelist per gli IP (funzione prevista nella versione professional del componente) ecc., supponendo di voler abilitare la protezione alla funzionalità vista in precedenza, occorrerà abilitare in corrispondenza della voce "Modalità Off-Line di Emergenza" l'opzione "Yes", scegliendo una password (se ancora non lo si è fatto) e successivamente confermare il tutto cliccando sul tasto "Salva e Chiudi" così come mostrato in figura 5. È importante precisare che la password impostata è totalmente indipendente dalla password di amministratore del CMS.
Naturalmente da questo momento in poi, si potranno utilizzate le applicazioni protette solo, ed esclusivamente conoscendo la password d'amministrazione di Admin Tools.
Applicazione password amministrativa
Un ulteriore livello di sicurezza per l'amministrazione del sistema ci viene offerto dalla funzionalità "Applicazione password amministrativa", attraverso la quale possiamo proteggere con una password le diverse sezione dell'amministratore, il vantaggio di questa password è che va a lavorare a livello del file .htaccess, naturalmente occorrerà che il server web ospitante il nostro CMS supporti tale modalità di protezione. Sarà necessario fornire una username ed una password da utilizzare per l'accesso alle varie sezioni.
Prefisso tabelle database
Uno dei primi attacchi che viene eseguito ai danni di Joomla dai cracker consiste nel cercare di alterare il contenuto del database, un metodo per rendere difficile quest'attacco è quello di non utilizzare il prefisso di default "jos_" per le tabelle, ma adoperarne uno diverso, per poter eseguire la modifica in corso d'opera Admin Tools ci mette a disposizione la funzione "Modifica prefisso tabelle Database", una volta selezionata tale opzione occorrerà scegliere il nuovo prefisso da utilizzare per le tabelle e confermare il tutto tramite il tasto "Modifica il mio Prefisso", automaticamente il componente provvederà alla ridenominazione del prefisso delle tabelle del nostro database utilizzato per Joomla.
ID Super Administrator
Altre tecnica di hacking ai danni del CMS Joomla è quella basata sull'utilizzo dell'ID 42, ovvero l'ID associato all'utente superadministrator, in passato alcune tecniche d'attacco prevedevano di sfruttare tale ID per prendere il pieno controllo dello spazio web amministrato con Joomla. Uno dei possibili rimedi a questo problema è quello di cancellare l'ID 42 e/o 62, occorre puntualizzare che verrà cancellato solo ed esclusivamente l'ID associato all'utente superamministratore, mentre nome utente e password resteranno invariate.
Gli strumenti
Il tool mette a disposizione oltre ai sistemi di sicurezza analizzati fino ad ora diversi strumenti, per la gestione della sicurezza del nostro CMS, tra di essi troviamo la pulizia della cartella temporanea dei file, delle sessioni e l'utilissima configurazione dei permessi.
Tramite la funzionalità "Configurazione permessi" avremo la possibilità di configurare i permessi, per ogni singola cartella e/o file, è altresì possibile optare per l'impostazione contemporanea dei permessi sia su tutti i file sia su tutte le cartella, andando ad agire sulla sezione "Permessi predefiniti" del menù configurazione permessi.
Una volta impostati i permessi e/o impostati quelli di default, per poterli applicare si dovranno selezionare i pulsanti "Salvare e applicare le autorizzazioni personalizzate" oppure in alternativa salvare i permessi desiderati ed applicarli tramite la funzione "Applica Permessi" contenuta nel menù principale di Admin Tools.
Facciamo pulizia
In alcuni casi può risultare necessario ripulire la cartella dei file temporanei e le varie sessioni utilizzate dagli utenti, ciò accade ad esempio quando la cartella tmp viene riempita da troppi file oppure il server appesantito da troppe sessioni aperte e non "abbattute".
Ancora sul database
Con "Database Collation" il componente mette a disposizione la possibilità di modificare il character set utilizzato dal database, cioè il modo in cui i caratteri, i segni di punteggiatura ed i simboli vengono memorizzati all'interno del database utilizzato. Una volta entrati nell'apposito menu, potremo selezionare il character set che preferiamo e che più si addice ai nostri scopi, ed applicarlo con un semplice clic.
Le Opzioni
Con il pulsante opzioni, posizionato in alto a sinistra del pannello di controllo del componente Admin Tools, ci viene offerta la possibilità di poter impostare i permessi d'uso del componente per ogni singolo utente e per ogni singola azione. Ogni azione può essere consentita o negata ad un determinato utente o gruppo, oppure si può optare semplicemente per ereditare il comportamento da tenere (figura 10).
Conclusioni
In quest'articolo abbiamo presentato la versione gratuita del componente che offre già molte utili funzionalità di base, ma per i più esigenti è possibile utilizzare la release professional a pagamento, all'interno della quale ad esempio potrete trovare un comodo "web application firewall", con il quale gestire la whitelist degli IP d'amministrazione e la Blacklist degli IP utenti, nonché monitorare le attività tramite i log tracciati dal componente.