Ha avuto la luce nell' aprile del 2001 e da allora ha continuato a evolversi e a tenersi aggiornato ai nuovi trend degli spammer per non perdere in efficacia.
L' approccio di SpamAssassin è molto diverso da quello degli altri filtri e risulta essere molto flessibile e adattabile. Esso è un filtro basato su punteggi: dopo aver applicato tutte le sue regole ad un messaggio in arrivo, determina un punteggio che (auspicabilmente) rappresenta la probabilità che tale messaggio sia spam. SpamAssassin contiene centinaia di regole, in diverse categorie: header, body, body structure e via dicendo. Ad ogni regola è associato un punteggio, che può essere positivo o negativo, e il punteggio ottenuto dal messaggio è dato dalla somma di tutti i punteggi delle regole che vengono usate. Valori positivi sono indice di spammosità; valori negativi invece indicano legittimità del messaggio email.
SpamAssassin nel suo framework basato su punteggi, implementa nient' altro che una vastissima ricerca euristica. In aggiunta a ciò può effettuare, se specificato, anche altri tipi di filtraggio esterni: i filtri basati su whitelist, su blacklist anche distribuite (come Razor) o recentemente classificazione statistica con algoritmo bayesiano (cfr. Sezione 2.8).
Fra le sue caratteristiche più evolute vi è la possibilità di riconoscere trucchi usati dagli spammer per nascondere i loro messaggi, come codificare il testo dei messaggi in base64 o codice javascript.
Gli utenti hanno la possibilità di ridefinire il peso delle regole, definirne di nuove, cosí come il punteggio (threshold) oltre il quale un messaggio viene considerato spam.
Secondo gli autori di SpamAssassin:
In its most recent test, SpamAssassin differentiated between spam and non-spam mail correctly in 99.94% of cases. Since then, it' s just been getting better and better!Nonostante queste dichiarazioni, in realtà le performance (secondo quanto riportato da [14]) evidenziano un circa 0.3% di falsi positivi e un quasi 20% di falsi negativi (nei testi non sono stati usati sistemi di filtraggio esterni come le blacklist alla Razor).
Nonostante tutto fra gli indubbi vantaggi di SpamAssassin vi è la sua maggiore velocità di esecuzione rispetto a Razor/Pyzor, non dovendosi collegare per forza a database distribuiti su Internet; risulta comunque più lento dei metodi di filtraggio bayesiani (Sezione 2.8).
Inoltre SpamAssassin non ha nulla a che fare con la gestione dello scaricamento e la gestione dei messaggi di posta elettronica, poichè si pone semplicemente come uno strato intermedio fra lo scaricamento di tali messaggi da un server di posta e la sua collocazione nella mailbox dell' utente. Infatti, ricevendo come input un singolo messaggio email, dopo aver applicato le sue regole euristiche (e eventuali altri metodi addizionali come esposto precedentemente), restituisce in output il messaggio originario con l' aggiunta di un header X-Spam-Status2.1 il cui valore indica se il messaggio è stato valutato come spam oppure no. In seguito il messaggio cosí modificato può essere realmente scartato, ad esempio da un Mail Delivery Agent come Procmail. L' abbinamento SpamAssassin-Procmail, secondo gli autori di SpamAssassin stesso, sarebbe usato da circa 30,000 sistemi Unix 2.2. Infatti può essere usato sia a livello di singolo utente che a livello di sistema.
SpamAssassin è scritto in Perl e rilasciato sotto la Perl Artistic License. Una versione commerciale per MS Windows è disponibile presso la Deersoft [25].
Alessio Pace 2004-03-26