Spamassassin è un sotfware che viene solitamente utilizzato dagli amministratori di mail server per filtrare/taggare le mail in transito utilizzando algoritmi per il calcolo della probabilità.
Scrivere regole semplici per assegnare un punteggio in base al classico pattern matching è semplicissimo.
http://wiki.apache.org/spamassassin/WritingRules
Posizionatevi su /etc/spamassassin (o la dir contenente il file local.cf ) e create un file di testo vuoto chiamato XX_vostronome.cf ad esempio 15_texilee.cf
Iniziamo inserendo qualche regola per matchare i più comuni oggetti del phishing bancoposta
header LOCAL_ET_PHISHINGAB ALL =~ /Nuovi servizi online di Poste.it/i score LOCAL_ET_PHISHINGAB 20.1
header LOCAL_ET_PHISHINGAC ALL =~ /Comunicazione nr. [0-9]{1,} del [0-9]{2} [a-zA-Z]{1,} [0-9]{4}/i score LOCAL_ET_PHISHINGAC 20.1
header LOCAL_ET_PHISHINGAD ALL =~ /Comunicazione Nr_0X[ABCDEF0-9]{2}.0X[ABCDEF0-9]{2}.0X[ABCDEF0-9]{2}.0X[ABCDEF0-9]{2} del [0-9]{2} [a-zA-Z]{1,} [0-9]{4} - Leggere con attenzione/i score LOCAL_ET_PHISHINGAD 20.1
La /i a fine regola significa che la ricerca verrà effettuata in modalità case insensitive (cioè maiuscole o minunoscole non fanno differenza) , Nr_0X[ABCDEF0-9]{2} matchare una stringa che inizia con i caratteri “nr_0x” ed è seguita da due caratteri compresi nell’elenco fra le parentesi quadre (in questo caso facenti parte dell’insieme dei caratteri utilizzati per la rappresentazione esadecimale).
Prossimo esempio prende in considerazioen il caso in cui si vuole assegnare un punteggio positivo ai messaggi contenenti una stringa generica costante (stick) preceduta da x possibili stringhe che determinano univocamente il contesto spam
header LOCAL_ET_SUBJECTA ALL =~ /(Very-very magic|Joy|Long|Super|Enjoy with you hard).*stick/
In questo caso bloccare “stick” sarebbe stato un po’ troppo restrittivo, meglio creare regexp mirate.
Se lo spammer utilizza algoritmi per la generazione delle email ad esempio
casino online
cassino oonline
ccasino onliine
potete raggirarlo facilmente con una regexp del tipo
/(c.?a.?s.?i.?n.?o.*o.?n.?l.?i.?n.?e)/i
Prima del relaod del vostro nuovo ruleset controllate che sia sintatticamente corretto il vostro nuovo file .cf con un
# spamassassin -D --lint