Chi di noi non è infestato dallo Spam ? Ognuno pone in essere tutti gli accorgimenti possibili per evitare di vedere la propria casella email soffocata da miliardi di email spazzatura: dagli accorgimenti di buon senso (non postare in chiaro il proprio indirizzo email nei forum o nei newsgroup, non rispondere alle email spammatorie ecc) agli accorgimenti tecnici come ad esempio l’adozione di filtri antispam. Questi ultimi si dividono in due categorie: i filtri offerti dal proprio client di posta se disponibili (Thunderbird è ottimo da questo punto di vista) oppure filtri di terze parti come ad esempio Mailwasher. In ogni caso gli utenti finali devono sempre ragionare a livello di desktop ovvero possono eliminare lo spam senza leggerlo ma in ogni caso la casella postale è bombardata ugualmente.

I responsabili dei server di posta elettronica, invece,  hanno molte gatte da pelare: generalmente in ambito aziendale è piuttosto improbabile un “fai-da-te” nella lotta allo spam, specialmente quando ci si ritrova un “capo” che telefona tutto il giorno per chiedere (urlando) : “non voglio più ricevere queste email sul viagra o sul cialis o sugli allunga pisello”. Dopo qualche momento di facile ilarità ( “ma dove cavolo avrà postato il suo indirizzo email visto che io, che ci sto attento, ne ricevo pochissime ?” ) cominciano i grattacapi: quale soluzione per impedire al mio server di posta di diventare il ricettacolo di tutto lo SPAM possibile ?

Esistono moltissime soluzioni là fuori tutte più o meno equivalenti sul piano dell’efficacia: una breve ricerca sul caro Google con le parole chiave anti spam server vi offrirà oltre 61milioni di occorrenze più diverse decine di collegamenti sponsorizzati. Personalmente ne ho provati diversi e tutti, ad onore del vero, fanno ciò per cui sono progettati e pubblicizzati. Alcuni lavorano solo con determinati mail server, altri funzionano solo su *nix, alcuni sono venduti con licenza commerciale altri sono concessi sotto licenza Open (varie).

Quello che però, nella stragrande maggioranza dei casi, accomuna le diverse soluzioni è, a mio modesto modo di vedere le cose, una eccessiva focalizzazione del filtro sui dizionari Bayesiani: in parole molto povere … sulle parole incontrate nel testo delle email. Se, infatti, da un lato l’efficacia dei filtri bayesiani è molto alta, dall’altro si devono annoverare diversi “contro” di questa soluzione. Infatti:

  •  il tempo di “learning” è generalmente abbastanza lungo: per quei sofware che si installano con database vuoti è necessario istruire il programma su cosa per noi sia SPAM e cosa non lo sia
  • se invece il software dispone, nella sua installazione standard, di database già popolati state pur sicuri che verrà filtrata molta parte dei messaggi spammatori in inglese mentre per l’italiano … be’ ricadete nel punto precedente
  • per poter applicare validamente un filtro bayesiano è necessario che il software antispam “legga” l’intero contenuto del messaggio (o almeno una parte rilevante) per poter decidere se contiene parole chiave spammatorie o meno. Questa condizione implica che il messaggio venga comunque ricevuto dal server (anche se successivamente non consegnato al destinatario)  con la inevitabile conseguenza che la banda di ricezione è stata comunque impegnata.

Questi fattori, uniti ad altri spesso caratteristici del software adottato, mi hanno sempre portato a non essere pienamente soddisfatto.

Alla fine, però, una valida soluzione sono riuscito a trovarla: si chiama ASSP lo potete trovare a questa pagina i SourceForge. ASSP, il cui acronimo sta per AntiSpam Smtp Proxy, è l’uovo di colombo nella lotta allo spam:

  • è indipendendente dal sistema operativo: è scritto in Perl, un linguaggio interpretato, e funziona tanto su server Windows che su server *Nix
  • è indipendente dal server di posta adottato: funziona con qualsiasi tipo di server perchè filtra le comunicazioni sulla porta 25. Non è necessario alcun plugin o installazione specifica per il server di posta.
  • implementa (forse) il maggior numero di controlli antispam che abbia mai visto per soluzioni analoghe: graylisting (forse la più importante), controlli RBL, controlli SPF, controlli su HELO/EHLO malformati, Penalty Box, URIBL, controllo dei tipi di allegati, convalida dei recipient, auto-whitelist, regole basate su Regular Expressions e ovviamente … controlli Bayesiani, il tutto corredato dalla possibilità di gestire innumerevoli eccezioni come white-list, black-list e red-list.
  • funziona come servizio su Windows o come demone su *nix
  • dispone di un’interfaccia web per la configurazione
  • è Open Source

Solo un dettaglio mi porta a dire che non sia ancora perfetto anche se ci è molto vicino: la convalida dei destinatari (ed il conseguente controllo anti harvesting) è possibile solo da un elenco di indirizzi da mantenere a manina, oppure da una query su server LDAP oppure, ancora, da una query su Active Directory. E se il mio server di posta non usa nè LDAP nè AD ? Che faccio ? Mi mantenere a manina l’elenco dei valid-recipients oppure implementare degli script periodici che lo aggiornino. Non molto efficiente.

L’optimum sarebbe la convalida dei recipient mediante un comando VRFY sul server di posta protetto da ASSP ed il mantenimento delle risposte in una cache configurabile.

Speriamo che il team di ASSP prenda in esame questa ipotesi.