Attenzione agli attacchi brute-force a Joomla!
Su molti bollettini online per la sicurezza informatica sta circolando un software open scritto per nmap che permette di tentare un attacco brute-force al vostro sito in Joomla!, basato su un dizionario di username e password comunemente usate che vengono testate in automatico mediante uno script. Mediante questi programmi l’attaccante potrebbe ricavare la vostra combinazione di username e password dall’esterno, ed accedere così indebitamente al vostro sito come amministratore, compromettendolo o modificandone il comportamento.
Per farlo gli basta avere tre informazioni, ovvero path della pagina di login (che è identica per ogni CMS), username e password:
local DEFAULT_JOOMLA_LOGIN_URI = "/administrator/index.php" local DEFAULT_JOOMLA_USERVAR = "username" local DEFAULT_JOOMLA_PASSVAR = "passwd"
e poi proverà ad accedere ciclicamente al sito secondo una logica basata su un dizionario di username/password predefinito, caricabile dall’esterno. Tale funzionamento viene implementato come segue, per dare l’idea di come sia banale accedere a queste informazioni e come sia necessario, di conseguenza, prendere provvedimenti.
engine = brute.Engine:new( Driver, host, port, { uservar = uservar, passvar = passvar } ) engine:setMaxThreads(thread_num) engine.options.script_name = SCRIPT_NAME engine:start()
In alternativa, tanto per intenderci, esiste anche uno script Python che permette di fare qualcosa di simile con una semplice linea di comando:
python BJoomla.py -h http://sitotarget.est/administrator -U user.txt -P passwords.txt -vv
dove user.txt e passwords.txt sono file di testo contenenti dizionari di username e password molto comuni. Lo scopo di questo articolo è rendere quindi l’utente consapevole di come avvengano gli attacchi perchè sappia, senza giri di parole, come sia semplice effettuare queste operazioni e come sia importante proteggersi.
Ricordiamo che questo genere di attacchi avviene a campione, per cui non è detto che provengano da attaccanti italiani in quanto, mediante footprint, sarà possibile listare su Google i siti in Joomla! in qualsiasi lingua (italiano incluso). Per cui nessuno dovrebbe sentirsi immune da questo genere di attacchi, ed è opportuno riportare alcuni suggerimenti per la sicurezza di Joomla! (ormai giunto alla versione 3.2).
Eccovi quindi tre semplici aspetti da verificare sul vostro sito Joomla! quanto prima.
1) Verificare che la propria password non sia contenuta in qualche lista ricercabile sul web
Cercando su Google è purtroppo possibile reperire file di testo contenenti lunghe liste di password prelevate mediante attacchi informatici e similari: la cosa migliore da fare è cercarle noi stessi su Google, e verificare che almeno nei primi risultati non sia contenuta la propria. In caso affermativo è opportuno cambiarla prima possibile: attenzione, si sconsiglia vivamente di cercare la propria password direttamente su Google in quanto potrebbe rimanere memorizzata in cache o nelle ricerche personalizzate del proprio account Gmail. Si ricorda inoltre come siti come Bugmenot pubblichino addirittura combinazioni di username e password con l’indicazione dei siti web su cui funzionano.
La procedura corretta per rinforzare la sicurezza di Joomla! è la seguente:
- cercare su Google, per tentativi, qualcosa tipo pass.txt o password.txt oppure passwords.txt e similari, come ad esempio pass.txt password, pass.txt 123 … (nota: la parola sottolineata coincide con password facili da indovinare e scelte molto di frequente);
- scaricare i file che contengano password all’interno dei risultati;
- aprirli in locale con un editor di testo;
- cercare la password del proprio sito con lo strumento di ricerca di Blocco Note, Textwrangler o simili;
- se la password da noi usata è presente in un file, cambiarla immediatamente dal proprio sito aggiungendo almeno due caratteri e/o complicandola. Verificare poi nuovamente che non sia presente in nessuno dei file trovati.
Esempi di password sconsigliate per il vostro sito sono:
passwd password ingresso entra pass 123 date di nascita senza lettere coincidenti con la username
2) Modificare o proteggere il path /administrator
Esistono vari modi per proteggere il path che, come abbiamo visto, viene utilizzato come informazione di default dagli script di attacco: in nessun caso è corretto rinonimare la cartella in questione, perchè questo comprometterà completamente il funzionamento del sito. Anzitutto, invece, bisogna verificare che administrator non sia indicizzata su Google, cercando miosito.com/administrator direttamente nel motore: se lo fosse, dal vostro Webmaster Tools se ne può chiedere la rimozione dopo aver inserito nel file administrator/index.php il tag HTML:
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW" />
(per maggiori informazioni in merito cliccare qui)
Poi bisognerebbe evitare di inserire il path /administrator nel file robots.txt, in quando un attaccante potrebbe avere conferma che stiate usando Joomla! e sfruttare a proprio vantaggio questa informazione: tuttavia molti file robots.txt hanno questa impostazione di default, che comunque è l’informazione più immediata da ottenere. Non è tanto questo il problema, insomma: potete sempre fare in modo che /administrator/index.php sia inaccessibile e redirezioni sul sito principale, mentre per accedere al login si debba fare obbligatoriamente /administrator/?chiaveprivata, dove chiaveprivata è la vostra “seconda password” riservata (possibilmente non coincidente con la prima). Per farlo, suggeriamo di installare il plugin gratuito jSecure, che serve esattamente a questo scopo, e rinforza la sicurezza del vostro sito in Joomla!.
3) verificare che la propria username di Joomla! non sia inavvertitamente contenuta in qualche lista ricercabile sul web
Cercando su Google è purtroppo anche possibile reperire file di testo contenenti lunghe liste di username prelevate mediante attacchi informatici e similari: la cosa migliore da fare, anche qui, è cercarle su Google e verificare che almeno nei primi risultati non sia contenuta la propria. In caso affermativo è opportuno cambiarla prima possibile: si sconsiglia vivamente di cercare la propria username direttamente su Google in quanto potrebbe restare memorizzata in cache o nelle ricerche personalizzate.
Esempi di username assolutamente sconsigliate sono:
admin administrator root sitename sales info