Archivio per la categoria Information security

Gioca, è GRATIS!!! Più o meno. Anzi, no.

Un nome evocativo. Un bel banner grafico, possibilmente una o più fanciulle poco vestite. Le parole gioca, gratis, online si leggono scritte in grande nella pagina che si apre se si clicca sul banner.

E’ una vera e propria epidemia. Basta entrare in un qualsiasi sito di intrattenimento, in un blog o in un portale di media diffusione, ed immediatamente compare un banner che mostra un gioco online gratuito.

Ne esistono per tutti i gusti: spaziali, FPS, avventure, Dungeon&Dragons, strategici. Alcuni richiedono l’installazione di un client, di solito i FPS, altri si giocano col browser. In tutti la registrazione è gratuita, e si parte con quanto basta a capire come funziona il gioco e, soprattutto, prenderci gusto: è lo scopo principale, perché dopo viene il bello.

La dotazione iniziale di un gioco in stile Halo, Doom 3, Half-Life e simili è minima. Per acquisire nuove armi, strumenti e potenziamenti occorre una moneta di scambio il cui nome varia da gioco a gioco, ma il meccanismo è in pratica lo stesso per tutti, indipendentemente da chi li pubblica: ogni oggetto, ogni arma, ogni potenziamento, perfino le munizioni e alcune opzioni di configurazione, tutto ha un costo ed una durata. Un esempio a caso: il mirino che appare al centro dello schermo può essere cambiato con uno di forma diversa, costo 14.900 crediti. Se si cambia idea, occorre spendere altri 14.900 crediti. Vogliamo cambiare il nome del nostro giocatore? Bastano 9.900 crediti, per un singolo cambio. Vogliamo cambiare il colore con cui appare il nostro nome? Solo 2.900 crediti, ma la modifica dura 30 giorni (solari e non di gioco), poi occorre rinnovare l’acquisto, altrimenti torna quello originale.
Nessun problema, i crediti si guadagnano combattendo, naturalmente solo quando si vince. Per i nuovi giocatori è dura: per usare alcune armi e certi equipaggiamenti occorre avere un certo livello di “esperienza”, segnato con un corrispondente grado militare. Altrimenti, anche se abbiamo quell’arma, non possiamo utilizzarla. Senza quelle armi e con equipaggiamento ridotto vincere è oggettivamente difficile.

Ecco dove si trova la trappola: se non si ha esperienza, si guadagna poco, ma “fare esperienza” significa poter usare certe armi e certi equipaggiamenti, per aver maggiori possibilità di vincere.

In un altro gioco, ad ambientazione spaziale, i crediti si guadagnano combattendo o commerciando, ma anche qui tutto ha un costo: anche i singoli proiettili sparati dalla nostra nave hanno un prezzo. E per comprare un semplice cannone laser (le munizioni sono a parte) occorrono migliaia di crediti.

La sorpresa viene dal valore reale di questi crediti. Il rapporto di conversione (o forse si dovrebbe parlare di un vero e proprio tasso di cambio) è di un dollaro per 1.000 unità di moneta del gioco, oppure di un euro per 1.000 unità monetarie se il fornitore del gioco è in Europa.

Con pochi semplici calcoli si vede subito che è facile spendere decine di euro per qualche partita. Il problema è che nulla nella struttura del gioco obbliga a comprare crediti, ma è nella evoluzione dell’ambiente che diventa praticamente necessario: alcune missioni o alcune opzioni del gioco si possono accedere solo se in possesso di determinati requisiti, che è impossibile ottenere senza spendere soldi per acquistare crediti.

Tornando ai numeri detti sopra, cambiare il proprio nome costa quasi 10 dollari. Cambiare il mirino ne costa 15. Detto in questo modo appare subito chiaro che lo scopo del fornitore del gioco non è fare soldi con la licenza di installazione ed uso del software, ma con gli innumerevoli micropagamenti che i giocatori alla fine fanno per andare avanti nel gioco.

Naturalmente non ho speso un centesimo per fare dei test, ma i prezzi e le condizioni d’uso sono leggibili e disponibili su tutti i siti, anche se non sempre molto chiare.

In questo modo il problema della pirateria viene risolto alla radice, ma in modo che certamente non si può definire indolore per gli utenti: non vogliamo pagare 30-70 euro per un gioco originale per il computer o per la nostra console per videogame, che magari li varrebbe anche, però andiamo a spendere alla fin fine centinaia di euro in micropagamenti per un gioco che in definitiva non è neanche originale, né nella struttura, né nei contenuti.

Il problema semmai è un altro: tenere sotto controllo il denaro effettivamente speso. Qualche tempo addietro ho acquistato alcuni giochi in offerta: Max Payne, Freelancer e Deus Ex, tutti per meno di 10 euro. E’ vero, non sono giochi recenti, ma il mio computer non mi permette di allargarmi molto come prestazioni. Ognuno di questi assicura parecchi giorni di gioco, e a distanza di tempo non mi stanco mai di giocarci di nuovo, anche se in effetti di tempo me ne è rimasto veramente poco, anzi nulla. Ma per quanto possa usarli il loro costo sarà sempre e solo di 10 euro, indipendentemente dalla quantità di tempo e di sessioni di gioco.

Lo stesso non si può certo dire di questa categoria di giochi online, il cui scopo è di assicurare al creatore un introito costante da parte di chi gioca, usando l’effetto “un caffè al giorno“, ben noto a chi si occupa di marketing.

Occhio al portafogli.

Tags: ,

Tre mesi di phishing

Di solito tendo ad ignorare lo spam, fra cui i messaggi di phishing abbondano. Sarà che da un tre anni ormai, offrendo la mia competenza a chi ha un sito web violato, ne ho viste talmente tante da aver acquisito una sorta di “occhio clinico”, il fatto è che negli ultimi mesi non riesco più a fare “Seleziona tutti” seguito da “Elimina definitivamente” nella cartella dello spam, senza prima dare una scorsa ai messaggi insoliti.
Immediata, o quasi, è arrivata l’idea di dare più di una semplice occhiata ai messaggi di phishing.
I risultati sono per me in parte attesi, nel senso che in molti dei miei interventi ho indicato come possibile scopo per violare un blog o un sito l’ospitarci un sito di phishing. Intendiamoci, non sono “mie scoperte di sicurezza informatica”: sono in molti ad indicarlo, ben più autorevoli di quanto io possa mai diventare.
Vista la disponibilità di alcuni account di posta elettronica, e di un po’ di tempo durante i viaggi da pendolare, ho raccolto e studiato per tre mesi i messaggi di phishing che mi arrivavano. Qui presento alcuni risultati, se poi l’argomento riscuote un minimo di interesse, posso espandere aggiungendo dettagli.

La procedura di analisi

Non potendo accedere direttamente al contenuto originale dei siti, che permetterebbe una analisi puntuale ed accurata, quanto riportato è frutto di controlli e verifiche fatte dall’esterno, con strumenti assolutamente innocui: un browser, un editor di testo per programmatori, le utility whois, dig, host per ottenere informazioni pubbliche su IP e registro dei nomi DNS. Eppure, anche con così poche informazioni è possibile imparare molto sul phishing.

All’arrivo di ogni messaggio di posta elettronica palesemente di phishing, se ne salva una copia del “sorgente”, con tutte le intestazioni e le parti normalmente non visibili all’utente normale. Segue poi una visita sul sito di phishing, con prelievo di uno screenshot e del codice html della pagina così come emessa dal server. Se il sito è in hosting, il prelievo dei campioni finisce qui, altrimenti si tenta di arrivare al sito originale, catturando anche qui uno screenshot e l’html della pagina così come emesso dal server. In qualche caso è stato possibile visitare le directory intermedie fra il sito principale e il sito di phishing, acquisendo informazioni preziose su come e dove è avvenuto l’insediamento. In qualche caso è stato possibile mettere le mani sul sorgente originale del sito di phishing, lasciato in una directory intermedia da chi lo ha installato, di solito sotto forma di file ZIP o RAR.

Il materiale è poi analizzato e classificato per quanto possibile, ricavandone informazioni che ritengo interessanti. Ma basta con le chiacchiere, andiamo al sodo.

Quanti? Quali?

In tre mesi i messaggi ricevuti ed esaminati sono stati 73, non moltissimi, ma certamente sufficienti per costituire un campione con qualche significato statistico. Iniziamo con la distribuzione dei “bersagli”, ossia gli istituti di credito e servizi online presi di mira.

Distribuzione dei tentativi di phishing verso Istituti di credito e servizi online

Distribuzione dei tentativi di phishing verso Istituti di credito e servizi online

I più bersagliati sono i clienti di Poste Italiane e di Intesa S. Paolo, seguiti da quelli di Cartasì, ma non mancano i soliti eBay e PayPal. In tutti i casi esaminati i siti di phishing sono praticamente indistinguibili dall’originale, se non per qualche dettaglio, di cui ci si accorge solo possedendo adeguate conoscenze: ad esempio i link sono tutti uguali, ossia conducono tutti alla pagina per inserire i dati, oppure vi sono piccoli difetti nella presentazione della pagina, poco evidenti.

Le cose naturalmente cambiano quando si va ad esaminare il codice html emesso dai siti di phishing. Tipicamente sono copie dei siti originali, prese con note utility, di cui spesso non viene neanche rimosso il marchio dai file, eccone un esempio:

<!-- Mirrored from www.monetaonline.it/layout/03069/pop/dispores_card_01.asp by HTTrack Website Copier/3.x [XR&CO'2008], Mon, 13 Apr 2009 23:59:09 GMT -->

In qualche caso il sito usa solo pagine html, le immagini vengono prelevate dal sito originale, diminuendo la dimensione necessaria ad ospitare il codice per mostrare ed eseguire la raccolta di dati.
Il metodo di raccolta dati preferito è l’e-mail, ossia al momento in cui il cliente vittima del phishing inserisce i suoi dati e preme il pulsante di conferma, vengono inviati per e-mail all’autore del phishing, in vari modi: se il sito è in PHP, viene usata la funzione mail(), in altri casi viene sfruttato un form di invio posta di un altro sito, legale, che però permette di inviare messaggi a chiunque semplicemente chiamandolo con i giusti parametri (vedere ad esempio questi due avvisi di sicurezza di Secunia). In qualche caso gli indirizzi di posta di destinazione sono in chiaro e perfettamente leggibili dalle pagine HTML del sito di phishing.

Veniamo ora alla questione di dove vengano ospitati i siti di phishing. Ebbene, come avevo premesso, per me non è una sorpresa, ma il grafico parla chiaro.

Dove vengono ospitati i siti di phishing?

Dove vengono ospitati i siti di phishing?

Circa un terzo è ospitato in normali servizi di hosting, spesso gratuito, con dei trucchi per ritardare il rilevamento e la cancellazione del sito, come ad esempio l’uso di directory profonde per ospitare il sito di phishing, invece della home page, lasciata a quella di default, e l’uso di servizi di abbreviazione degli URL (come Tinyurl o Snipurl). Uno dei sistemi utilizzati è quello di registrare il nome del sito da un fornitore e prendere lo spazio di hosting da un altro, in entrambi i casi usando dati di identità falsi e differenti.

Oltre due terzi dei siti di phishing sono inseriti in siti web violati. In quasi un quarto dei casi i siti violati coinvolti sono due, differenti: il primo è quello di cui compare l’URL nella e-mail di phishing: una volta chiamato, il codice nascosto nel sito opera un semplice redirect con vari metodi al secondo sito violato, contenente il sito di phishing vero e proprio.

Per quanto riguarda il tipo di web application colpita nei siti violati, in gran parte dei casi non è stato possibile determinare se l’applicazione è preconfezionata, ad esempio un software open source o commerciale, o se è stato sviluppato ad hoc. Quello che appare da alcuni indizi è che in buona parte dei casi si tratta di applicazioni costruite a partire da una open source, cancellando ogni riferimento alla web application originale. Il problema è che molto probabilmente la base di partenza è una versione che a distanza di uno o due anni è obsoleta e verosimilmente vulnerabile a diversi tipi di attacchi, di conseguenza lo diventa anche l’applicazione da essa derivata, con ovvie conseguenze. Dato che chi cerca siti vulnerabili opera un fingerprinting della web application, l’operazione di nascondere, eliminare o modificare il contenuto dei messaggi di copyright dell’applicazione non sposta di un millimetro il problema. Anzi, proprio perché l’applicazione è modificata pesantemente è impossibile operare un aggiornamento in tempi rapidi, o spesso per motivi contrattuali non è proprio previsto, per cui il sito diventa e rimane vulnerabile a lungo.

Altre volte è proprio l’applicazione sviluppata a mostrare chiaramente problemi. In un caso, un sito che pubblicizzava “enlargement sessuali” (uno dei preferiti da chi fa spam), era costruito con una semplice web application in ASP, che non controllava per nulla i parametri di tipo URL-encoded che usava per mostrare i vari sottomenu. Inserendo una lettera al posto del numero in uno di essi appariva nel codice emesso un errore caratteristico delle applicazioni vulnerabili ad attacchi di tipo SQL-Injection. Eccone un esempio con uno dei parametri modificati appositamente:

<p>Microsoft JET Database Engine</font> <font face="Arial" size=2>error '80040e14'</font>
<p>
<font face="Arial" size=2>Syntax error (missing operator) in query expression 'nMenuNumb = cLNG(''0 or 1=1;'')'.</font>
<p>
<font face="Arial" size=2>/source/view_data.asp</font><font face="Arial" size=2>, line 38</font> 

Quando invece è stato possibile determinare con certezza l’applicazione colpita, i nomi che escono sono in un certo senso attesi.

Numero di siti violati e siti di phishing ospitati per tipo di web application

Numero di siti violati e siti di phishing ospitati per tipo di web application

Sei siti con Mambo, uno con Wordpress, due con Joomla, tre con phpBB, quattro con applicazioni commerciali, di cui ho trovato i rispettivi avvisi per vulnerabilità piuttosto gravi. Non sembrano molti, ma tenendo conto che chi li ha violati li sta sfruttando a fondo, il danno è rilevante: sia in quello Wordpress che in uno di quelli con phpBB vi sono nascosti tre differenti siti di phishing e quelli con Mambo presentano anche i segni di altre intrusioni, volte a diffondere malware.

Dei 49 siti violati, solo 8 appartengono a privati, ossia sono personali o amatoriali. La parte del leone la fanno i siti delle società, seguiti a distanza dai siti istituzionali.

I siti delle società sono i più gettonati.

I siti delle società sono i più gettonati.

I siti di cui non è stato possibile determinare la categoria erano o sotto forma di puro indirizzo IP, oppure erano vuoti o quasi, al momento del phishing, forse abbandonati dai proprietari, o forse sorpresi a metà di una ristrutturazione, quindi non c’era indicazione della reale appartenenza del sito. Anche ricerche nella cache di Google hanno dato esito negativo, segno che i siti stessi erano da tempo in quella condizione.

Altro fronte di analisi è quello dei presunti autori dei tentativi di phishing. E’ ovviamente impossibile determinare con sicurezza se l’autore è lo stesso per due siti, ma quello che si può dire è che i siti confezionati per il phishing possiedono in qualche caso delle caratteristiche che li accomunano, ma a parte alcune eccezioni notevoli, i responsabili potrebbero essere differenti.

La sorpresa viene da uno dei siti di phishing impiantato nel sito con Joomla: il “wannabe” Grande Hacker ha lasciato in bella vista il file zip con il kit di phishing in una delle directory. Chissà se il Grande Hacker si è accorto che un Più Grande Hacker lo ha fatto fesso? Il kit di phishing è uno di quelli con la sorpresa, con un secondo indirizzo email offuscato e nascosto nel codice PHP.

Conclusioni

Per ora chiudo qui. Dovrebbe essere evidente il pericolo ed il rischio di avere un sito con una applicazione obsoleta, vulnerabile notoriamente a vari tipi di attacchi, come pure dovrebbe essere chiaro che anche un sito web sviluppato appositamente, se non è pensato in origine per resistere a vari tipi di attacchi, tutti arcinoti e ampiamente documentati, diventa una porta di ingresso per tutta la pletora di mentecatti in giro per la Rete. Il fatto che non sia disponibile il sorgente dell’applicazione non rende affatto più difficile il lavoro di chi ha intenzione di violare il sito per farci i suoi comodi.

Ed ancora, chi ha un sito violato non si aspetti di vedere segnali particolari o sentir squillare una sirena: le intrusioni sono estremamente silenziose, poco evidenti e ben tollerate da tutti i siti e applicazioni. Difficilmente sul sito si vedrà un defacement, o almeno non contemporaneamente all’apparire del sito di phishing. Potrebbe invece succedere che prima ci sia il sito di phishing, e solo dopo che abbia fatto i propri comodi l’autore del phishing abbandoni il sito al suo destino, dopo aver lasciato porte scardinate e finestre sfondate. A quel punto il defacement sarebbe il minore dei problemi.

Riferimenti

Tags: , ,

Ripara, velocizza e pulisci! Cosa, non si sa.

Ho notato da un po’ che è praticamente impossibile capitare su un sito che parla di computer e informatica o fare una qualsiasi ricerca su Google riguardante sempre computer o informatica senza vedere la pubblicità di programmi per pulire e velocizzare il registro di Windows, mostrati nei banner di Google Ads.

I siti che li offrono sono apparentemente ben fatti e curati, anche se si notano alcune incertezze attribuibili ad un traduttore automatico. Bene in vista c’è il pulsante Scarica GRATIS!, anche se poco sotto appare la contraddittoria frase “100% Garanzia Soddisfatto o Rimborsato”. Se è gratis, cosa viene rimborsato?

Naturalmente ho fatto alcune analisi sul comportamento di questi software. Niente di esoterico, per carità, che fra l’altro è vietato dalla licenza stessa del software. Semplicemente ho fatto un controllo incrociato sulle presunte schifezze segnalate nel registro di Windows dal solerte software.

Ecco in dettaglio i test fatti. L’ambiente è una macchina virtuale Windows XP con SP2 installato, fresca di installazione, senza nulla aggiunto, mai connessa in rete prima. Il software ha una modalità automatica in cui esegue una scansione e mostra alla fine un rapporto sui problemi rilevati. Una seconda modalità di scansione consente invece di selezionare da un elenco cosa deve controllare, ad esempio chiavi di registro vuote, associazioni dei file, voci del menu di avvio, cronologia degli URL di Internet Explorer. Il responso del primo tipo di test è allarmante: 95 problemi rilevati. Su un computer fresco di installazione non è male. Andando a vedere quali siano i problemi, la situazione si fa imbarazzante. Ne elenco alcuni dei più singolari:

  • Sotto “Cronologia di IE” vi è una singola riga, relativa alla chiave “Software\Microsoft\Internet Explorer\TypedUrls” che vale “http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=6&ar=msnhome”. Non sapevo che la pagina di default di Internet Explorer 6 fosse un problema.
  • Sotto “Chiavi Vuote del Registro” vi sono le impostazioni di alcuni screensaver (3DFlyingObj, 3DPipes e Bezier), che sono naturalmente vuote perché non è ancora mai stato impiegato uno screensaver, figuriamoci se configurato nelle sue proprietà. Ma la più gustosa è una chiave di registro appartenente al programma di pulizia appena installato. Non doveva pulire?
  • Nelle “Associazioni file” è considerato un problema che i file Wave abbiano nel menu di contesto “Apri con…” il Registratore di Suoni di Windows.
  • Per ultimo viene considerato un problema che l’applicazione cmmgr32.exe (il Microsoft Connection Manager) abbia il path di installazione scritto in una chiave di registro.

Provato un differente software che dichiara di offrire lo stesso servizio, i problemi riscontrati diventano 43, naturalmente non ne coincide neanche uno con i 95 rilevati dall’altro. E naturalmente nessuno dei due si accorge dell’altro.

Altra prova: installo Firefox 3.5 appena scaricato. Il primo fa lievitare gli errori da 95 a 106, il secondo insiste su 43 errori. Installo Gimp 2.4.4: nessuna variazione: 106 errori il primo, 43 il secondo. Nel frattempo l’avvio del computer virtuale è diventato sensibilmente più lento, perché ad ogni avvio effettua la scansione del registro e propone la pulizia mediante registrazione dei programmi.
Ragionando a cervello spento, cerco una utility che mi renda più veloce il computer, ottimizzando tutto. Ne trovo una che fa al caso mio, la installo. Riavvio il computer virtuale, che intanto impiega cinque volte tanto a mostrare il desktop, rispetto a quando era “sporco e non ottimizzato”. Appena aperto il desktop partono le tre scansioni: i due pulitori del registro e l’ottimizzatore, che non tarda a mostrare la sua potenza. Propone i seguenti interventi:

  • Sotto la categoria “Privacy files” sono elencati ben 232 problemi. In pratica sono la cache di Internet explorer, di Firefox, l’elenco dei siti visitati e qualche chiave di registro. Tutta roba che si può pulire tranquillamente dai browser stessi e senza installare niente in aggiunta.
  • Sotto la categoria “Network tweaks”, sono elencati 10 interventi fra cui “Incrementare la cache del browser”, “Controllare gli aggiornamenti della pagine web solo una volta per sessione”, “Impostare la cache a 5000kb” e “controllare l’aggiornamento dei contenuti solo una volta per sessione”. Sono le stesse due voci, duplicate con la stessa descrizione, perché vi sono due browser installati. La seconda, ossia controllare i contenuti sui siti web solo una volta per sessione, rende sì la navigazione più veloce, ma ha anche qualche effetto collaterale, che lascio da scoprire come compito a casa. In ogni caso, le impostazioni sono modificabili senza altri intermediari anche dai rispettivi browser.
  • Sotto la voce “Windows tweaks”, abbiamo ben 13 interventi, fra cui disabilitare l’animazione delle finestre e dei menu, non modificare la data di ultimo accesso dei file, non cancellare il file di paging all’uscita dal sistema operativo e per ultimo non usare il file di paging. Anche qui non c’è bisogno di un software specifico, e comunque, a parte il piccolo miglioramento nella velocità di risposta che si ottiene disabilitando gli effetti grafici, tutti gli altri interventi hanno i loro effetti collaterali.
  • Per ultimo, sotto la categoria “Startup tweaks”, troviamo elencati una serie di servizi da disabilitare che in realtà o sono già disabilitati, o poco usati, ma se disabilitati hanno alcuni effetti collaterali che non sono spiegati nel software.

Come è facile immaginare, anche per cancellare la cache del browser devo registrare il programma, acquistando una licenza al prezzo di 25 euro, scontato.

Ultima prova: ho disinstallato sia Gimp che Firefox, naturalmente chiedendo a Firefox di togliere tutti i suoi file e le sue chiavi di registro, oltre che tutti i dati del profilo. Il risultato è che mentre l’ottimizzatore vede meno cose da fare (non c’è più Firefox con la sua cache da pulire ed ottimizzare), gli altri due mostrano 108 e 47 problemi ciascuno. Naturalmente i problemi mostrati in più non coincidono fra loro.

Rimane l’ultima prova, la disintallazione. I tre programmi si eliminano senza tanti problemi, ma uno di essi lascia una chiave di registro per l’avvio automatico, solo che l’applicazione non c’è più. Ora il computer è tornato ad essere veloce come prima, all’avvio.

Conclusioni

Al di là delle prestazioni e dei vantaggi dichiarati, il prezzo richiesto non vale il lavoro fatto da questi programmi, nella migliore delle ipotesi. L’eccessivo numero di problemi riportati, che, lo ricordiamo, sono rilevati su un computer fresco di installazione, fa pensare che sia una strategia per indurre ad acquistare un prodotto in fondo inutile, le cui funzioni o sono già presenti nel sistema operativo o sono svolte da altre applicazioni gratuite e senza oneri di alcun tipo.
Insomma, questi software hanno un comportamento più simile ad un grayware, che ad un programma utile a qualcosa. Sia ben chiaro: i produttori di questi software non fanno nulla di illegale, in sé, soltanto usano delle tecniche di marketing piuttosto aggressive. Pensateci due volte prima di mettere mano alla carta di credito.

Tags: , ,

Conficker: un ospite tanto silenzioso quanto pericoloso

Al momento sto sostituendo i computer di un impianto per via di un cambio di piattaforma (si passa da PC a Mac). I PC, ancora perfettamente funzionanti e con una buona dotazione di hardware, vengono ripuliti dalle applicazioni inutili e riconfigurati per essere utilizzati in altre applicazioni.

Sono sistemati provvisoriamente nel mio ufficio, dove li libero delle schede non più necessarie e faccio una ricognizione generale per trovare ed eliminare roba inutile rimasta dal vecchio impiego. Non che ve ne sia molta, gli account erano tutti non amministrativi e gli utenti non potevano (e non dovevano) installare alcunché, visto che l’uso era strettamente professionale e limitato ad una sola applicazione.

Nonostante questo e nonostante il fatto che la rete fosse isolata dal resto del mondo, ho avuto la sorpresa di trovarvi annidato Conficker, in una delle tante varianti.

E’ la prima volta che mi capita di avere per le mani computer colpiti da Conficker, senza che nessun altro vi abbia prima pasticciato o che la macchina sia già talmente compromessa da non riuscire a capire quanto delle devastazioni sia colpa di Conficker e quanto invece delle varie inutility installate dall’esperto di turno.

Come mi sia accorto della presenza del simpatico ospite, è frutto praticamente del caso: sui computer era installato VNC per l’assistenza da remoto, ed avevo aperto le rispettive porte sul firewall di Windows, aggiungendo le necessarie eccezioni. Dato che nella nuova sistemazione VNC non serve più, lo stavo eliminando e per completare il tutto sono entrato nel pannello di gestione delle eccezioni del firewall per rimuovere le due relative a VNC. Notata una eccezione, il cui nome era di sette caratteri alfabetici a caso, ho subito pensato che ci fosse qualcosa di strano, forse causato da qualche malware partito da un pen drive, visto che questa funzione non era bloccata. Ho disabilitato l’eccezione, poi, dopo aver eliminato parte del software non più necessario, ho riavviato, e l’eccezione era di nuovo attivata.

A quel punto il sospetto era certezza. Ho visto a quale porta TCP si riferiva l’eccezione, ed era la 1138, una porta non privilegiata e non usata da nessun servizio noto. Usando il comando netstat -nao si ottiene la lista delle porta TCP e UDP aperte con i relativi PID (Process ID) dei demoni le usano. Un processo teneva effettivamente aperta questa porta, ed il PID corrispondeva ad una istanza di svchost.exe con utente SYSTEM, come dire tutto e niente. Su un’altra macchina, sempre compromessa, la porta TCP ed il nome della eccezione sul firewall erano differenti, ma anche qui vi era l’istanza di svchost.exe relativa alla porta TCP aperta.

Per farla breve, ho usato due differenti strategie per rimuovere l’ospite indesiderato: una con il tool di rimozione di Symantec, efficace e veloce, una manualmente, che però è molto laboriosa e a rischio di veder vanificato il lavoro se si salta un passo. L’insediamento è fatto sfruttando un bug nel servizio di esecuzione pianificata, attivato dalla rete usando una named pipe sulla porta 445: la macchina già infetta si connette alla vittima, ed attraverso la pipe denominata “atsvc” esegue qualcosa che provoca l’attivazione. Viene depositata una DLL dal nome casuale nella directory system32, con impostati permessi molto particolari, tanto da risultare apparentemente intoccabile anche dall’utente amministratore. In realtà basta riassegnare i diritti al gruppo Administrators e si riesce ad eliminare, ma se prima non si è chiuso il firewall, impedendo l’accesso anche alla porta 445 (basta spuntare la casella “Non consentire eccezioni”) e se l’infezione è diffusa a più macchine, in breve si è daccapo con una differente DLL e una differente porta TCP. La DLL viene infilata come servizio da lanciare in una chiave di registro riguardante un servizio nascosto, che si trova cercando il nome della DLL: il nome del servizio è casuale e viene inserito un una chiave di registro particolare, che lo fa lanciare ad ogni avvio. Tutte le chiavi di registro coinvolte hanno la ACL impostata in modo che apparentemente siano intoccabili anche da Administrator, ma usando la voce “Autorizzazioni” del menu “Modifica” di Regedit si riesce a riassegnare i permessi anche ad Administrator e rimettere a posto le cose, cancellando l’avvio del falso servizio.

Comunque, al di là della complessità di rimozione, e delle tecniche di hiding messe in atto, Conficker compie un passo in più verso l’operatività silenziosa: ho avviato uno sniffer su una macchina Linux, connessa allo stesso switch delle macchine compromesse, e la sorpresa è (poco) piacevole: naturalmente dallo switch ricevevo solo il traffico broadcast, ma è stato sufficiente per notare come la strategia di scansione di Conficker sia molto meno “rumorosa” di tanti altri malware: ogni due secondi tenta un nuovo indirizzo, andando progressivamente per tutti gli indirizzi della subnet in cui si trova. Dopo il primo giro di scansione, il processo si ferma e non si hanno altri segnali, almeno non nei minuti immediatamente successivi. Questo significa che, a meno di non usare uno sniffer, e di usarlo al momento giusto, difficilmente verrà notato il traffico anomalo, come invece succedeva con altri malware, che eseguivano scansioni senza fine alla ricerca di altri computer su cui propagarsi alla massima velocità permessa dalla interfaccia di rete, rallentando tutto e generando moltissimo traffico.

Altro passo è l’assenza di processi in esecuzione specifici: usa un demone di sistema, quindi non ci sono processi con nomi strani o che scimmiottano i nomi di altri demoni legittimi.

Ancora, Conficker impedisce l’accesso via Internet a tutto il dominio microsoft.com, oltre probabilmente a molti altri, senza modificare file di configurazione e senza installare strani servizi: agisce sul servizio di cache DNS, probabilmente inquinandone il contenuto con valori improbabili. Il risultato è che solo aprendo un browser e puntando ad uno dei siti Microsoft si ha il sentore che qualcosa non sia proprio al suo posto.

Queste caratteristiche lo rendono differente da tutti i malware di questa categoria visti in precedenza e soprattutto lo rendono pericoloso ad un nuovo livello, perché anche l’utente più smaliziato difficilmente si accorgerebbe di avere una macchina compromessa, venendo a mancare qualsiasi segnale, almeno fra i più comuni, della presenza di un malware annidato nelle profondità del sistema operativo. Da quella che è la mia esperienza, questa strategia mostra che chi ha creato e diffuso Conficker, e le sue varianti, ha l’interesse non solo a colpire più computer possibili, ma anche a prolungare il tempo di permanenza nelle macchine colpite, non solo rendendo difficoltosa la rimozione con l’uso di caratteristiche poco note ai più, ma anche e soprattutto rendendo meno evidenti i sintomi dell’infezione.

In conclusione, anche considerando la grande diffusione e la difficoltà di estirparlo, Conficker rappresenta forse il primo di una nuova categoria di malware, pensati per annidarsi nelle viscere dei computer infetti e fare il proprio lavoro in modo silenzioso e discreto. Tenendo poi presente la capacità di scaricare ed eseguire a comando altri programmi, è facile immaginare scenari dove si possa trasformare in keylogger per catturare coppie di login e password, trafugare file con le credenziali di accesso a servizi o server remoti, operare come testa di ponte per diffondere spam o altri malware, trasformare i computer infetti in proxy o installarvi un simpatico sito di phishing.

Manca solo la chiusura ad effetto. Concedetemela: che sia un altro passo verso un malware veramente cattivo?

In realtà, no, siamo ancora lontani, ma Conficker si situa a metà strada fra i malware di tipo 0 e quelli di tipo I (usando la tassonomia proposta da Joanna Rutkowska), usando un demone di sistema per essere avviato e non apparire direttamente fra i processi in esecuzione. Rimane comunque il fatto che è difficile accorgersi della sua presenza, e la sua discrezione e silenziosità lo rende molto più pericoloso di tanti altri della sua razza.

Riferimenti

Tags: , ,

Il cugino del Wordpress Autotest: Unmask Parasites

Il test per blog infetti non è più disponibile su questo sito, ma qualcuno ha implementato un servizio simile, impiegando Google App Engine: Unmask Parasites.

Il servizio esegue dei controlli sul codice emesso dal web server del sito esaminato alla ricerca di indizi e segni tipici dell’intrusione che per oltre un anno ha devastato i blog basati su versioni obsolete e vulnerabili di Wordpress. Oltre questo, propone di usare Google per individuare i segni esterni dell’intrusione.

Peccato che, dagli ultimi siti analizzati, l’iniezione di link abusivi sia praticamente sparita per fare posto a codice malevolo molto più pericoloso. Non so se il sito in questione faccia dei controlli in tal senso, ma posso affermare che tali controlli sono quasi impossibili da automatizzare, per una ragione molto semplice: mentre l’iniezione di link nascosti ha certe caratteristiche comuni e ben individuabili, le violazioni su cui sto indagando negli ultimi tempi inseriscono del codice PHP offuscato che produce pagine web con codice Javascript, a sua volta offuscato, che opera redirect o tenta di rifilare malware a chi visita il sito. Il modello di offuscamento cambia ogni volta e non è possibile trovare degli elementi comuni, tali da permettere un automatismo nella ricerca.

Insomma, il mentecatto, come sospettavo, si sta dando da fare. La soluzione è sempre la stessa: aggiornare prima di essere violati.

Tags: , ,

Qualche pensiero sull’hacker 2.0

Nell’inserto del giovedì Nova24 del Sole 24 Ore di questa settimana è apparso un articolo di Guido Arata sull’evoluzione dell’hacker. C’è anche un mio breve intervento tratto dall’intervista telefonica che mi ha fatto Guido sull’argomento.

L’articolo si può leggere direttamente sul sito di Guido Arata: Chi è l’Hacker 2.0?.

Tags: , ,

Manco le basi: password e hash LM o NTLM in Windows

Mi imbatto spesso in situazioni che si potrebbero collocare al limite del ridicolo, se non fossero più che altro tragiche e basta.

Quella di cui voglio sviscerare le ragioni tecniche qui, riguarda la famigerata debolezza del sistema di memorizzazione delle password di Windows, almeno fino alla versione XP/2003.

Un minimo di teoria

Il problema di memorizzare le password degli utenti in tutti i sistemi che prevedono questo metodo di autenticazione è stato nel tempo ampiamente analizzato. L’impostazione moderna segue questa strategia: la password non viene memorizzata direttamente, ma se ne memorizza un hash, ossia un valore che, pur assolutamente dipendente dalla password, non permette di risalire alla password originale.
Lo scopo è che se in qualche modo un attacco permetta di leggere l’hash della password, sia impossibile (o quasi) risalire alla password originale. Avere l’hash non serve a nulla perché per accedere al sistema serve la password.
Ora, il problema è che, dal punto di vista matematico, è piuttosto complicato trovare una funzione di hash realmente valida. Ad oggi, pur con qualche debolezza, esistono alcuni algoritmi, come MD5 e SHA1, che sono ampiamente utilizzati nella gestione delle password e che sono dimostrati sufficientemente robusti, anche se vanno usati con qualche accortezza (salt, doppio hash, ecc.).
Questo è particolarmente vero nel caso di Windows. Le password di accesso, se non diversamente specificato, vengono memorizzate in un modo piuttosto complicato, ma paradossalmente debole dal punto di vista della sicurezza: la password può essere lunga fino a 14 caratteri, viene spezzata in due parti da 7 caratteri ognuna, e l’hash viene calcolato separatamente per ogni segmento di sette caratteri, generando quindi due hash, uno per i primi sette caratteri ed uno per i secondi sette. O meglio, se la password è ad esempio di 10 caratteri, il primo hash è per i primi sette caratteri, mentre il secondo hash è per i restanti tre.
Il modo in cui è calcolato l’hash lo rende vulnerabile ad un attacco diretto, che permette di scoprire piuttosto agevolmente la password originale.

La dimostrazione del problema

Un programmino semplice da utilizzare e gratuito chiamato ophcrack usa due tecniche distinte per “rompere” le password di Windows: l’attacco esaustivo e le rainbow tables. Con l’attacco esaustivo (in inglese brute force) vengono tentate tutte le possibili password fino ad ottenere l’hash cercato, e dato che l’algoritmo di hash usato da Windows (chiamato LM hash, da Lan Manager) permette di capire se ci si sta avvicinando alla password cercata esaminando l’hash risultante, la cosa viene ancora più facile.
Le rainbow tables sono invece dei database di hash a cui viene fatta corrispondere una sequenza di caratteri il cui hash è quello indicato. Detto in altro modo, dato un hash mi dice quale sequenza di caratteri genera quel particolare hash. Questo dovrebbe anche far capire quanto siano grandi le rainbow tables. Sul sito del programma ophcrack vi sono infatti anche le rainbow tables, della dimensione di parecchie centinaia di megabyte, che devono essere scaricate prima dell’uso.

Ecco l’ambiente di test: una macchina virtuale in cui è installato Windows XP con Service Pack 2, e la configurazione predefinita. Due utenti, entrambi amministratori, con password assegnata:

  • Nome: user password test
  • nome: passtest password: 4′qX-7x(30+

Mentre il primo ha una password volutamente debole, il secondo ha una password realmente complessa e robusta, anche se molto difficile da ricordare.

Questi i risultati di ophcrack:

  • La password dell’utente user viene trovata in appena 14 secondi
  • La password dell’utente passtest non viene trovata per intero, ma ne viene rivelato il secondo segmento, (30+, in appena 27 secondi

Il senso è questo: una password abbastanza semplice, anche se lunga, viene rivelata agevolmente dal programma, proprio per via della debolezza intrinseca dell’algoritmo di hashing. Una password esageratamente complessa si mostra difficile da trovare, ma naturalmente pone dei problemi di altro tipo (memorizzazione da parte del “lato umano”).

Esiste una impostazione nelle politiche di sicurezza che permette di cambiare il modo in cui viene calcolato l’hash, ossia non viene più usato l’algoritmo LM, ma solo la versione NTLM, che si è rivelato molto più robusto agli attacchi. L’impostazione è accessibile dal Pannello di Controllo, nella sezione “Prestazioni e Manutenzione”, scegliendo “Strumenti di Amministrazione”. Si seleziona “Criteri di protezione locali” e si prende dall’albero sulla sinistra la voce “Criteri locali” e di seguito la voce “Opzioni di protezione”.

L’impostazione è denominata “Accesso di rete: non memorizzare il valore hash di LAN Manager al prossimo cambio di password” (in inglese è: “Network security: Do not store LAN Manager hash value on next password change”). L’impostazione predefinita è “disabilitato”. Cambiandola in “Abilitato” le cose cambiano abbastanza:

  • La password dell’utente “user” viene trovata in 14 secondi
  • L’altra password non viene trovata, neanche in parte

Ho fatto un ulteriore test cambiando le due password rispettivamente:

  • Utente “user” password testone, trovata in 15 secondi
  • Utente “passtest” password test-1-one, non trovata

Conclusioni

Al di là della complessità della password scelta, non applicando la maggiore sicurezza degli hash di tipo NTLM, che in Windows fino alla versione XP/2003 devono essere abilitati esplicitamente, si vanifica una buona parte della sicurezza di un computer. Dato che ophcrack è anche disponibile in versione Live avviabile con le rainbow tables già comprese, è facile pensare ad un attacco condotto verso l’utente amministratore di un PC per acquisirne la password di accesso.

Quindi, per prima cosa occorre togliere l’impostazione che memorizza la versione LM degli hash delle password. La seconda è naturalmente sempre la stessa: scegliere buone password. Ho trattato casi in cui l’amministratore dei computer di una rete con decine (qualche volta centinaia) di PC usasse sempre la stessa password per l’utente amministratore locale, e ne usasse una rapidamente individuabile da ophcrack.

Difficilmente sono andato oltre i 50 secondi per rivelare la password di amministratore, pur usando dei computer non certo velocissimi. E quasi mai ho trovato gli hash LM disabilitati.

Tags: , , , , ,

La vita comoda dell’insider

Il nemico in casa

L’insider, ossia quello che attacca da dentro, che colpisce alle spalle. La traduzione è “addetto ai lavori”, quindi è uno che sa come funzionano i processi aziendali su cui va a fare danni. Quello che i manager ignorano è che spesso l’insider conosce i processi e le relazioni non scritte, quelle che non compaiono nei documenti corposi di analisi prodotti dal solito consulente per la sicurezza e la privacy.

Per carità, nessuna critica ai consulenti, è anche il mio lavoro, per cui sarebbe un autogol.

La realtà è che spesso le aziende non conoscono le proprie interiora, il proprio corpo. Non sanno che il signore che da anni lavora in quella stanzetta al terzo piano è quello che sa perfettamente come funziona e chi contattare per fare quella cosa specifica, che nella mappatura dei processi aziendali magari non compare neanche, perché è inglobata in una casella con un nome (naturalmente in inglese “burocratico”), che in realtà dice poco su quanto sia importante il lavoro svolto.

La dimensione dell’azienda conta, e conta molto. Più è grande, e più è fisiologico che succeda. D’altra parte il management cambia in fretta, difficilmente regge più di cinque anni, mentre il signore nella stanzetta sta lì magari da venti e più. Il manager ha poco tempo, ha un compito preciso, spesso ingrato, e non può umanamente conoscere tutti.

Ed il signore nella stanzetta passa pian piano nel dimenticatoio, fino a quando non salta fuori che la stanza serve a qualcun altro. O il collega più giovane e “rampante” ottiene la promozione, passando avanti al signore. Ecco creato un altro insider.

Alla faccia della risk analysis

Lo so, ho semplificato, le ragioni sono molto più complesse, e qualsiasi semplificazione o schematizzazione è pericolosissima, perché ogni caso va trattato a parte, come ogni persona è differente dalle altre. Fare altrimenti costituisce un errore di valutazione, che non può essere che fatale.

I documenti di analisi dei rischi, e delle relative contromisure, sono corposi, ben organizzati, dettagliati, ma purtroppo non possono scendere al livello di dettaglio a cui lavora l’insider.

A che ora l’impiegato che consegna la posta interna passa a ritirare le lettere, dove vengono depositate in attesa di spedizione, a che ora l’impiegata del personale stila il foglio delle assenze, le sue abitudini dell’ora del caffè, sono cose che spesso l’insider conosce da tempo, come da tempo sa quale sia il punto debole nella catena, non perché “pensi nero”, ma semplicemente sono informazioni trasformate in abitudini.

Senza parlare poi di quando l’organizzazione aziendale è carente dal punto di vista della assunzione di responsabilità. L’informatica ha molto successo in alcuni ambiti, soprattutto perché consente di scaricare la responsabilità sullo strumento. O almeno così credono molti manager. Mettiamo quel sistema di autenticazione sicuro con la smart card, con le impronte retiniche, con l’ultimo grido tecnologico, e siamo al sicuro da tutto.

E’ la stessa credulità che qualche volta deridiamo in chi va dal mago. Non esistono strumenti magici, anche se vengono venduti per tali. E’ e sarà sempre il contesto e l’essere umano a fare la differenza.

Di cosa parlo? Esistono i tesserini per le presenze, no? “Strusci” il tesserino e attesti la tua presenza in azienda. Naturalmente nessuno si sogna di crearne delle copie, prestarlo al collega, lascialo incustodito sulla scrivania. Certo che no.

Infatti la comparsa dei tesserini per le presenze ha debellato la piaga dell’assenteismo. Lo sappiamo tutti. Naturalmente, questo si accompagna al metodo “punire tutti per non educare nessuno”. Tradotto: anche quando, per un caso più che per intenzione, si individui il colpevole di una violazione o di un comportamento negligente, si preferisce lanciare in aria una manciata di sassolini, che danno fastidio a tutti ma in fondo non danneggiano nessuno, piuttosto che tirare un “sanpietrino” al colpevole, perché implicherebbe un coinvolgimento personale e l’assunzione di responsabilità da parte del manager.

Ecco. L’esempio calza a pennello.

Sistemi di Single Sign-On, log centralizzati e certificati, postazioni dotate di smartcard, crittografia forte, tutto quello che vi viene in mente e che trovate nelle raccomandazioni di chi stila le analisi di sicurezza. Metteteci proprio tutto.
Poi aggiungete il fattore umano: emozioni, situazioni, eventi, relazioni, pensieri, convinzioni, pregiudizi.

Il risultato non tarda ad arrivare. Ogni precauzione, per quanto intelligente e studiata, ha la sua nemesi. Autenticazione con smart card assolutamente sicura? L’impiegato la lascia inserita nel lettore e va alla toilette, lasciando la porta aperta. Oppure la dimentica a casa, e le prossime volte, per paura di scordarla di nuovo, la lascia inserita nel lettore.
Password sottoposte ad un rigido protocollo (del tipo: scadenza ogni tre mesi, lettere numeri e simboli, niente termini a dizionario, differente dalle ultime 4 utilizzate)? Il foglietto attaccato sul fondo del cassetto (o sotto la tastiera, o sotto il portapenne) con le sei password da usare a rotazione risolve il problema di doverle tenere a memoria e inventarne una nuova quattro volte l’anno.

La fantasia è l’unico limite, e quando si tratta di fare meno fatica la fantasia abbonda.

Poi arriva l’incidente di sicurezza. Quello serio. Che non è il virus devastante, non è l’hacker “black” di turno. No, molto meno. Qualcuno ha, a scelta:

  • Cancellato dei file
  • Modificato dei file
  • Copiato dei file
  • Svuotato un database
  • Modificato un database
  • Copiato un intero database
  • … e via di seguito…

Parte il panico. I manager tuonano, i responsabili tremano, gli amministratori di rete e dei server sono chiamati a casa, di solito nel fine settimana, per rimettere a posto i disastri, i computer sono spenti, tolti dalla “scena del crimine” e riaccesi per fare un backup, gli impiegati interrogati, i log studiati.
Il risultato? La magia tecnologica si rivela insufficiente:

  • i log non dicono nulla di utile, a parte quello che si sapeva già, ossia postazioni rimaste accese per giorni con un account utente loggato, amministratori che entrano ed escono dalle postazioni “violate”, generando rumore e cancellando molto probabilmente dati preziosi
  • le postazioni sono state manipolate in più occasioni e da più persone, alterando tracce e cancellando indizi importanti
  • gli operatori ammettono candidamente di fare uso promiscuo di account e credenziali “perché se il collega è in ferie non posso lavorare senza i suoi file” (i file server, questi sconosciuti)
  • Sempre sulle postazioni si trova di tutto: software installato senza licenza, configurazione di sicurezza lasciata sulle impostazioni di default, quindi inesistente, dati estranei all’impiego ufficiale della postazione, per usare un eufemismo

Poi si passa al lato organizzativo, e lì si assiste alla sconfitta completa anche del semplice buonsenso. Operatori non formati ed informati sui propri diritti e doveri, amministratori che operano senza linee guida, e quando queste ci sono c’è sempre un buon motivo per fare eccezioni, naturalmente vanificandone l’efficacia. Ed è quasi impossibile far capire al responsabile di turno che lo strumento, pur sofisticato, senza indicazioni d’uso e regole precise è inutile, quando non dannoso per la mal riposta fiducia nella magia tecnologica.

Alla fin fine questo noi lo sappiamo già. Quello in cui veniamo sconfitti ogni giorno è nel far capire che lo strumento non è la soluzione. Ma anche questo lo sappiamo già. Solo che non riusciamo a trasmetterlo, e chi ha la possibilità di comunicare in maniera efficace e massiva spreca l’occasione mostrando situazioni e soluzioni che in una finzione sono perfette, ma nella realtà sono inesistenti.
Basti pensare agli innumerevoli telefilm e film che presentano il lavoro di investigazione sui computer come una sorta di panacea che risulta essere anche la nemesi di tutti i cattivi, mostrando con coloratissime animazioni in pseudo-computergrafica come in pochi passaggi si ricostruisca il volto di una persona da un fotogramma preso da una telecamera di sorveglianza in cui la persona è inquadrata a figura intera. Peccato che bastino alcuni semplici calcoli per mostrare come sia impossibile, indipendentemente dalla tecnologia impiegata. O che da un messaggio di posta elettronica si possa risalire all’effettiva identità di chi lo ha inviato, cosa che anche l’informatico più sprovveduto sa essere impossibile, e sicuramente non utilizzabile come “prova”, perché anche risalendo all’indirizzo IP del mittente, e da questo all’intestazione dell’abbonamento a Internet, non ci sono prove per dimostrare che era proprio lui al computer in quel momento, certo non esaminando il computer e basta. Ed ecco perché nei casi noti della cronaca i periti nominati dai tribunali possono dimostrare ben poco. Ma questo siamo in pochi a capirlo.

Per tutti gli altri, basta usare un sistema biometrico e si risolve il tutto.

Riferimenti ed altre letture

Tags: , , ,

Owned Wordpress: tempesta finita? Questa sì.

In un prossimo seminario presso IISFA parlerò dei metodi di analisi relativi ad una intrusione in un sito web, al fine di trovare cosa è stato modificato, in che modo e quale sia lo scopo delle modifiche rilevate.

Per l’occasione userò il materiale raccolto negli ultimi tempi in alcuni incidenti di sicurezza riguardanti vari siti web, il cui proprietario ha dato naturalmente il consenso per l’uso. Una parte consistente sarà tratta dal lavoro fatto su numerosi blog con Wordpress compromessi in vari modi.

Siti puliti, o sporcati in modo differente

Con l’occasione ho dato uno sguardo a parecchi siti web “storici”, ossia compromessi da tempo, che non sono mai stati ripuliti. Alcuni sono lindi e innocenti come un neonato. Niente link, niente codice strano prodotto al passaggio di uno spider, niente di niente. La versione di Wordpress è esattamente la stessa di prima, cioè non è stato fatto alcun aggiornamento all’installazione, solo che l’infezione è sparita. In altri siti è cambiato il tipo di infezione, da quello più sofisticato, con il codice attivo nascosto nel database che reagisce agli spider dei motori di ricerca, ad un semplice blocco di codice HTML accodato ad uno o più post, di solito un tag <font>, <u> o <b>, con una istruzione di stile che serve a nascondere il blocco (tipicamente uno style=”display:none;”). Nel blocco, 100-200 link con le solite parole chiave, invisibili a meno che si disabiliti l’uso dei fogli di stile nel browser o si vada ad ispezionare il codice emesso dal server.

Probabilmente la presenza del blocco non è neanche visibile aprendo il post modificato nell’editor avanzato di Wordpress.

Cosa cambia

I siti rimasti con la vecchia infezione sembrano abbandonati dal mentecatto, ossia i link iniettati sono rimasti gli stessi da parecchio tempo. Alcuni siti che sono stati ripuliti usando un backup, senza quindi aggiornare, hanno subito una o due reinfezioni per poi essere lasciati in pace, segno che o il mentecatto ha capito che non ne vale la pena, o ha chiuso l’attività.

Sicuramente la reazione forte dei principali motori di ricerca, ossia il ban e la totale esclusione del sito dall’indice alla rilevazione dell’infezione, ha avuto la sua parte nella rinuncia del mentecatto, sempre se di rinuncia si tratta.

Per i siti ancora riportanti i link, il modello dell’intrusione è differente. Per poter modificare i post e aggiungere in coda i link nascosti è necessario molto meno lavoro e l’intrusione è molto meno profonda: non servono plugin nascosti, non servono modifiche ai file di Wordpress, non servono blocchi di codice nascosti nel database. E’ sufficiente operare solo la prima parte dell’intrusione per creare un amministratore nascosto, ed utilizzarlo per modificare a piacere i post già pubblicati. Il vantaggio è che non serve codice complesso o strane alchimie, è sufficiente avere tale account nascosto.

Il Wordpress Autotest

In questo frangente l’autotest è molto meno efficace, mancando gran parte delle firme caratteristiche dell’intrusione. Efficace nel senso che gli indicatori rossi sono molti meno, non meno efficace nel rilevare le stranezze. Quindi le indicazioni appaiono meno preoccupanti ad un osservatore poco attento. In pratica l’autotest è quasi inutile.

A questo proposito nelle prossime settimane aprirò il codice, mettendolo a disposizione di chi vuole studiarselo, visto la sua probabile inutilità.

Il pericolo non è passato

Il fatto che il nostro amico mentecatto abbia rinunciato, non vuol dire che i blog con versioni vulnerabili di Wordpress (ossia tutte quelle anteriori alla 2.6.5, al momento in cui scrivo) possano ritenersi al sicuro. Manco per niente. Quella che è passata è solo questa specifica tempesta di intrusioni, ma i siti sono ancora vulnerabili e sfruttabili per un numero incredibile di usi poco etici. Phishing, distribuzione di materiale proibito o illegale, spam, solo la fantasia (malata) di questa gente pone un limite. Ficcare un sito di phishing in un sito Wordpress compromesso è un gioco da ragazzi.

Per capirci, il nostro amico mentecatto non ha avuto alcuna particolare difficoltà a trovare il modo di violare tanti siti web. Basta fare un giro su alcuni siti web, fra cui il conosciutissimo e professionale SecurityFocus per trovare tutto quello che serve. In questi siti si trovano nel caso migliore solo dei PoC (Proof of Concept, dimostrativi) ossia dei brevi spezzoni di codice che mostrano come sfruttare il bug nel codice dell’applicazione. Mettere insieme alcuni di questi spezzoni e costruire uno strumento automatizzato per violare a catena un numero a piacere di siti web è una operazione banale per chi sappia maneggiare un po’ di codice.

Il motivo per cui questi spezzoni di codice vengono pubblicati è perché gli errori e le vulnerabilità sono note al produttore, che ha rilasciato la correzione da tempo, e che probabilmente sono arcinoti alla pletora di acari in giro per la Rete, quindi il passarli sotto silenzio è infinitamente più pericoloso che renderli pubblici. Se la serratura della mia auto si apre con una mina di matita senza lasciare tracce, io voglio saperlo. Ed il parallelo è quanto mai azzeccato, potete credermi sulla parola.

Se poi sappiamo dove andare a guardare ci sono in giro kit già pronti con tutto il necessario per trovare, violare e sfruttare a proprio piacimento siti web vulnerabili, utilizzabili da qualsiasi idiota che sappia come lanciare un programma. Ne ho parlato un due diverse occasioni, una delle quali era il convegno di CFItaly nel giugno 2008.

Quindi, torno a ripetere: il fatto, possibile anche se non confermato, che il nostro amico mentecatto abbia abbandonato la sua attività non è un segnale che autorizza a lasciare il proprio sito Wordpress (vale anche per Joomla, Xoops, Drupal, MediaWiki, ecc.) non aggiornato ad una versione obsoleta e vulnerabile. E’ un comportamento irresponsabile, niente di meno.

Niente di più facile che il sito vulnerabile sia usato come “testa di ponte” per attaccare l’intero hosting, situazione già verificatasi più volte. Per il proprietario del sito sarebbe una brutta storia, perché il servizio di hosting scaricherebbe la responsabilità della riuscita dell’attacco (giustamente, dico io) sul proprietario del sito web vulnerabile.

Insomma, spero sia chiaro che non c’è da scherzarci sopra. E per la legge italiana, chiedete conferma a chi volete, se qualcuno subisce un attacco dal vostro sito web, violato da qualcun altro, occorre dimostrare di aver fatto il possibile per evitare che succedesse. E non credo che il mancato aggiornamento di un software in versione notoriamente vulnerabile possa essere considerato “tutto il possibile”. Ed un avvocato considererà molto peggio una scusa del tipo “non mi funziona il template con le versioni nuove”.

Cosa ci insegna la vicenda

Che se da un lato è semplice e “trendy” parlare di Web 2.0 e social networks, a quanto pare parlare di sicurezza in Rete è considerato demodé, ed i risultati si vedono. Negli ultimi tempi gli attacchi si stanno facendo meno sofisticati, mantenendo di contro una altissima efficacia. Segno che non solo gli utenti sono impreparati ad affrontare un attacco di phishing o a base di social engineering, ma il dramma è che gli stessi professionisti del settore informatico sono poco preparati, quando non ignorano del tutto il problema.

Mi sono capitati sviluppatori, webmaster, grafici, sysadmin che non hanno la più pallida idea del livello di sicurezza richiesto per “andare in Rete”. In qualche caso mi è stato risposto che “basta prendere un hosting blindato”. Non mi stupirebbe che siano in molti a pensarla così.

Una cosa che personalmente ho imparato, e che mi ha lasciato molto perplesso, almeno all’inizio, è l’estrema difficoltà a far capire alle persone quanto pericoloso sia avere un sito vulnerabile, o peggio già violato. Lo dimostra anche il fatto che il mentecatto non è stato sconfitto, per niente. Ha rinunciato lui perché la strategia di piazzare link nascosti nei blog non è più efficace ai suoi scopi. Semmai è stato sconfitto dalla prontezza e dalle azioni di contrasto di chi gestisce i motori di ricerca, più che dalla reazione dei proprietari di siti violati. Tanto è che alcune persone mi hanno contattato alla ricerca di aiuto solo dopo che il dio Google li aveva eliminati dalla faccia del web, bannandoli dall’indice.

Altra cosa è che presentarsi per segnalare che un certo sito web è stato violato provoca spesso reazioni ostili, piuttosto che di attenzione o allarme. Insomma, o ti chiami con un nome notissimo (e magari con fama immeritata), o nella migliore delle ipotesi vieni ignorato. C’è stato un momento in cui ho temuto di essere scambiato per il nostro amico mentecatto… Ovvio, no? Prima ti “buco” il sito, poi mi presento e ti chiedo 500 euro per ripulirtelo.

Semmai mi è successo il contrario: vengo contattato perché il blog è stato bucato e una ricerca su Google restituisce il mio sito, ed alla mia offerta di dare una mano senza nulla chiedere mi viene detto che i blog in realtà sono di più, perché anche quelli di altri amici sono bucati.

Alla fin fine

Questo probabilmente sarà l’ultimo articolo dedicato alla vicenda, che per quanto mi riguarda ha esaurito la sua importanza, per non parlare del mio interesse in merito. Come ho già detto, nelle prossime settimane, se il mentecatto non si farà vivo con qualche altra trovata geniale, pubblicherò il sorgente del Wordpress Autotest, che contestualmente verrà eliminato dal mio sito. Non sono uno sviluppatore esperto di sicurezza, e non è una ipotesi peregrina che il codice possa contenere un disastroso errore, tale da compromettere la sicurezza del mio sito. Il codice è stato sviluppato in fretta e con il preciso scopo di fornire uno strumento di autoverifica affidabile e di facile uso per chi non ha le competenze necessarie.

Se il mentecatto ha rinunciato perché efficacemente contrastato da Google, il test è diventato inutile ed è privo di senso lasciarlo online, visto che potrebbe costituire un pericolo per il mio stesso sito.

Tutto ciò non deve autorizzare nessuno a dormire sonni tranquilli. Ogni giorno decine, forse centinaia di siti web vengono violati in modi sottili, perché la violazione spesso non si esplicita in un defacement, plateale ma inutile agli scopi di questa gente. Sempre più spesso il sito violato finisce per ospitare un sito per il phishing, o peggio un appoggio per materiale illegale da distribuire. Quasi tutti i siti di phishing che mi capita di trovare nei messaggi di spam che ogni giorno infestano la mia casella di posta sono “ospitati” in siti di ignari utenti che non hanno la più pallida idea di cosa stia capitando. Chi detiene un sito vulnerabile, e lo sa, sarà prima o poi vittima di un attacco del genere. E’ inevitabile. Lo dice lo spam.

Tags: , ,

Wordpress Autotest: effetti collaterali imprevisti

Sono piuttosto impegnato in questo periodo e, piuttosto malvolentieri, sono costretto a dare delle priorità. Il non-blog in questo frangente risulta avere un livello di urgenza minimo. Appena cala il carico prometto che mi rimetto in riga.

Andiamo al motivo che mi ha fatto uscire dalla tana e scrivere queste poche righe.

Quando ho creato il Wordpress Autotest, la mia intenzione era di fornire uno strumento automatico di diagnosi alla portata di tutti per verificare se il proprio sito era caduto vittima di un attacco molto specifico ed estremamente pericoloso. Al contempo, avevo pubblicato anche una guida rapida per riportare il blog con Wordpress, attaccato e violato, sotto il nostro controllo legittimo.

Tramite il test, a distanza ormai di quasi un anno dall’inizio dell’attacco, ed a oltre otto mesi dalla pubblicazione del test, vengono tuttora scoperti blog violati sotto il controllo del mentecatto che ha dato origine a tutto questo, segno che il pericolo è tutt’altro che passato.

Quello che avevo immaginato è che coloro in possesso di un sito Wordpress autogestito (in self-hosting, come si dice) dopo aver fatto il test e rilevata l’infezione, procedessero, da soli o con l’aiuto di qualcuno, alla pulizia seguendo le più elementari regole di buon senso, primo fra tutti un sano e robusto upgrade della versione di Wordpress ad una che non offra occasioni di far birbonate ai mentecatti in giro per la Rete.

Invece quello a cui sto assistendo è che molti usano il test come un “allarme” per rilevare se è ora di ripristinare un backup. E rimettere la stessa identica versione di Wordpress, lasciando di fatto il sito aperto ad una nuova intrusione che puntualmente si verifica nel giro di qualche giorno.

Immagino ci siano delle ottime ragioni per usare questa strategia, come ad esempio il dover rifare un template, o il rinunciare ad alcuni plugin assolutamente necessari, ma a questo punto perché non installare un plugin apposito come il Wordpress Exploit Scanner. Faccio notare che il plugin funziona solo con Wordpress 2.5.1 o successivo, perché (cito l’autore): “There’s not much point in finding exploited files if you’re running an old version of the software that can be broken into again.” (tradotto grossolanamente: non è molto utile cercare file modificati se si usa una vecchia versione che può essere sfasciata in qualsiasi momento).

C’è anche un altro problemino. Un sito bucato con questa tecnica potrebbe diventare la porta di ingresso in un hosting condiviso. Mi spiego: molti servizi di hosting impiegano dei software per far convivere tanti siti web sullo stesso server, mantenendoli separati sia dal punto di vista logico che dal punto di vista sicurezza. Ma i meccanismi di separazione non sono infallibili, e un singolo sito violato rappresenta una minaccia gravissima per tutti i siti ospitati sullo stesso server fisico. Tanto per fare un esempio, sullo stesso server su cui state leggendo queste righe sono ospitati centinaia di siti, tutti indipendenti uno dall’altro.

Non è un caso raro, anzi, mi sono capitati casi in cui siti perfettamente a posto sul piano sicurezza, o addirittura “statici”, ossia senza pagine dinamiche ma solo in HTML, fossero iniettati di schifezze a causa di una intrusione massiccia originata da un altro sito ospitato sullo stesso server.

Ad un certo punto, il mentecatto che usa i siti Wordpress bucati per fare pubblicità a scrocco (il termine tecnico sarebbe black SEO o black hat SEO) potrebbe trovarsi tagliato fuori dai motori di ricerca, che stanno attivamente reagendo a queste tecniche di spamming con l’esclusione dei siti infettati dagli indici. Nessuno ci assicura che non possa prendere una strada differente e cercare di violare l’intero server, invece di limitarsi ad un singolo blog. Alcuni servizi di hosting prendono provvedimenti molto seri verso chi ha il sito “bucato”, a partire dalla diffida a provvedere a turare le falle, fino alla risoluzione del contratto ed alla citazione per danni. Leggete attentamente le clausole del vostro servizio di hosting e poi riflettete se è il caso di continuare a ripristinare un backup dello stesso sito, o magari non è giunto il momento di tappare qualche buco.

Tags: , ,