Procédure en cours de rédaction

 

Le Spam est un fléau, qui représenterait environ 90% du trafic e-mail mondial. Chaque acteurs impliqués se doit d'agir pour endiguer ce fléau au maximum.

Voici pour informations les conseils et recommandations de la CNIL à ce sujet : https://www.cnil.fr/fr/spam-phishing-arnaques-signaler-pour-agir

Des filtrages antispam sont présents sur la messagerie Gadz.org ; voici la liste des mécanismes mis en place :

 

[schéma simplifié à produire]

 

A- Mécanismes de Gadz.org (appliqués sur tous les mails entrants @gadz.org)

1- Non respect des standards (Intégrité SMTP) et filtrage d'enveloppe :

Le premier niveau de filtrage correspond tout simplement au bon respect des standards des protocoles de messagerie (SMTP, HELO, FQDN...)

Les spammeurs / les scripts utilisés ne s'embetent généralement pas trop à respecter les standards (HELO valide, hostname valide au format FQDN, reverse DNS correct, etc...)

Cette première étape permet de bloquer les spammeurs ne maîtrisant pas réellement les systèmes de messagerie. 

Le taux d'efficacité du filtrage d'enveloppe est d'environ 50 %. Ce type de filtrage s'applique uniquement à l'en-tête du message, qui contient souvent assez d'informations pour pouvoir distinguer un spam. Il ne s'attache pas au contenu du courriel.

Cette technique présente l'avantage de pouvoir bloquer les courriels avant même que leur corps ne soit envoyé, ce qui diminue grandement le trafic sur la passerelle SMTP (puisque le corps du message est envoyé après que l'en-tête a été reçu et accepté). De plus, le taux de faux positifs dans ce type de filtrage est quasiment nul : lorsqu'un filtre d'enveloppe a identifié un courriel comme du spam, il se trompe rarement.

Les règles d'intégrité SMTP sont souvent très efficaces, car, pour les spammeurs, elles agissent comme inhibiteurs de performance (elles ralentissent les envois). Or, un spammeur a intérêt à être le plus performant possible et il peut être très payant pour lui de passer outre ces règles.

Exemples d'erreurs :

SMTP_responseReasonDescription simple
504 5.5.2Helo command rejected: need fully-qualified hostnameHELO mal formaté / non pleinement qualifié
450 4.1.8Sender address rejected: Domain not foundDomaine d'envoi inexistant (ex: @amazoon.tutu)

Des vérifications sont également effectuées sur l'émetteur et le destinataire (vérifications de l’existence de l'adresse) :

SMTP_responseReasonDescription simple
550 5.1.0Sender address rejected: User unknown in relay recipient tableFausse adresse d'envoi (ex: [email protected] avec un PDF vérolé)
550 5.1.1Recipient address rejected: User unknown in relay recipient table

Destinataire inconnu (ex: [email protected])

Techniques mises en place : 

Sur postfix : helo_restrictions (reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname...) et sender_restrictions (reject_non_fqdn_sender, reject_unknown_sender_domain, reject_invalid_hostname...)

2- Filtres "manuels" suite à des plaintes, abus, ou constat dans les logs (exploitations/supervisions) :

Une adresse mails et/ou un domaine spécifique (@toto.toto) peuvent faire l'objet d'un filtrage "manuel".

Cela peut se produire suite à des plaintes, rapport d'abus reçus sur les adresses d'exploitation de messagerie "postmater" et "abusemaster" at gadz.org (envoyé généralement par les FAI ou prestataires en charges des relais de messagerie des FAI et fournisseurs de messagerie, exemple AOL, Laposte.net, Microsoft (Hotmail/Live/Oultook), etc...) ou bien par constat d'un admin sur les interfaces d'exploitation (exemple : adresse mail voulant écrire à plus de 5 000 adresses mails en @gadz.org ...)

Exemple d'erreurs : (le code d'erreur sera toujours identique)

SMTP_responseReasonDescription simple
554 5.7.1Sender address rejected: spamDomaine ou adresse envoyant du spam
554 5.7.1Sender address rejected: abusive domainDomaine abusif
554 5.7.1Sender address rejected: SPAM&PHISH compromised accountCompte mail compromis / utilisé pour relayer du spam

Techniques mises en place : 

Table SQL de blacklist sur le champs "sender"

3- Filtrages par pièce jointe :

Afin de lutter contre l'exécution de code malveillants caché/intégré dans des pièces jointes, il a été décidé d'interdire certain type de fichier en pièce jointe des mails.

Les pièces jointes sont filtrées selon les règles suivantes :

.ade, .adp, .bat, .chm, .cmd, .com, .cpl, .exe, .hta, .ins, .isp, .jar, .js, .jse, .lib, .lnk, .mde, .msc, .msi, .msp, .mst, .nsh .pif, .scr, .sct, .shb, .sys, .vb, .vbe, .vbs, .vxd, .wsc, .wsf, .wsh
.zip

+ Les fichiers .doc contenant "facture" dans le nom de fichier sont également bloqués (depuis 2015/2016 suite aux nombreuses vagues de Cryptolocker se servant de ce vecteur d'infection)

Ces règles sont quasiment identiques à celles mise en place par Google pour sa messagerie Gmail : https://support.google.com/mail/answer/6590?hl=fr

Exemple d'erreurs :

SMTP_responseReasonDescription simple
5.7.1header Content-Type: application/zipPour des raisons de securite, nous ne pouvons temporairement pas accepter votre fichier en piece-jointe de type ".zip". Si vous estimez qu'il s'agit d'une erreur, vous pouvez contacter [email protected]. For safety reasons, we temporarily cannot accept emails with ".zip" attached file. If you think your email was rejected for wrong reasons, please contact [email protected].

Techniques mises en place : 

RegEX dans les headers

4- Filtrage par RBL (Real-Time Blackhole) :

Des services de blacklists distantes et gratuites (DNSBL : DNS black lists) ont été configurées sur nos serveurs Postfix. Le DNS Black Listing (DNSBL) est une méthode permettant de consulter une liste noire d'émetteurs de courrier électronique en utilisant le protocole DNS

Ils ont comme mandat de fournir une liste de serveurs réputés comme grands envoyeurs de spams, et de lister les grands spammeurs. Il s'agit en fait d'une grande liste noire généralisée. Celle-ci inclut les adresses IP des machines connues pour être la source de spam, des plages d'adresses utilisées par les fournisseurs d'accès à Internet qui hébergent des spammeurs, ou encore des adresses IP qui ont tenté d'envoyer des messages à des systèmes honeypot.

Le principe d'utilisation est simple : lorsqu'un filtre reçoit un courriel, il vérifie si le serveur d'envoi est contenu dans un RBL. Si oui, le courriel est catégorisé comme spam. 

Les filtres utilisés par Gadz.org sont les suivants (dans l'ordre) :

DNSBLUrl

SpamCop

https://www.spamcop.net/
Barracudacentralhttp://barracudacentral.org/rbl
DroneBLhttp://dronebl.org/
Truncatehttp://www.gbudb.com/index.jsp

Exemple d'erreurs :

SMTP_responseReasonDescription simple
554 5.7.1Client host [XXX.XXX.XXX.XXX] blocked using bl.spamcop.net;Émetteur figurant sur liste noire SpamCop
554 5.7.1Client host [XXX.XXX.XXX.XXX] blocked using b.barracudacentral.org;Émetteur figurant sur liste noire Barracuda
554 5.7.1Client host [XXX.XXX.XXX.XXX] blocked using dnsbl.dronebl.org;Émetteur figurant sur liste noire DroneBL, la raison est généralement fournie (DDoS drone, Automatically determined botnet IPs, Open HTTP proxy, Open SOCKS proxy...)
554 5.7.1Client host [XXX.XXX.XXX.XXX] blocked using truncate.gbudb.net;Émetteur figurant sur liste noire Truncate

Le champ [XXX.XXX.XXX.XXX] correspond à l'IP de l'émetteur, il suffit généralement de se rendre sur le site de la black list et saisir l'IP indiquée pour connaitre les motifs du blacklistage, et effectuer la demande de dé-listage quand elle est possible. Un lien direct est généralement fourni dans la réponse.

Chaque liste possède son propre fonctionnement ; il n'est pas toujours possible de se désinscrire manuellement (les processus sont automatiques et réclament du temps), surtout en cas de récidive.

Nous n'avons pas la main sur ces services : nous ne sommes donc pas en mesure d'y ajouter ou retirer des adresses spécifiques.

Techniques mises en place : 

Sur postfix : reject_rbl_client sur client_restrictions et recipient_restrictions

5- Greylisting (liste grise) :

La liste grise est un terme utilisé pour décrire une technologie antispam particulièrement efficace ; Pour simplifier, le courrier entrant est rejeté temporairement et il est indiqué au serveur qui envoie le message d’attendre et de réessayer l’envoi un peu plus tard. Tout serveur de mail légitime respecte cette règle. Les serveurs de mail non légitimes (utilisés par les spammeurs) ne le font pas car cela leur fait perdre de l’efficacité (temps/argent/perf).

Cette technique permettait d’atteindre des taux d’efficacité très élevés, de l’ordre de 99 % quand elle a été proposée en 2003, puisque la très grande majorité des spammeurs préfère sacrifier un courriel plutôt que d’attendre et ainsi, diminuer leur performance. Actuellement l’efficacité est moins importante (~80-90 %) à cause de l’augmentation de l’utilisation des webmails (des vrais serveurs de messagerie), par les spammeurs, pour distribuer les spams.

Cette technique induit cependant des délais plus ou moins long de livraison des mails (entre 5 min et 24 heures selon les cas).

Une liste de domaines "de confiance" qui ne sont pas soumis au greylistage est tenue à jour (et à discrétion) par les équipes Gadz.org

Exemple d'erreurs :

SMTP_responseReasonDescription simple
 450 4.7.1Recipient address rejected: We will verify your host identity... please retry laterVérifications de l'émetteur : merci de réessayer l'envoi

Techniques mises en place : 

pfixtools avec postlicyd

6- Antivirus ClamAV : 

Exemple d'erreurs :

SMTP_responseReasonDescription simple
 450 4.7.1Virus detectedVirus détecté dans le corps du mail


7- Antispam Bogofilter (Filtrage bayésien) :

Nous utilisons l'antispam Bogofilter. Le filtrage bayésien du spam (du mathématicien Thomas Bayes) est un système fondé sur l'apprentissage d'une grande quantité de spams et courriels légitimes afin de déterminer si un courriel est légitime ou non. Afin de bien fonctionner, le corpus de spam et le corpus de ham (courriels légitimes) doivent contenir idéalement plusieurs milliers de « spécimens ».

Lors de la détection d'un spam par Bogofilter, il est placé sur la quarantaine mutualisée "https://spam.gadz.org"

Exemple d'erreurs :

SMTP_responseReasonDescription simple
 450 4.7.1Spam filtered by bogofilterLe mail a été classé comme spam et envoyé vers https://spam.gadz.org

B- Mécanismes des fournisseurs d'accès (appliqués sur toutes les redirections)

Les mails transférés aux adresses de redirections : fournisseurs internet grands publiques (Orange, Free, SFR, LaPoste.net...), fournisseurs de messagerie mondiaux (AOL, Yahoo, Gmail, Microsoft...), organisations privée (Airbus, Renault, Ensam...) sont également soumis à des filtrages lors de leur réception par le service de messagerie final.

Voici des exemples de filtrages possible par ces services :

Type de casFournisseurs de MessagerieErreursDescription simple
SPAM ou VIRUSOrange / Wanadoohost smtp-in.orange.fr[80.12.242.9] said: 550 5.2.0 Mail rejete. Mail rejected. ofr_506 [506]Rejet du mail car détection de Spam par Orange
SPAMFree / AliceADSL / LibertySurfhost mx1.free.fr[212.27.48.6] said: 550 spam detected (in reply to end of DATA commandRejet du mail car détection de Spam par Free
Boite aux lettre pleineFree / AliceADSL / LibertySurfhost mx1.free.fr[212.27.48.6] said: 552 5.2.2 user quota exceeded Rejet du mail car la boite mail Free du destinataire est pleine
Utilisateur suspenduFree / AliceADSL / LibertySurfhost mx1.free.fr[212.27.48.7] said: 550 5.2.1 This mailbox has been blocked due to inactivityRejet du mail car le compte Free du destinataire est suspendu
SPAM ou VIRUSLa Postehost smtpz4.laposte.net[194.117.213.1] said: 550 5.5.0 Service refuse. Veuillez essayer plus tard. service refused, please try later. LPN007_510 ou LPN007_511Rejet du mail car détection de Spam par La Poste
SAPM ou VIRUSSFR / AOL / Neuf / Cegetel / Club-Internet / Numéricablehost smtp-in.sfr.fr[93.17.128.123] said: 550 5.7.1 Message content rejectedRejet du mail car détection de Spam par SFR
SPAM ou VIRUSAlstomhost vip-smtp.alstom.com[159.245.16.220] said: 550 Denied by policyRejet du mail car détection de Spam par Alstom

Cas spécifiques à Google :

Cas 1 : Le mail est bloqué en sortie de Gadz.org par les relais Google (Pour les domaines : gmail.com + imelavi.fr + soce.fr) :

Cas 2 : Le mail est rejeté par les filtres antivirus de Google :


C- Cas spécifiques Gadz.org

C1 - Utilisateurs existant, n'ayant ni de compte Google actif, ni d'adresse(s) de redirection active(s) :

Si vous obtenez le retour suivant :

Remote-MTA: dns; hruid.agoram.org

Diagnostic-Code: smtp; 550 5.1.1
    <prenom[email protected]>: Recipient address
    rejected: User unknown in local recipient table

En gros = envoyé par hruid.agoram.org et [email protected] : User unknown

Cela signifie que le compte existe (possède un hruid dans le GrAM) mais n'a pas d'adresse de redirection valide/active où livrer le mail...