Sono moltissimi i servizi disponibili in rete per il cui accesso, libero e gratuito, occorre registrarsi. Al momento di convalidare la registrazione ci viene di solito richiesto di dimostrare che siamo esseri umani e non script automatizzati creati per abusare del servizio. Per toglierci da questo sospetto ci viene mostrato un CAPTCHA, ossia una immagine che contiene lettere e numeri, difficili da leggere, distorti e camuffati, da copiare in una casella di testo. Questo permette appunto di dimostrare che c’è un essere pensante e non un automatismo a richiedere la registrazione.
Il motivo è semplice: se sono uno spammer e voglio mandare messaggi, senza essere bloccato dai filtri sui server di posta, il sistema migliore è di usare un account di posta valido, fornito da un servizio noto e diffuso, vedi Yahoo, Google, MSN, ecc. Ovviamente dopo qualche giorno l’account di posta verrà bloccato e cancellato, ma intanto potrei aver inviato qualche milione di messaggi che passerebbero immuni i filtri, grazie al fatto di provenire da un server di posta “autorevole” e con un account verificato in origine, due condizioni che nello spam classico non sono mai vere.
Per evitare registrazioni automatizzate, e quindi mettere a disposizione degli spammer migliaia di indirizzi validi da sfruttare, ogni fornitore di caselle di posta gratuite si è premunito con contromisure di vario tipo, fra cui la più efficace fino ad ora sembra essere proprio il CAPTCHA.
Fino ad ora…
Ovviamente gli spammer non sono rimasti a guardare, ed immediatamente hanno dotato i propri script automatizzati di capacità OCR, ossia di poter “leggere” queste immagini.
Come in tutte le corse agli armamenti, ecco che i CAPTCHA si sono evoluti, rimanendo (più o meno) leggibili per noi umani e illeggibili da un OCR, anche se sofisticatissimo: caratteri ruotati, font diversi, distorsioni, colori a basso contrasto, e via così.
Dopo questo momentaneo scacco, gli spammer si sono ripresi ed hanno cominciato a ragionarci sopra. Ed ecco il colpo di genio: facciamo che siano proprio gli esseri umani a leggere i CAPTCHA per noi. Ed in quattro e quattr’otto ecco un nuovissimo trojan creato per l’occasione.
Il trojan in questione (ma probabilmente ne esistono parecchie varianti) viene scaricato da un altro malware su macchine già compromesse, e all’attivazione avvia una copia nascosta di Internet Explorer, su cui si lancia in esecuzione. Ovviamente occorre una connessione ad Internet attiva, ed all’avvio si presenta con l’immagine di una provocante fanciulla che invita a giocare ad una sorta di striptease-by-captcha: se riesci a leggere uno di quelli che ti presento mi tolgo un indumento.
Il bello viene adesso: CAPTCHA non è generato dal trojan, ma è rimbalzato da un server su cui è in esecuzione uno script per registrare account di e-mail che in quel momento si è visto presentare il CAPTCHA dal servizio di registrazione. Il trojan prende il CAPTCHA, lo propone all’umano, che per vedere qualche centimetro di pelle in più della fanciulla si affretta a digitare il testo corretto, il trojan prende il testo e lo invia al server, che riesce ad iscriversi nel servizio “a prova di script”, dimostrando che un umano ha effettivamente letto il CAPTCHA.
Ora il server remoto dispone di un certo numero di account di posta gratuiti e su servizi “autorevoli” da sfruttare per fare il suo sporco lavoro: sommergerci di posta spazzatura, che molto facilmente oltrepasserà i filtri antispam.
Al momento non esistono contromisure facili da applicare per vari motivi:
- i server su cui sono in esecuzione gli script sono altri computer compromessi anch’essi da malware, quindi appartenenti ad ignari utenti. Questo rende impossibile l’esclusione per indirizzo IP da parte dei servizi abusati.
- i messaggi spam provengono da account validi, e passano per il processo di autenticazione del server SMTP di origine, quindi i filtri antispam che si basano sulla corrispondenza fra dominio di origine dichiarato e dominio effettivo (ricavato dall’indirizzo IP del server SMTP di origine) marcano i messaggi come validi
- gli script che effettuano la sottoscrizione con il rimbalzo dei CAPTCHA si presentano ai server di registrazione con una stringa di
USER AGENTovviamente falsa, ma indistinguibile da quella dei browser convenzionali e diffusi, quindi non c’è modo di bloccare lo script al momento della connessione.
Rimangono solo poche strategie, tutte di limitata efficacia: limitare il numero di registrazioni per sessione o per indirizzo IP, ma questo potrebbe essere un problema per i provider che usano per i clienti indirizzi IP privati, e per uscire su Internet fanno NAT su un ristretto gruppo di indirizzi IP; limitazione del numero di messaggi e-mail su base oraria/giornaliera, cosa che è già applicata da molti provider, e che è ben conosciuta agli spammer.
La strategia migliore sarebbe di pulire i computer infetti, ma questa sappiamo essere una pura illusione.
Per quanto riguarda le strategie di prevenzione, questo tipo di malware necessita dei diritti di amministrazione per funzionare, dato che viene scaricato ed installato da un altro malware già attestato nel computer compromesso, che deve prendersi cura di antivirus e firewall per evitare intralci al suo sporco lavoro. Rimane valido quello che ho scritto nel mio libro a proposito dei diritti utente (al capitolo 4), ossia che l’uso di un account con diritti “giusti” permette di evitare la quasi totalità di questi malware.
Riferimenti
- L’articolo su The register che parla del trojan “ammazza-CAPTCHA”
- Il post sul blog di Trendmicro che spiega la struttura ed il funzionamento del malware
- La scheda del malware sul database di Trendmicro

