Laurea Triennale in Ingegneria Informatica Anno Accademico 2004 - 2005 FILTRAGGIO BAYESIANO DEI CONTENUTI E CLASSIFICAZIONE STATISTICA DEL LINGUAGGIO CONTRO LO SPAM Relatore: Prof. Giacomo Piscitelli Co-relatore: Ing. Stefano Coppi Tesi di laurea di Michelangelo Rinelli 1 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Obiettivi Progettazione e sviluppo di un filtro antispam per la posta elettronica 1. Analisi delle diverse tipologie di filtri per posta elettronica 2. Studio delle tecniche di filtraggio Bayesiano dello spam 3. Sviluppo di un’applicazione con funzioni di filtraggio antispam (yABC) 4. Analisi delle tecniche di attacco ai filtri statistici e loro prevenzione 2 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Cosa è lo spam? Invio di grandi quantità di messaggi elettronici non richiesti (generalmente commerciali) Wikipedia Il termine deriva dal nome di un tipo di carne in scatola Anche chiamato: • UBE • UCE • Junk Mail 3 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Cronistoria dello spam • 1978 – “DEC Spam” • 1995 – Siegel, Slaton (“Spam King”) Spamware • 1996 – Primi contromisure degli ISP Filtri euristici • 2005 – Lo spam costituisce oltre l’80% del traffico email globale 4 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Problemi causati dallo spam • Per i destinatari: Tempo, banda, spazio su disco, software antispam, protezione minori • Per gli ISP / Backbone Carrier: Tempo, banda, spazio su disco, software antispam, protezione degli utenti, gestione dei reclami, utenti persi, servizi non pagati dagli spammers • Per l’infrastruttura email Messaggi ritardati o bloccati, falsi positivi Costo complessivo stimato per il 2005: 13 mld euro 5 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari • • • • • • • 6 Le prime tecniche antispam Blacklist Whitelist Filtraggio Euristico Challenge-Response Throttling Offuscamento indirizzi SMTP Autenticato Propagazione, manutenzione Sender spoofing Manutenzione, Regole standard Lavoro mittente, Ritardi Riduce solo i costi per la banda [difficilmente] riconoscibile Open Relay Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Filtri Bayesiani Determinano le caratteristiche linguistiche e strutturali dei messaggi e determinano un valore di probabilità combinando tra loro i dati conosciuti per le caratteristiche estratte Vantaggi dei filtri Bayesiani • Alta accuratezza ( > 99% ) • Adattabilità • Manutenzione minima 7 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Incoming Mail Schema di funzionamento Tokenizer Decision Matrix Disposition (Bayesian Combination) Training Corpus Dataset Spam 8 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Legitimate Michelangelo Rinelli Sistemi Informativi yABC DEE - Politecnico di Bari yet Another Bayesian Classifier • Sviluppato con Java/MySQL • Interfaccia interattiva a linea di comando • Configurabile in ogni fase del processo POP3 MAILBOX tokenization combinazione statistica estrazione valori dataset training • Autotraining Users 9 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam yABC Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Tokenizer Estrapola dal messaggio delle caratteristiche elementari (token) tokenization Mail Tokens yABC fa uso di tecniche di tokenizzazione avanzate: • • • • • 10 Ottimizzazione URL/Header Decodifica delle mail offuscate Degenerazione nGrams Riassemblaggio dei token Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi Dataset DEE - Politecnico di Bari Memoria storica del filtro Aggiornamento dei contatori mediante l’operazione di training Valori dei token per la matrice di decisione Graham, Robinson, Bayes Dataset • Contatori occorrenze singoli token (spam, ham) • Contatori mail usate per il training (spam, ham) 11 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi Decision Matrix DEE - Politecnico di Bari Sono combinati solo i token più significativi: 0,0748 0,9244 0,9244 0,9162 0,0934 0,0934 0,0934 0,9057 0,8917 0,8720 0,1497 0,1505 0,8425 0,8425 0,4252 0,4244 0,4244 0,4162 0,4066 0,4066 0,4066 0,4057 0,3917 0,3720 0,3503 0,3495 0,3425 0,3425 re header*Microsoft header*mxs1 identd html adv tizioandcaio device Microsoft header*Wed for been header*Adv header*com Matrice di decisione Metodi implementati da yABC • • • • 12 Graham (Combinazione Bayesiana) Burton (Bayesiano modificato) Fisher-Robinson (chi-quadro inverso) Robinson (media geometrica) Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi Disposizione DEE - Politecnico di Bari Il risultato della combinazione statistica è un valore di probabilità compreso tra 0 e 1 0 1 HAM SPAM spamacity In base alla disposizione ottenuta yABC può intraprendere varie azioni: • Bouncing • Tagging • Autotraining • Cancellazione 13 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Training È l’azione con cui si provvede ad aggiornare l’archivio storico del filtro Dataset costruito “From scratch” o a partire da un corpus Modalità di training • TEFT (train everything) • TOE (train on error) • TUM (train untill mature) • TUNE (train untill no error) 14 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari I trucchi degli spammers BAYESIAN FILTER Tokenizer • Offuscamentocodifica • Text-Splitting • Testo simbolico • Ascii Spam 15 Dataset • Mailing Lists • Bayesian Poisoning • Empty Probes Decision Matrix • Spam di immagini • Stringhe casuali • Word salad Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari yABC: Accuratezza Sono stati effettuati due test con diverse configurazioni: TEST 1 opzioni di base training 1500 mail test: 1602 mail Accuratezza: 99.32% 5.6 errori per 1000 messaggi 16 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari yABC: Accuratezza TEST 2 opzioni avanzate training 1500 mail test: 1768 mail Accuratezza: 99.83% 1.86 errori per 1000 messaggi 17 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari yABC: Adattività Velocità di adattamento training 1500 mail test: 912 mail (gruppi da 200) Gruppo 1 Gruppo 2 Gruppo 3 Gruppo 4 Gruppo 5 18 93% 97,5% 96,5% 99% (100%) Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli Sistemi Informativi DEE - Politecnico di Bari Conclusioni e sviluppi futuri La classificazione del linguaggio è efficace ma può essere ulteriormente migliorata: • Metodi avanzati di tokenizzazione (Sparse Binary Polinomial Hashing, Markovian Discrimination) • Riduzione del “rumore” yABC necessita di diverse migliorie per un utilizzo in produzione: • Realizzazione di una GUI • Architettura POP3-Proxy • Purge del database 19 Filtraggio Bayesiano dei contenuti e classificazione statistica del linguaggio contro lo spam Michelangelo Rinelli