Combattere lo SPAM

L’aumento enorme dello Spam è purtroppo una tendenza iniziata già da qualche anno ed in continua espansione, per difendersi c’è abbondanza di ottimo ed efficace software Open Source che, per essere usato al meglio, richiede comunque la conoscenza del fenomeno.

Indirizzi email collezionati dagli spammers

Il metodo più utilizzato per collezionare grandi quantità di indirizzi email è tramite l’utilizzo di virus e spyware che una volta installatisi su un computer leggono gli indirizzi email dalla rubrica di Outlook o altri programmi di posta elettronica e li inviano agli spammers. Un’altra sorgente di indirizzi email è costituita dall’analisi automatica di milioni di pagine web, forums e newsgroups alla ricerca di indirizzi email validi.

Invio delle email di spam

L’invio di email di spam può essere fatto in vari modi, ma quello più utilizzato e che crea maggiori problemi è tramite l’utilizzo di eserciti di PC infettati da virus e spyware (definiti in gergo zombie) che vengono comandati da remoto da un server degli spammers che assegna, a ciascuno di essi, un certo numero di indirizzi email cui inviare lo spam, di solito il programma che gira sul PC infetto si preoccupa anche di modificare il testo dell’email sulla base di alcune regole ed inserendo in modo casuale piccoli errori ortografici, diversi per ciascun messaggio, in modo da ostacolare la rivelazione del problema da parte del software anti-spam; ad esempio una email di spam indirizzata ad un utente inizia con:

sono l’avvocato Jacopo Hilderich proprietario dell’omoinmo studio Legale

mentre la stessa email di spam indirizzata ad un’altro utente comincia con:

sono l’avvocato Giulio Sepp propreitario dell’omonimo studio Legale

da notare il cambio di nomi ed i due differenti errori ortografici. Questo tipo di modifica ostacola il riconoscimento delle due email come identiche da parte del software antispam e fa sì che cercando una frase esatta su Google, tratta dalla email, non si trova nulla e si potrebbe pensare che quell’email è reale e non è stata inviata a decine di milioni di persone come invece è.
Un altro aspetto importante è che poichè ad inviare spam sono PC infetti, per gli spammers è praticamente gratuita sia la potenza di calcolo che la banda passante, questo vuol dire che possono anche generare a caso milioni di indirizzi email fasulli sperando che qualcuno di essi possa essere valido. Anche qui questa generazione è fatta non in modo casuale, ma seguendo precise regole; analizzando il log del mio mail server ho scoperto che veniva inviato spam ad indirizzi email inesistenti generati a partire da indirizzi validi, ad esempio valerio@audiocast.it è un indirizzo valido, ma molti altri indirizzi che ricevevano spam non lo erano come ad esempio:

alerio@audiocast.it
lerio@audiocast.it
erio@audiocast.it
walerio@audiocast.it
valelio@audiocast.it

e moltissimi altri indirizzi non validi generati con la stessa logica ossia generati eliminando parte iniziale del nome oppure sostituendo tra di loro caratteri foneticamente simili (ad esempio “v” con “w” oppure “l” con “r”, “m” con “n” e così via).

Impatto sui server di posta

L’impatto sui server che ricevono posta elettronica su Internet è ovviamente enorme, perchè è enorme la quantità di email di spam da processare. Se poi si installa un filtro antispam che va ad analizzare ogni singolo messaggio, il carico su tale server può raggiungere livelli tali da creare disfunzioni ed interruzioni del servizio anche su hardware con prestazioni molto elevate. Anche la banda passante consumata dallo spam può raggiungere livelli molto significativi.
Se però si riuscisse a rifiutare immediatamente le email di spam, ossia se quando un PC infetto contatta il nostro mail server esso potesse interrompere immediatamente la connessione, saremmo in grado di risparmiare banda passante (il testo del messaggio non viene ricevuto perchè immediatamente rifiutato) e potenza di calcolo (il software anti-spam non deve processare i messaggi che non sono stati neanche accettati).
Ma come si fa a sapere quando un PC contatta il nostro server che esso è un PC  infetto che sta inviando spam oppure che è un server utilizzato dagli spammers? Ovviamente non ci può essere una risposta che è sempre vera al 100%, ma, con una buona approssimazione si possono consultare delle Real Time Black List (rtbl) disponibili su internet che possono essere interrogati per sapere se un certo indirizzo IP è stato “pizzicato” ad inviare spam di recente.
Io utilizzo due di queste blacklist: Sorbs e Spamcop, l’utilizzo di entrambe è gratuito, ce ne sono comunque molte altre. Questi servizi hanno vari metodi, sia manuali che automatici, per mettere (e poi rimuovere) gli indirizzi IP in queste liste nere; tra i metodi automatici c’è l’utilizzo delle cosiddette spamtrap, ossia degli indirizzi di email pubblicati volutamente su internet, ma in realtà non utilizzati da nessun utente reale, per cui tutto quello che essi ricevono è solo spam.
A titolo di esempio la società per cui io lavoro ha due server di email, uno primario ed uno secondario e di backup, e riceve circa 10.000 email al giorno, su tali server, volutamente configurati in modo identico, gira Linux con MailScanner, che coordina il software antispam SpamAssassin, il software antivirus ClamAV ed il software di posta Sendmail. Le statistiche ci dicono che in un tipico giorno si ricevono il seguente numero di emails:

Descrizione Server
Primario
% Server
Secondario
% Totale %
Email totali 7307 100% 3073 100% 10380 100%
Email ad utenti sconosciuti 1565  21%  665  22%  2230  21%
Email da IP in blacklist 4464  61% 2087  68%  6551  63%
Spam secondo Spamassassin  579   8%  268   9%   847   8%
Non spam secondo Spamassassin  699  10%   53   2%   752   7%

Tali numeri sono riferiti ad una particolare società, ma ci danno comunque una indicazione dell’ordine di grandezza del fenomeno, in particolare:

  • la quantità di email inviata ad utenti sconosciuti è circa il doppio della normale email (quella che non è spam);
  • appoggiandosi alle Real Time Black Lists (in questo caso specifico a Sorbs e SpamCop) si blocca la stragrande maggioranza dello spam;
  • se si rifiuta subito la email destinata ad indirizzi sconosciuti e quella proveniente da indirizzi IP in backlist si taglia di circa l’80% il carico sul server. Questa considerazione è particolarmente importante, perchè se si accettano tutte quante le email, ci si fa girare sopra un software anti-spam e solo dopo si inoltrano le email “sopravvissute” al server di posta interno alla società, si ha bisogno di una potenza di calcolo superiore di almeno 5 volte rispetto al minimo necessario;
  • la quantità di spam che raggiunge il server secondario è notevolmente maggiore, in percentuale, rispetto a quella che raggiunge il server primario. Questo è dovuto al fatto che molti programmi di spamming preferiscono inviare posta al server di backup perchè sanno che spesso esso è ospitato presso l’ISP e non implementa filtri come le Real Time Blacklists, per cui diventa più facile per lo spam arrivare al server finale. E’ invece desiderabile avere il server di backup gestito dalla stessa organizzazione che gestisce il server primario e configurato allo stesso modo del server primario.

Quando si utilizzano le Real Time Blacklist si può sempre verificare il caso di nostri corrispondenti che vengono bloccati perchè il server di posta da loro utilizzato è finito in una blacklist. In alcuni casi il nostro corrispondente non è in grado di fare nessuna azione per far rimuovere tale server dalla blacklist, diventa allora importante poter gestire delle “whitelist” in locale dove inserire questi server, in modo che il flusso di email non venga interrotto.
Questo fatto è particolarmente necessario in Italia dove sistematicamente molti server ufficiali di Telecom Italia, di Fastweb e di altri provider finiscono su tali blacklist (suppongo a causa della pessima gestione del problema Spam da parte dei provider nostrani).
In un prossimo post descriverò più in dettaglio come configurare un server di posta elettronica in configurazione anti-spam utilizzando l’ottimo software OpenSource citato.

Valerio

I am passionate about technology and I am an early adopter. Currently I work as an ICT Infrastructure Manager in the automotive industry. I Joined the linux camp in 1993, early adopter of the social web: I am simply "valerio" on twitter and del.icio.us, my other email is v@ler.io and my other website is va.ler.io
Bookmark the permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *