Home > Progetti > Spam
Stop Spam
Spammamia, un programma che attraverso filtri progressivi aggiunge o toglie dei punti alle email in arrivo. In caso di grave insufficienza la mail viene catalogata spam e cancellata, con sufficienza la mail richiede un'approvazione con una buona votazione la mail viene scaricata automaticamente... un pò come se una maestra delle elementari correggesse le mail in arrivo con il pennarello rosso e blu
Combattere lo SPAM
11 dicembre 2002: scritto da Claudio Santori
Ottimizzare.com è alla ricerca di un programmatore in grado di scrivere un programma con le caratteristiche descritte in questo articolo. Buona lettura
Combattere lo spam e' possibile. Solo che, invece di comuni filtri utilzzati
da programmi come Outlook Express, avremo bisogno di un sistema a punteggi
che valuterà numerose variabili per definire se una e-mail e' SPAM
oppure valida.
Cataloghiamo le e-mail in 4 MacroCategorie
- Rubrica-Ok: sono le mail ricevute da indirizzi presenti nella nostra Rubrica. Si presume che tutta (almeno la maggior parte) la corrispondenza ricevuta da questi indirizzi sia desiderata.
- NORubrica-OK: sono e-mail ricevute da indirizzi
non presenti nella nostra rubrica ma comunque desiderate: un nuovo contatto di lavoro, qualcuno che ci fa i complimenti per un articolo che abbiamo scritto o un amico che ha cambiato indirizzo...
- Rubrica-Virus: sono le e-mail indesiderate ricevute
da indirizzi presenti nella nostra rubrica, contenenti Virus o Catene di S.
Antonio.
- SPAM: sono e-mail che veicolano messaggi
commerciali non richiesti (per lo piu' siti porno - Viagra e altre
medicine miracolose) Comprenderemo in questa categoria anche le e-mail contenenti
Virus.
SI TORNA A SCUOLA
Come funziona il programma? Ogni e-mail ricevuta sarà valutata attentamente assegnando un punteggio in base ad alcuni controlli (come fosse un voto).
Se il punteggio sara' inferiore a 0 la mail sara' considerata SPAM, per tutte le altre il sistema si limiterà a depositarle nella IN BOX.
Che vantaggio hanno gli utenti Italiani rispetto agli USA?
La maggior parte dello SPAM che gira in rete e' in lingua Inglese ed e' quindi
semplice filtrare questi messaggi con l'uso di opportune keywords.
Le variabili da considerare
Per valutare la posta ci serviremo degli aspetti comuni a tutti i messaggi
di posta:
LA RUBRICA: Una prima catalogazione divide le e-mail in
due grandi blocchi: inviate da persone contenute nella rubrica del destinatario
e inviate da indirizzi non presenti in rubrica.
IL FORMATO: lo SPAM puo' arrivare in formato testo o formato
HTML (contenente spesso immagini Hardcore che si caricano automaticamente
nell'anteprima del messaggio)
ALLEGATI: i messaggi possono contenere file allegati
OGGETTO: molto spesso lo spam puo' essere individuato dall'oggetto
attraverso le keyword utilizzate o il prefisso adv che individua automaticamente
che la mail contiene un messaggio pubblicitario (advertising)
IL MESSAGGIO: il messaggio contiene sempre un link da cliccare
e delle keywords (le piu' comuni Viagra Sex Nigeria)
INDIRIZZO DEL MITTENTE: possiamo impostare a priori che
non desideriamo ricevere posta inviata da determinati gruppi di mittenti
Cosa fa il nostro sistema?
Invece di applicare i comuni filtri il nostro programma provvede a dare un
voto alla posta. Vediamo subito come funziona un filtro e come funziona il
nostro sistema
Un filtro applica delle regole a tutti i messaggi in arrivo tipo:
Se "Oggetto" contiene "Sex" allora Elimina
Se "Messaggio Mail" contiene "Viagra allora Elimina
Se "Mittente" presente in Rubrica allora Scarica Email
Se "Mittente" = "Suocera" allora Elimina
Il Nostro sistema:
Se "Oggetto" contiene "Sex" allora -20 punti
Se "Messaggio Mail" contiene "Viagra" allora -20 punti
Se "Mittente" presente in Rubrica allora +100 punti
Se "Mittente" = "Suocera" allora Elimina
Il nostro sistema permette di applicare regole precise ad eventi precisi
ma, ed ecco la sua versatilità, permettere di valutare ogni singola
e-mail in base ad una moltitudine di aspetti che, nel complesso, ci diranno
se la mail e' SPAM oppure no. Chiaro che la presenza della parola Viagra all'interno
del messaggio deve avere un peso diverso se il mittente e' un mio amico (magari
una barzelletta) o una ditta americana
RUBRICA - un punto di forza
Poter scegliere chi tenere in rubrica e chi lasciarne fuori
rappresenta un bel vantaggio: posso far sapere al mio computer quali sono
i contatti sicuramente interessanti. Lo svantaggio e' che
purtroppo non sappiamo se tutti i contatti non presenti in rubrica sono SPAM
(alcuni di loro, in effetti, non lo sono, come un vecchio zio Americano che
ti contatta dopo 40 anni solo per dire ciao e magari invitarti in California).
Ad ogni modo il nostro sistema sa che se il mittente e' presente
in rubrica e applicherà un coefficiente diverso a tutti gli altri controlli
(vedi esempio precedente sul Vagra inviato come testo da un Amico o da una
sconosciuta società americana)
ESEMPIO
Se "Mittente in Rubrica" = Si allora non controllare keyword ma controlla
Allegati
Se "Mittente in Rubrica" = Si allora applico un diverso peso per keywords commerciali
ma applica penalità per keywords a sfondo pornografico
Un bel vantaggio per chi ha contatti che puo' gestire attraverso altri canali
(telefono, ufficio etc) ed inserire preventivamente (e manualmente) gli indirizzi
in rubrica. Con questo filtro dobbiamo preoccuparci solo delle eventuali mail
contenenti virus.
Gli utenti presenti nella rubrica possono inviare e-mail contenenti parole
che piu' avanti bloccheremo con altri Filtri (come Viagra) senza che il sistema
le blocchi. Il mio collega puo' inviarmi tranquillamente una barzelletta sul
Viagra, ma il sistema blocchera' tutte le proposte commerciali provenienti
da sconosciuti riguardo al Viagra.
Mittenti non in rubrica - inizia il gioco
Il nostro sistema memorizzerà il numero di mail pervenute evidenziando:
email eliminate direttamente, email che hanno richiesto conferma per eliminazione,
email che sono state eliminate manualmente dall'utente, email NO SPAM. Lo
scopo del "gioco" e' minimizzare il numero di mail eliminate manualmente
e che hanno richiesto conferma e massimizzare il numero di mail eliminate
direttamente. Ovviamente...nel caso fosse possibile...minimizzare anche il
numero di email eliminate che invece non dovevanoe essere eliminate.
Spariamo allo SPAM - step di valutazione
Il nostro sistema analizzera' tutti gli aspetti di ogni singola mail valutandli
in base alle preferenze dell'utente. Chiaro che la ricezione di email provenienti
da mittenti tipo ***@aol.com avra' un peso diverso per un americano o un italiano.
Per me ricevere una mail da ***@aol.com sara' sicuramente spam, mentre per
un qualunque utente americano e' la cosa piu' normale del mondo.
STEP DI VALUTAZIONE
- Mittente:
- presente in rubrica | tipo di indirizzo
- destinatario: il mittente e' sconosciuto e ha inviato la mail a piu'
utenti
- invio multiplo: la mail e' stata inviata, identica, due o piu' volte
- l'indirizzo o il nome del mittente contiene parole filtrate nello
step 2
- Keywords: controllo messaggio e oggetto
- keywords per termini legati alla pornografia [ alta' penalità
]
- keywords per termini commerciali e di uso comune (Credit card, Kenia,
Credit Card, Webcam) [ bassa penalità ]
- keywords periodiche: in alcuni periodi alcune parole avranno un peso
diverso in base ad ondate periodiche di SPAM settoriale [ media penalità
]
- Allegati: valutazione degli allegati in base al formato
ed in relazione alla presenza o meno del mittente in rubrica
- Formato: in testo o html?
MITTENTE
Anche l'indirizzo del mittente potrebbe nascondere indirizzi importanti per
considerarla SPAM
- potrebbe contenere una delle keywords precedentemente elencate (es reale:
cids@eroticmailers.com :: bustopher2xxxmeb13mxy@aol.com
:: hila_nocostxxx@playful.com
- indirizzo scorretto: ddmrkst.com (manca una parte)
- indirizzi improbabili: penneyfam@ar.com.au <penneyfam@ar.com.au>
::
KEYWORDS
I nostri filtri faranno un controllo delle parole contenute nell'oggetto
della mail e nel messaggio cancellando automaticamente tutte le e-mail contenenti
parole chiave riconducibili a SPAM. Le piu' comuni sono:
- COMMERCIAL: Really Works, Read This Email, Change Your
Life, adv, adv:, remove@, remove, Kenia, Re: Phentermine (Weight-Loss),
Viagra (Sexual)Celebrex (Pain-Relief) Valtrex (Treatement for Herpes) Meridia
(Weight-Loss) Xenical (Weight-Loss) Zyban (Stop Smoking) , Remove,
- SEX: viagra, penis, women, mature, teen, galore, sex,
gay, experienced, sexy, babe, amateurr, WIVES, GIRLFRIENDS, GIRL-NEXT-DOOR,
and REAL COLLEGE WEBCAM GIRLS(fuck, anal, whores, cum, sperm, pussy), Horny,
Horney, naked, erotic, xxx
Se una di queste parole o frasi viene scritta nell'oggetto o nel messaggio
la mail sara' cancellata senza essere scaricata nel computer. Ecco che una
buona fetta di SPAM e' stata cancellata e non sara' mai scaricata.
Oggetto
Oltre alle Keywords l'oggetto puo' dirci qualcosa in piu'. Intanto se nell'oggetto
compare la sigla adv (advertising) il messaggio e' gia' dichiarato
come pubblicitario. In piu', se chi non e' in rubrica mi invia una e-mail
con oggetto "Re: ..." il sistema dovrebbe insospettirsi:
se non ho mai avuto rapporti con questa persona come fa a rispondermi?
Allegati
Se la mail arriva da un mittente sconosciuto con un allegato (magari src,
bat o exe) i filtri possono automaticamente eliminarla senza rischi
Formato
Se la mail arriva in formato HTML con numerosi collegamenti ad immagini esterne....eliminare
Migliorare il Sistema - Valutazione delle Email con un punteggio
Il nostro sistema di Filtri e Regole invece di valutare semplicemente se la
mail e' idonea o meno applicando le regole in modo indipendente puo' sottoporla
ad una serie di controlli sequenziali che applicheranno ogni volta un punteggio,
cumulabile, all'e-mail. Oltre un certo punteggio la mail viene considerata
SPAM e cestinata.
Si tratta di impostare dei valori numerici da applicare alle varie regole
e il valore di tolleranza.
Le email con punteggi inferiori a 100 sono scaricate
Le email con punteggi superiori a 100 vengono eliminate
Email 1 |
Punteggio |
Mittente: claudio@ottimizzare.com |
-100 |
Oggetto: Re: sito web |
0 |
Presente parola webcam |
0 |
Presente parola babe |
+ 15 |
Allegato: ani.exe |
+ 15 |
TOTALE - OK |
- 70 |
Email 2 |
Punteggio |
Mittente: freesite@internet.com |
+ 25 |
Oggetto: Re: sito web |
+ 25 |
Presente parola webcam |
+ 25 |
Presente parola babe |
+ 75 |
Allegato: ani.exe |
+ 50 |
TOTALE - ELIMINATA |
+ 175 |
La prima mail supera i controlli e viene scaricata nella Posta in Arrivo
mentre la seconda viene eliminata perche' considerata SPAM. Nel primo caso
alla parola webcam presente nel testo della mail non e' stato dato peso mentre
nel secondo la mail ha "guadagnato" 25 punti. Questo perche' se
uno sconosciuto ci parla di webcam forse ci vuol vendere qualcosa o ci sta
parlando di sesso. Vediamo inoltre come la combinazione webcam e babe produca
nella seconda mail 90 punti e nella prima solo 15 proprio in virtu' del fatto
che il mittente della prima email e' conosciuto quello della seconda no. Stessa
cosa per l'allegato al quale viene dato un peso diverso.
Ovviamente si trattera' di fare uno studio su casi reali di spamming per
calcolare valori numerici che abbiano senso e che funzionino realmente per
filtrare la posta indesiderata.
Comunque il problema e' solo di dare un valore numerico a questi parametri,
il resto del sistema, la teoria, c'e' gia'.
- Applicare il filtro anche a Mittenti in Rubrica o solo a Mittenti Sconosciuti?
- Elenco Keywords livello 1 (meno gravi): webcam, remove, college, school,
diplome, university,
- Elenco Keywords livello 2 (gravi): sex, babe, mature, penis, viagra....
- Peso numero Keywords 1 e 2: impostare un valore
- Peso numerico controllo Mittente: non in rubrica, indirizzo errato, indirizzo
con keywords
- nella mail c'e' un link esterno e mittente sconosciuto: se nel link ci
sono keywords primo e secondo livello un punteggio altrimenti altro punteggio
- Peso diverse estensioni file allegati
- Ulteriore peso per Mail inviata a piu' destinatari (magari non presenti
in rubrica e quindi presumibilmente sconosciuti al destinatario)
Il vantaggio di un sistema con pesi? Se lo SPAM si evolve e usa nuovi termini
possiamo personalizzare le liste di keywords o aggiungere nuovi pesi per
nuovi controlli. Il tutto in modo semplice e intuitivo.