giovedì 27 aprile 2006

Maledetti spammer

Ora si fanno più furbi... Quanti saranno i lettori di questo blog? non lo so, una decina? Venti?
Bene ora ne ho uno in più, un software che analizza i blog, e tramite le api standard condivise da diversi blog-engine, lascia messaggi.
Un esempio? In questi giorni ho la casella di posta con una decina di messaggi in attesa di moderazione (funzione molto utile di wordpress),  che pubblicizzano pillole dimagranti o pillole blu...
Il robot-spammer che ha analizzato il mio blog ha beccato il post sulle "Pillole di saggezza del sabato", e ha inviato diversi commenti, tra cui "very good site" e "i'm agree" con un link al loro blog (ovvero il sito delle famose pilloline).

Attualmente esistono due modi per combattere lo spam: classica black list e filtri bayesiani.
Le black list sono una tecnica vecchia e collaudata, ma ha lo svantaggio di creare dei falsi negativi (ovvero messaggi non spam, catalogati come spam). Un filtro bayesiano è molto più complesso da realizzare ma è molto più efficace. L'apprendimento del filtro bayesiano è semplice: l'utente raggruppa una serie di spam e una serie di messaggi leciti e li sottopone al filtro. Questo analizza ogni parola delle e-mail - non solo il testo del messaggio ma anche gli header, il codice HTML e i JavaScript - e determina quanto frequentemente un termine appare nello spam e la sua frequenza nelle e-mail normali. Un termine che si trovi solo nello spam (per esempio "V1AGRA", con la lettera I modificata per trarre in inganno i flitri classici) ha il 100% di probabilità di essere una parola-spam, i termini "innocenti" presenti perlopiù nei messaggi leciti sono indicatori positivi, molti termini generici si troveranno equamente distribuiti tra spam e non-spam. Esaminare anche i codici è molto utile: la "parola" FF0000, ad esempio, è un forte indicatore di spam perché è il codice HTML per il colore rosso acceso.
Uno dei vantaggi principali dell'analisi bayesiana è che limita i falsi positivi, ossia le mail lecite ma catalogate come spam. Un filtro basato su un dizionario di parole proibite potrebbe bloccare uno scambio di messaggi tra due medici che parlano di Viagra, mentre un filtro bayesiano che avesse "imparato" le caratteristiche della loro posta sarebbe più cauto.
Dopo l'addestramento, un filtro bayesiano controlla un messaggio di posta verificando se al suo interno ci sono termini "colpevoli" o "innocenti" e, in base a queste rilevazioni, calcola la probabilità complessiva che sia spam. Una volta stabilita la "spammosità" di una mail il software antispam la passa al client di posta del destinatario evidenziandone il grado di pericolosità.
L'utente non deve essere passivo: se rileva dei falsi positivi o dei falsi negativi (spam catalogato come mail lecita) deve risottoporli al software di filtering perché questo possa mantenere aggiornato il suo livello di addestramento.


Ciao Piero

1 commento: