come scrivere regole spamassassin facilmente

18/12/2007 by - Spamassassin

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



3 risposte

  1. ciao!
    grazie per il bellissimo post :o)
    solo una domanda: funziona solo con SA 3.x o va bene anche con la 2.6?

    grazie
    Rob

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.