Come funziona il filtro Bayesiano anti-spam
Il filtraggio Bayesiano è basato sul principio che molti eventi sono dipendenti tra loro e la probabilità che un evento avvenga in futuro può essere dedotta dal verificarsi di quello stesso evento in precedenza. (Ulteriori informazioni sulle basi matematiche del filtraggio Bayesiano sono disponibili ai seguenti link (in inglese): Bayesian Parameter Estimation e An Introduction to Bayesian Networks and their Contemporary Applications)
(http://www-ccrma.stanford.edu/~jos/bayes/Bayesian_Parameter_Estimation.html
e http://www.niedermayer.ca/papers/bayesian/bayes.html .)
Questo stesso principio può essere utilizzato per classificare lo spam. Qualora sussistano parti di testo presenti spesso nello spam, ma non nella posta legittima, è ragionevole presumere che una tale email costituisca probabilmente dello spam.
Creazione di un database di parole ad hoc per il filtro Bayesiano.
Prima di poter filtrare la posta con questo metodo, l'utente deve generare un database di termini e simboli (quali il simbolo $, gli indirizzi e domini IP, ecc.) raccolti da campioni di posta spam e posta valida (denominata `ham').
Figura 1 - Creazione di un database di temini per il filtro
A ciascun termine o simbolo viene quindi assegnato un valore di probabilità; tale valore è calcolato tenendo conto della frequenza con cui un termine compare nello spam e confrontandolo con il numero di volte in cui è presente in un'email legittima (ham). Ciò si effettua analizzando la posta in uscita degli utenti e lo spam conosciuto: Tutti i termini e i simboli comuni ad entrambi vengono esaminati per generare la probabilità che un determinato termine sia spam.
Tale probabilità del termine è calcolata come segue: Ad esempio, se il termine "ipoteca" è presente in 400 messaggi di spam su 3.000 e in 5 email legittime su 300, allora il valore di probabilità dello spam sarà pari a 0,8889 (cioè, [400/3000] diviso per [5/300+400/3000]).
Creazione del database ham (adattato alle esigenze dell'azienda)
E' importante notare che l'analisi della posta ham si effettua sulla posta elettronica dell'azienda ed è pertanto adattata alle esigenze dell'azienda. Per esempio, un'istituto finanziario può utilizzare il termine "mutuo" abbastanza spesso e quindi, in questo caso, l'utilizzo di una serie di regole anti-spam generica può comportare molti falsi positivi. D'altronde, il filtro Bayesiano, se adattato all'azienda mediante un periodo iniziale di addestramento, prende nota della posta valida in uscita (riconosce che la parola "mutuo" è usata frequentemente in messaggi legittimi) e quindi offre una migliore percentuale di individuazione dello spam e una più bassa probabilità di incorrere in falsi positivi.
Si noti che alcuni software anti-spam dotati di capacità Bayesiane di base, come il filtro anti-spam di Outlook o l'Internet Message Filter di Exchange Server, non creano un file di dati ham adattato alle esigenze dell'azienda, ma consegnano con l'installazione un normale file di dati ham. Benché tale metodo non richieda un periodo iniziale di apprendimento, presenta 2 grossi difetti:
- Il file di dati ham è reperibile pubblicamente e può perciò essere piratato da spammer professionisti e quindi raggirato. Se il file di dati ham è solo specifico dell'azienda, allora piratare il file di dati ham risulta inutile. Ad esempio, vi sono hack disponibili a superare i filtri spam di Microsoft Outlook 2003 o Exchange Server. Per ulteriori informazioni, si legga: Microsoft Outlook 2003 Spam Filter: Under the hood
- In secondo luogo il file di dati ham è generico, perciò, se non adattato alle esigenze dell'azienda, non può essere altrettanto efficace e ciò comporta una percentuale di falsi positivi sensibilmente più elevata.
Creazione del database spam
Oltre alla posta ham (legittima), il filtro Bayesiano si affida anche ad un file di dati spam. Questo file di dati spam deve contenere un notevole campione di spam noto ed essere costantemente aggiornato con lo spam più recente tramite il software anti-spam. Questo assicura che il filtro Bayesiano sia a conoscenza dei trucchi di spam più recenti, producendo un'elevata percentuale di individuazione dello spam (nota: tale livello si raggiunge al termine dell'iniziale periodo di apprendimento di due settimane richiesto).
Come viene eseguito effettivamente il filtraggio
Una volta creati i database ham e spam, è possibile calcolare i valori di probabilità dei termini ed il filtro sarà pronto per l'uso.
Quando arriva una nuova email, questa viene scomposta in termini e vengono scelti i termini più importanti, ad esempio, quelli più significativi per identificare se la posta costituisca uno spam oppure no. Da tali termini, il filtro Bayesiano calcola la probabilità che il nuovo messaggio possa essere o meno spam. Se la probabilità è maggiore di un certo valore di soglia, per esempio 0,9, allora l'email è classificata come spam.
L'approccio allo spam di tipo Bayesiano risulta estremamente efficace: in un articolo della BBC del Maggio 2003 si mette in evidenza che con tale approccio la percentuale d'individuazione dello spam può raggiungere oltre il 99,7% e con un numero molto basso di falsi positivi!