Indice dei contenuti
In questo articolo ci dedicheremo all'approfondimento di una problematica estremamente comune tra gli amministratori di sistema e gli sviluppatori web: la classificazione delle e-mail provenienti dal nostro dominio come spam ad opera dei server di posta che ricevono i nostri messaggi. Parliamo ovviamente non soltanto delle e-mail scritte dai nostri utenti, ma anche (e soprattutto) delle cosiddette "e-mail automatizzate", ovvero delle notifiche inviate tramite e-mail dai nostri sistemi (software, server, servizi, etc) in conseguenza di determinate interazioni effettuate dai nostri utenti: parliamo dunque di conferma di registrazione, riepilogo di un acquisto online, iscrizione a una newsletter, etc.
Dopo una breve introduzione, volta a spiegare cosa determina questo comportamento, forniremo una guida completa di operazioni che è possibile effettuare per risolvere (o ridurre al minimo) questo problema.
Come inviamo le E-Mail?
Prima di addentrarci nelle tematiche relative ai meccanismi di classificazione delle e-mail di spam, è opportuno fare un passo indietro per comprendere come funziona il meccanismo alla base dell'invio delle nostre e-mail.
Una delle esigenze principali degli amministratori di sistema che lavorano con applicativi legati al web è la necessità di configurare un MTA (acronimo per Message-Transfer Agent o Mail-Transfer Agent) per consentire l'invio di e-mail da sistema tramite il protocollo SMTP. Questa funzionalità può essere implementata sia facendo uso di un servizio esterno - fornito dal proprio provider, da prodotti come GMail di Google o da soluzioni a pagamento come turboSMTP - che implementando un MTA proprietario.
La prima possibilità è indubbiamente la più semplice, a patto che il provider scelto offra un servizio accettabile in termini di sicurezza, privacy, performance, affidabilità dei propri server e numero di invii consentito; nel caso in cui non si disponga di queste garanzie è senz'altro possibile ricorrere a una implementazione proprietaria utilizzando uno dei tanti software disponibili sia in ambiente Windows che, soprattutto, Linux: ci riferiamo ovviamente ai vari SendMail/ProofPoint, Postfix, Exim, QMail, Mutt, Alpine, sSMTP et al.
Configurare questi strumenti è piuttosto semplice, anche perché - nella maggior parte dei casi - risultano già installati nelle distribuzioni Linux più diffuse. E' sufficiente seguire qualche buona guida online, come ad esempio le seguenti:
- sSMTP: a simple alternative to SendMail - la soluzione perfetta per i neofiti.
- How to Install Sendmail Server on CentOS/RHEL 7/6/5 - l'alternativa più diffusa in ambiente Linux, adatta per utenti più avanzati.
- http://How To Install and Configure Postfix on Ubuntu 16.04 - per amministratori esperti.
Per quanto riguarda l'ambiente Microsoft Windows, le soluzioni license-free si riducono al server SMTP predefinito, installabile come componente aggiuntivo su tutte le principali versioni di Windows Server - e all'ottimo software hMailServer, disponibile su licenza open-source e del quale abbiamo già avuto modo di parlare in questo articolo.
Indipendentemente dalla soluzione scelta, seguendo le guide sopra indicate (o le tantissime altre disponibili online) riuscirete senz'altro a configurare l'invio di e-mail, arrivando quindi a disporre di un MTA proprietario e perfettamente funzionante che potrà essere utilizzato per inviare e-mail attraverso le principali tecnologie in uso sui vostri server: ASP.NET, PHP, Java, Phyton, NodeJS e/o qualsiasi altro framework server-side, per la gioia vostra e/o dei vostri colleghi sviluppatori.
Questo è il punto di partenza da cui è opportuno partire: la presenza di un MTA (proprietario o di terze parti) utilizzato dai nostri utenti, sistemi e/o software per inviare e-mail che, per ragioni a noi ignote, talvolta finiscono nella cartella Spam del destinatario. La prossima sezione di questo articolo è dedicata alla comprensione del meccanismo che determina questo comportamento.
Spam o non Spam?
Nella maggior parte dei casi, la classificazione delle e-mail come spam da parte di un mail server (e/o client) avviene a seguito di un processo automatico di classificazione, solitamente effettuato da un software o modulo anti-spam ad-hoc, che assegna al messaggio in questione un punteggio (Spam Score o Spam Rating) a seconda di una serie di parametri e fattori, tra cui soprattutto:
- Informazioni relative all'indirizzo e-mail del mittente (e-mail di origine, indirizzo IP, etc)
- Informazioni relative al dominio di posta utilizzato dal mittente (ovvero la parte dopo il carattere @ dell'indirzzo e-mail)
- Parole o frasi contenute nell'oggetto (subject) e/o nel testo (body) del messaggio
- Eventuali regole presenti sul server e/o sul client del destinatario (spam list, black list, etc)
Se lo "spam score" assegnato al messaggio in conseguenza dell'analisi di questi fattori supera una certa soglia, il messaggio viene considerato come un "probabile spam" e viene quindi classificato come tale, spostandolo in una cartella apposita (Spam o Posta Indesiderata) o contrassegnandolo in vari modi a seconda delle regole impostate sul server e/o sul client di posta.
In base a quanto detto sopra possiamo dunque comprendere come, se le e-mail inviate dai nostri utenti (e/o servizi) finiscono nella casella "spam" del destinatario, il motivo è con tutta probabilità da ricondurre a uno dei fattori di cui sopra.
Misurare lo Spam Score con Mail Tester
Per verificare lo Spam Score dei nostri messaggi è possibile utilizzare Mail Tester, uno strumento online gratuito che consente di inviare una e-mail a un indirizzo virtuale per sottoporla a una serie di controlli relativi al mittente, al dominio di posta, al contenuto del messaggio e a una serie di altri fattori: il risultato dei controlli sarà visualizzato sotto forma di report, consentendo all'amministratore di comprendere dove si trova il problema (o i problemi) e come risolvere.
Nelle prossime sezioni andremo ad analizzare le due categorie di problematiche che, statisticamente, determinano più spesso un cattivo Spam Score: i problemi legati al mittente e quelli legati al dominio di posta, con l'obiettivo di comprendere in che modo possono essere responsabili del nostro cattivo "spam score", dando per scontato che non susssistano problemi nel contenuto del messaggio e-mail e/o che il destinatario non ci abbia inseriti in una blacklist.
Problemi legati al mittente
La prima cosa da verificare è che non sussistano problemi legati al mittente, ovvero all'indirizzo e-mail e/o all'indirizzo IP che utilizziamo per inviare il messaggio che viene contrassegnato come spam: esiste infatti la possibilità che entrambe queste informazioni possano essere state inserite (a torto o a ragione) in una delle tante blacklist utilizzate dai software anti-spam per determinare lo spam score dei messaggi ricevuti.
Per verificare la presenza o meno di questi "blocchi" è possibile utilizzare dei software di verifica apposita, come ad esempio SenderScore. Ovviamente, qualora il nostro indirizzo e-mail e/o indirizzo IP fosse compromesso, sarà necessario effettuare una richiesta al servizio che si occupa di mantenere la blacklist chiedendo la rimozione.
Problemi legati al dominio di posta
A differenza dei problemi legati al mittente, che affliggono un singolo indirizzo di posta (es. [email protected]), i problemi legati al dominio riguardano tutti gli indirizzi e-mail relativi a quel dominio (ovvero tutti gli indirizzi e-mail che terminano con @email.com).
Nella maggior parte dei casi, i problemi legati al dominio di posta utilizzato dal mittente giocano un ruolo determinante per la classificazione dei messaggi come spam: si tratta infatti del metodo più semplice ed efficace per identificare e bloccare una serie di abusi che è possibile compiere utilizzando il protocollo SMTP (Simple Mail Transfer Protocol), il meccanismo alla base dell'invio dei messaggi e-mail, e che ad oggi costituiscono un buon 80% delle e-mail comunemente classificate come spam.
Questo tipo di classificazione è basato sulla compresenza dei seguenti controlli:
- Presenza del dominio all'interno delle blacklist utilizzate dai software anti-spam, verificabile in tempo reale utilizzando strumenti gratuiti come E-Mail blacklist check.
- Violazione delle limitazioni SPF impostate per il dominio, o assenza totale di record SPF (che viene interpretata dalla maggior parte dei sistemi anti-spam come una incuria da parte dell'amministratore del dominio, e quindi sanzionata a livello di spam score).
- Violazione delle impostazioni DKIM impostate per il dominio, o assenza totale di record DKIM (anch'essa spesso interpretata come incuria e quindi sanzionata a livello di spam score).
- Assenza del record DMARC, che documenta le impostazioni SPF e DKIM presenti per la convalida delle e-mail inviate dal dominio (se presenti). Anche in questo caso, l'assenza del record viene spesso interpretata come incuria dai sistemi anti-spam e quindi sanzionata a livello di spam score.
Non hai mai sentito parlare di SPF, DKIM, DMARC? Niente paura: nei paragrafi successivi spiegheremo più in dettaglio il significato di ciascuna di queste sigle e come configurare i relativi record sul proprio dominio web per migliorare lo spam score di tutte le e-mail inviate.
Record SPF
SPF è l'acronimo di Sender Policy Framework, un sistema di validazione delle email progettato per prevenire lo spam dovuto a tentativi di email spoofing, ovvero a mittenti che si spacciano per quello che non sono inviando messaggi da indirizzi e-mail relativi a domini che non sono sotto il loro controllo; nello specifico, si tratta di tentativi che sfruttano una nota vulnerabilità del protocollo SMTP in base alla quale è possibile impostare un mittente arbitrario, a condizione che l'MTA utilizzato per inviare il messaggio non blocchi l'invio.
Poiché non è possibile "costringere" l'MTA di invio a controllare l'identità del mittente, non resta che agire sull'MTA di destinazione: questo è lo scopo del record SPF, mediante il quale l'amministratore del dominio può definire gli host autorizzati a spedire messaggi di quel dominio, consentendo a chi li riceve di controllarne la validità. Questo semplice meccanismo, se correttamente implementato dal MTA di destinazione, consente di "tagliare fuori" tutti gli MTA non esplicitamente autorizzati dal proprietario del dominio, classificando come spam i messaggi e-mail inviati tramite quei server.
In termini pratici, il record SPF non è altro che un record TXT che è possibile configurare sul proprio dominio seguendo alcune convenzioni pre-determinate: all'interno del record TXT sarà possibile specificare uno o più host (ovvero gli indirizzi IP o hostname degli MTA autorizzati a inviare le e-mail) e impostare le regole che l'MTA di destinazione dovrà seguire per gestire eventuali e-mail provenienti dai domini non autorizzati.
Per verificare la presenza di un record SPF adeguato sul proprio dominio, nonché configurarlo nel modo corretto in caso non sia presente, consigliamo di utilizzare questo comodissimo configuratore SPF fornito gratuitamente da MXToolbox, che consente sia di scansionare il proprio dominio per identificare eventuali record SPF esistenti che di impostare le modifiche necessarie per modificare gli host autorizzati (e/o includerne di nuovi).
Record DKIM
DKIM è l'acronimo di DomainKeys Identified Mail (DKIM), un metodo di autenticazione e-mail che aiuta a impedire agli spammer di impersonare un dominio legittimo. A differenza di SPF, che è un semplice controllo sull'host del mail server responsabile dell'invio del messaggio, DKIM utilizza un meccanismo crittografico basato su una chiave privata (utilizzata dal sender per firmare il messaggio) e una chiave pubblica (utilizzabile per verificare la firma). Si tratta dunque di un sistema che, proprio come SPF, consente di verificare l'identità del mittente, ma basandosi su un criterio diverso, ovvero tramite il controllo dell'encyrption key utilizzata anziché dell'host di origine.
In termini pratici, il record DKIM non è altro che un record TXT che contiene la chiave pubblica con cui verificare la chiave privata.
Per verificare la presenza di un record DKIM adeguato sul proprio dominio consigliamo di utilizzare il DKIM record lookup fornito gratuitamente da MXToolbox, che consente anche di scansionare il proprio dominio per identificare eventuali record DKIM esistenti.
Record DMARC
DMARC è l'acronimo di Domain-based Message Authentication, Reporting & Conformance, ed è il sistema di validazione dei messaggi di posta elettronica a cui fanno capo SPF e DKIM. Sviluppato a partire dal 2010 con l'intento di contrastare l'email spoofing, è stato formalizzato nel 2015 definendo i criteri condivisi per l'utilizzo standardizzato di SPF e DKIM da parte dei mail server.
In buona sostanza, il controllo DMARC verifica che:
- Il dominio contenuto nel campo From dell'header coincida con il dominio di firma DKIM (o un sottodomino dello stesso);
- Il dominio contenuto nel campo From coincida con il dominio contenuto nel campo Mail From e sia uno dei domini autorizzati tramite SPF.
Una mail supera il controllo DMARC quando almeno uno dei due check di cui sopra dà esito positivo. Ovviamente, è consentito scegliere il comportamento che il destinatario dovrebbe applicare in caso di fallimento del check: nello specifico, è possibile adottare un comportamento neutro (neutral), considerare la mail come sospetta (quarantine) oppure rifiutarla (reject). Infine, il sistema del destinatario può inviare opzionalmente un report contenente il server sorgente, il dominio di destinazione, il risultato dei controlli DKIM, SPF e relativi allineamenti.
Per generare il proprio record DMARC consigliamo di utilizzare il DMARC generator fornito gratuitamente da UnlockTheInbox.
Conclusioni
Siamo giunti al termine della nostra panoramica sullo Spam Score e sui principali sistemi oggi utilizzati per classificare i messaggi e-mail come spam: ci auguriamo che le informazioni e gli strumenti che abbiamo fornito possano esservi utili per configurare al meglio il vostro dominio web in modo da garantire un buon punteggio alle vostre e-mail.