Joomla: info sulla sicurezza (vers. 1.5, 1.6, 1.7 e 2.5)
Negli ultimi tempi, in ambito di sicurezza, sono aumentati notevolmente i disagi nei diversi Content Management System Open Source. Per via della sua accresciuta divulgazione e, di riflesso, relativo utilizzo, tra i più attaccati troviamo sicuramente Joomla. Per coloro che sviluppano con questo CMS e si trovano a tamponare falle varie nella 1.5 (e non solo) diffondo alcune informazioni, aggiornamenti e ultime problematiche riscontrate. Eviterete nella maggior parte dei casi di alzare il telefono, inviare ticket al vostro provider o scrivere richieste di soccorso su FB - ho letto anche questo - magari mentre il cliente vi contatta chiedendo lumi e regalandovi tanto stress in quanto, "solidale", giunge dopo pochi minuti dal fattaccio.
Se il il sito subisce continui cambi del file .htaccess andate nelle cartelle:
- images/stories e controllate l'eventuale presenza di file .php. Es story.php o con inizio sintassi .cache_. Non esitate a cancellarli
- images/banners cancellate file .php. Es .lib_2xao8f.php
Se effettutate una ricerca tramite Google e la serp restituisce il vostro sito con la scritta: "Questo sito potrebbe essere compromesso" cliccate sul seguente link: http://support.google.com/webmasters/bin/answer.py?hl=it&answer=163634
Solo 3 semplici passaggi:
- valuta il danno
- ripulisci il sito
- invia a Google richiesta di riesame del sito (nel giro di poche ore la scritta verrà eliminata).
Per certezza fate un test su http://sitecheck.sucuri.net/scanner
Stando sempre alle ultime... se vi trovate pagina bianca quando cliccate sul link che riconduce alla home del sito o a qualsiasi pagina interna, anche direttamente attraverso i sitelinks indicizzati nella serp controllate:
- index.php presente nella root principale, dove nell'ultima riga cambiate la stringa $JResp = JResponse::toString($mainframe->getCfg('gzip'));: con la seguente originale e corretta echo JResponse::toString($mainframe->getCfg('gzip'));
Per quanto riguarda il back-end se anch'esso restituisce pagina bianca guardate in:
- /administrator e controllate se il file index.php è a 0 KB. In questo caso è stato modificato. Ricaricate l'originale
Per il resto aggiornate tutte le versioni 1.5.x all'ultima release (.26), ed i vari componenti (Es. JCE)
Se aprendo il vostro sito appare la pagina con la scritta "Hackeado por HighTech Brazil HackTeamNo\One - CrazyDuck - Otrasher" ripristinate la index.php della root ed il configuration.php.
Cancellate le tracce "made in Brazil" nella root:
- ck.htm
- xk.txt
stessi file in:
- /tmp
- /cache
Per buona prassi controllate ed aggiornate eventuali componenti di mailing (es ACY Mailing) per evitare spam.
Ad oggi la situazione si complica un po' di più. Alcuni componenti, plugin o forse lo stesso Joomla 1.5 subiscono gravi attacchi malware, Trojan PHP/Backdoor (.AG o .CK) dove lo stesso Securi SiteCheck li identifica MW:SPAM:SEO e presenti nella index.php. Questo conduce solo che alla Blacklist del sito con relative conseguenze sopra descritte.
I Virus dannosi si trovano all'interno delle cartelle /components e /modules
Nella prima cancellare la /com_hello, nella seconda /mod_sys e /mod_joomcasche.
Sono tutte cartelle create dall'hacker.
Personale suggerimento e consuetudine, cambiate la password FTP e DB oltre a quella di super administrator. Alla fine fate un backup con Akeeba Backup e conservatelo in una cartella del vostro PC. Alcune falle consentono ai vari hacker di inserire codice dannoso nelle pagine "articolo" di Joomla come da esempio di seguito riportato.
<p> </p>
<div id="Sw1sDnCAhz5NXsFwzFoh2IeS4G" style="position: absolute; top: -979px; left: -1278px; width: 359px;"><a href="http://viagraonlinemastervs.com">buy viagra</a>
<p> </p>
</div>
Per via della posizione ""position: absolute; top: -979px; left: -1278px;" non sono visibili se non in vista editor HTML. In questo caso la soluzione è cancellare il codice hackerato a mano.
Se nel report della scansione di Sucuri SiteCheck troverete molte pagine infettate con la stessa riga di codice nocivo, loggatevi nel back-end ed andate in gestione template "Mod HTML". Con un semplice find trovate la riga incriminata e cancellatela. Di norma viene inserita nell'apertura di <body> (es. dnnViewState). Usate un editor HTML come Dreamweaver per agevolarvi nella lettura del codice. Una volta salvata la pagina eseguite un RE-SCAN. Non ci sarà più traccia di codice malevole, ed eviterete cosi la Blacklist, prima fra tutti quella di Google Safe Browsing.
Protezione con regole Rewrite nel file htaccess
RewriteEngine onRewriteCond %{REQUEST_METHOD} POSTRewriteCond %{REMOTE_ADDR} !127.0.0.1RewriteRule ^ / [R,L]
Le regole appena scritte bloccano tutte le richieste POST ad esclusione di quelle provenienti da localhost. Di seguito l'aggiunta di una condizione Rewrite dove puoi consentire l’accesso al tuo indirizzo IP o ad altri IP di collaboratori o dipendenti dell'azienda.
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !127.0.0.1
RewriteCond %{REMOTE_ADDR} !tuoIP
RewriteRule ^ / [R,L]
Invito a tenere monitorata la lista delle estensioni vulnerabili http://docs.joomla.org/index.php?title=Vulnerable_Extensions_List_oct ed iscriversi alla newsletter degli sviluppatori di cui si utilizza l'estensione. Disinstallate tutte le estensioni e template che non utilizzate per evitare problemi di sicurezza. In ultimo proteggete l'accesso alla directory /administrator come descritto nel seguente articolo: http://www.mmleoni.net/sviluppo-joomla-esempi-e-trucchi/48-proteggere-l-accesso-alla-directory-administrator
Gli ultimi attacchi inibiscono la modifica degli articoli e più in generale l'intera gestione del back-end del vostro sito Joomla. Spesso si arriva alla "perdita" del pannello di controllo /administrator. Al suo posto un elegante pagina 404. In questo caso troverete un 'administrator' di troppo (non esitate ad eliminarlo immediatamente) e soprattutto diversi file modificati in ambiente FTP.
Gli step da seguire per ripulire il sito sono i seguenti
- Andate all'interno di /modules nella root principale. Noterete una cartella nuova e non presente nelle installazioni di Joomla, ovvero "mod_administrator". A conferma di ciò la data di modifica. Al suo interno i file con script dannoso sono redatti per avere privilegi nel sito attaccato. Non esitate a cancellare l'intera cartella.
- Nella root aprite la cartella /un. Qui controllate la presenza di file .php maligni come il seguente sys09725827.php. Eliminatelo. La data di modifica vi sarà sempre di aiuto.
- In ultimo accedete all'interno di /administrator. Provvedete ad eseguire l'upload del file index.php che l'hacker ha cancellato. In questo caso è fondamentale avere un backup jpa scompattato con Akeeba eXtract Wizard.
Il back-end tornerà visibile in /administrator e soprattutto gestibile in ogni funzione.
Consiglio: tramite Filezilla o WS_FTP Pro, controllare le incongruenze tra la colonna locale e quella del remoto dellle principali cartelle.
Tra le infezioni più complicate e stressanti da risolvere ci sono senza dubbio quelle identificate come Blackhat SEO Spam (MW:SPAM:SEO). Il vostro sito è stato violato e gli hacker hanno inserito link ai loro siti (o siti spam) per aumentare (utopia nella loro testa) il pagerank sui motori di ricerca. Di seguito vi riporto un esempio
In questo caso potrebbe esservi utile consultare il Sucuri Blog nell'area dedicata allo Spam. Ecco il link: http://blog.sucuri.net/category/spam
Alcuni passaggi da seguire:
- All'interno della cartella /administrator controllate la presenza di due file: fix.php e/o pack.php. Entrambi sono identificati come PHP/Backdoor.Shell. Cancellateli.
- In modules cercate la cartella mod_cmsfix. Al suo interno trovare file php infetti Trojan PHP/BackDoor.CK. Ripulite.
- Ricordatevi sempre di svuotate la cartella tmp.