Filtri Antispam


E' un meccanismo di stima della probabilità degli eventi a costituire il cuore di un sistema di filtraggio. Vediamo in poche e semplici parole come funziona un filtro antispam...

Tutti i sistemi antispam più efficaci si basano sulla teoria bayesiana. Questo ha permesso di mettere a punto un metodo per stabilire se la posta elettronica è spazzatura o meno in funzione della probabilità che il suo contenuto sia analogo a quello di altri messaggi similari. Come dire: se da un mese tutte le mattine faccio colazione con due caffé, è probabile che domani farò colazione con due caffé.
Il nostro cervello contiene un antispam naturale. Se apriamo dieci messaggi, a capire quali sono quelli buoni ci mettiamo mezzo secondo. Infatti siamo molto bravi, come umani, a cogliere pattern, schemi che si ripetono. Se dessimo un numero sufficiente di messaggi a un software, anche lui potrebbe arrivare a intercettare il 99,5% dello spam.

:: La formula magica
Un filtro antispam considera tutte le mail che legge e crea un elenco di elementi che contraddistinguono la posta spazzatura, dalle parole o combinazioni di parole ai tag html, ai colori usati, al codice html, eccetera. Poi usa queste informazioni per valutare la posta in arrivo. In generale, la probabilità che un messaggio sia spam per via delle parole che contiene è uguale alla probabilità di trovare le stesse parole in altri messaggi, moltiplicata per la probabilità che una qualunque mail sia spam, diviso la probabilità che le parole in questione siano in un qualsiasi messaggio.
Per dirla da matematici:

P("parole spam") * P("spam")
P("spam in mail") = ------------------------------
P("parole")

Ci sono parole tipiche dello spam che difficilmente si trovano nella posta normale, per fare un esempio Viagra (o viagr@, v1@gr@, \/1@Gr/\ e compagnia) e viceversa. La gran parte della posta che contiene la parola Viagra verrà etichettata come spam. Se però l'amico Ugo ci scrive parlando di Viagra, la posta verrà trattata normalmente, perché lo spam che parla di Viagra non porta la firma di Ugo e questo aiuta il software di filtraggio.
E' importante ricordare che il margine di errore dei filtri bayesiani, pur ridottissimo, non è zero e si esprime in due sensi. C'è spam che passa come posta normale e posta normale che passa come spam. Per questo motivo un filtraggio troppo severo è una cosa pericolosa: rischiamo di perdere posta dei nostri amici. Molto meglio sopportare quindi la vista di uno spam di tanto in tanto.

Il filtraggio antispam può avvenire sia a livello client, sia a livello server. In questo secondo caso bisogna stare particolarmente attenti a non dare per spam posta che invece è vera!
Una soluzione open source a livello client è SpamBayes, per Windows, Linux/Unix e Mac OS X. E' tutto scritto in Python ed è facile da esaminare e migliorare se ne siamo capaci.
A livello server, sempre open source, esiste per esempio MailWasher, per Windows, Linux e Solaris, o anche SpamAssassin per tutto il mondo Unix, compresi i sistemi che ospitano le soluzioni Linux e Mac OS X.


Articolo di P. Greco, fonte HackerJournal #101.
Secondo le disposizioni di HJ, questo articolo è open source per l'uso sul web, ma protetto da copyright per la stampa.
Trascritto in forma digitale da Micheletto Davide ( http://micke84.altervista.org ).
Per maggiori informazioni, dubbi o chiarimenti, potete scrivere a pgreco[at]hackerjournal[dot]it


Articolo tratto da: mIcKeSource.com - http://micke84.altervista.org/
URL di riferimento: http://micke84.altervista.org/index.php?mod=read&id=1150553788