- Je n'ai pas reçu de mail ?
- Je ne reçois pas/plus certains mails ?
- Quels sont les filtres antispam de la messagerie @gadz.org ?
- Mon expéditeur me signale qu'il est bloqué ?
- J'attends un mail mais il n'arrive pas ?
- Pourquoi certains mails mettent longtemps à arriver ?
- Je reçois le mail sur une adresse de redirection mais pas sur l'autre ?
- Je reçois trop ou pas assez de spam (!?)
- ...
Cet article résume le fonctionnement et les mécanismes de lutte antispam et antivirus mis en oeuvre sur la messagerie Gadz.org.
Quelques statistiques en introduction :
- Nombre d'adresses en @gadz.org (et dérivé m4am/gadzarts et j'en passe) : dans les 50 000 (sans compter les alias).
- Nombre de comptes Google : gadz.org : 25 000 et imelavi.fr : 7 000
- Nombre de redirections emails externes : 50 000
- Moyenne mails reçus / jour : 250 000 mails
- Moyenne mails filtrés / jour : 80 000 mails (65 000 par RBL, 10 000 par blacklist et 5 000 par vérification d'intégrité)
- Moyenne mails livrés / jour (aux boites Google Gadz.org + redirections) : 150 000 mails
- Taux de livraison moyen (chiffres 2021) : 98.9%.
Ordre par fournisseur et par volume (top 8) :- Google : 116 000 mails - 100% (inclus Gmail.com et les G Suite Gadz.org + imelavie)
- Orange : 7 500 - 98%
- Yahoo : 5 000 - 98%
- Microsoft : 4 500 - 100%
- SFR : 3 000 - 98%
- Free : 2 700 - 94%
- Laposte : 1 800 - 93%
- Ensam : 1 200 - 100%
Les redirections mails n'ont pas de garanties de fiabilité, les FAI/fournisseurs de messagerie/messagerie pro/etc... ont chacun leurs propres règles et filtrages (dont nous n'avons bien évidement pas la main).
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 :
A- Mécanismes de Gadz.org (appliqués sur tous les mails entrants @gadz.org, + @arts-et-metiers.asso.fr + @m4am.net + @agoram.net)
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.
DNS :
De plus, nos serveurs de mails entrants se reposent sur les résolveurs DNS de Quad9.net (https://quad9.net) qui filtrent déjà en amont certains domaines qui sont liés à des botnets, des attaques par phishing et autres pratiques malicieuses.
La liste des domaines bloqués n'est pas donnée, mais il est possible d'effectuer une recherche depuis le site du projet.
Exemples d'erreurs :
SMTP_response | Reason | Description simple |
---|---|---|
504 5.5.2 | Helo command rejected: need fully-qualified hostname | HELO mal formaté / non pleinement qualifié |
450 4.1.8 | Sender address rejected: Domain not found | Domaine 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_response | Reason | Description simple |
---|---|---|
550 5.1.0 | Sender address rejected: User unknown in relay recipient table | Fausse adresse d'envoi (ex: [email protected] avec un PDF vérolé) |
550 5.1.1 | Recipient 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...)
check_helo_access hash:/etc/postfix/helo_checks
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 "postmaster" 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_response | Reason | Description simple |
---|---|---|
554 5.7.1 | Sender address rejected: spam | Domaine ou adresse envoyant du spam |
554 5.7.1 | Sender address rejected: abusive domain | Domaine abusif |
554 5.7.1 | Sender address rejected: SPAM&PHISH compromised account | Compte mail compromis / utilisé pour relayer du spam |
554 5.7.1 | Blacklisted IP | Adresse ou plage IP blacklistée |
Depuis fin juin 2018, un filtrage est également effectif sur les extensions de domaines réputées comme émettrices de spam :
Voici deux des sources utilisées en plus des constats de la supervision
http://www.surbl.org/tld
https://www.spamhaus.org/statistics/tlds/
SMTP_response | Reason | Description simple |
---|---|---|
554 5.7.1 | We reject all .bid domains | Rejet des domaines .bid |
Voici un extrait des domaines bloqués à ce jour :
.accountant .agency .best .bid .buzz .casa .cam .cf .click .club .cricket .cyou .date .desi .diet .download .exposed .fail .faith .fit .ga .gdn .gq .icu .live .link .loan .men .ml .party .press .pro .pw .racing .reise .review .science .study .stream .surf .tk .tm.co .top .trade .vip .wang .win .world .work .xyz .yokohama .zip
Techniques mises en place :
Table SQL de blacklist sur le champs "sender"
Sur postfix :
check_sender_access pcre:/etc/postfix/reject_domains_tlds.pcre
check_client_access cidr:/etc/postfix/rbl_override
check_client_access cidr:/etc/postfix/client_checks
2 bis- Vérifications de SPF (nouveauté juillet 2022)
Les SPF (https://fr.wikipedia.org/wiki/Sender_Policy_Framework) servent à déclarer quelles adresses IP (ou noms de serveurs) sont autorisés à "envoyer en tant que"
Les emails échouant aux vérifications SPF sont rejetés
Avant le 05/07/22, il était possible d'envoyer des mails en tant que gadz.org / gadzarts.org / m4am.net depuis une adresse mail externe type orange.fr, free.fr (ou autre) en utilisant les serveur SMTP d'un autre opérateur. Cela n'est plus possible désormais suite aux problèmes ayant entrainés la suspension des 25 000 comptes Google gadz.org pour détection de spam, ce qui avait fortement impacté et nuit à la communauté.
Il est dorénavant nécessaire d'utiliser son compte Google Gadz.org, et d'utiliser les serveurs de courrier sortant (SMTP) de Google gmail afin de pouvoir envoyer en tant que gadz.org / gadzarts.org / m4am.net :
Vous trouverez sur cet article d'aide (disponible depuis aide.gadz.org) les instructions pour activer IMAP sur votre compte Google Gadz .org.
Pour configurer un client de messagerie tiers (Microsoft Outlook, Microsoft Windows Live Mail, etc), spécialement l'utilisation des serveurs de courriers sortants, voir :
Exemple d'erreurs :
SMTP_response | Reason | Description simple |
---|---|---|
5.7.1 | SPF fail | 550 This message fails to pass SPF checks - l'émetteur n'est pas autorisé à envoyer en tant que |
Techniques mises en place :
postfix-policyd-spf-python : https://makeityourway.de/enabling-spf-sender-policy-framework-checking-on-postfix/
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
facture.doc
+ 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_response | Reason | Description simple |
---|---|---|
5.7.1 | header Content-Type: application/zip | Pour 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) :
DNSBL | Url |
---|---|
SpamCop | https://www.spamcop.net/ |
Barracudacentral | http://barracudacentral.org/rbl |
UCEPROTECT | http://www.uceprotect.net/ |
DroneBL | http://dronebl.org/ |
Truncate | http://www.gbudb.com/index.jsp |
CBL Abuseat | https://www.abuseat.org/ |
Exemple d'erreurs :
SMTP_response | Reason | Description simple |
---|---|---|
554 5.7.1 | Client host [XXX.XXX.XXX.XXX] blocked using bl.spamcop.net; | Émetteur figurant sur liste noire SpamCop |
554 5.7.1 | Client host [XXX.XXX.XXX.XXX] blocked using b.barracudacentral.org; | Émetteur figurant sur liste noire Barracuda |
554 5.7.1 | Client host [XXX.XXX.XXX.XXX] blocked using dnsbl-X.uceprotect.net; | Émetteur figurant sur liste noire UCEPROTECT (level 1 = IP, level 2 = network, level 3 = ASN réputation) nous sommes actuellement sur le level 3 : dnsbl-3.uceprotect.net |
554 5.7.1 | Client 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.1 | Client host [XXX.XXX.XXX.XXX] blocked using truncate.gbudb.net; | Émetteur figurant sur liste noire Truncate |
554 5.7.1 | Client host [XXX.XXX.XXX.XXX] blocked using cbl.abuseat.org; | Émetteur figurant sur liste noire Abuseat |
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_response | Reason | Description simple |
---|---|---|
450 4.7.1 | Recipient address rejected: Greylisting in action, please come back later | Vérifications de l'émetteur : merci de réessayer l'envoi |
Techniques mises en place :
pfixtools avec postlicyd
6- Antivirus ClamAV
Exemple d'erreurs :
SMTP_response | Reason | Description simple |
---|---|---|
450 4.7.1 | Virus detected | Virus 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_response | Reason | Description simple |
---|---|---|
450 4.7.1 | Spam filtered by bogofilter | Le mail a été classé comme spam et envoyé vers https://spam.gadz.org |
B- Mécanismes des fournisseurs de messagerie (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 cas | Fournisseurs de Messagerie | Erreurs | Description simple |
---|---|---|---|
SPAM ou VIRUS | Orange / Wanadoo | host 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 |
Boite aux lettre pleine | Orange / Wanadoo | host smtp-in.orange.fr[80.12.242.9] said: 552 5.1.1 Boite du destinataire pleine. Recipient overquota. OFR_417 [417] | Rejet du mail car la boite mail Orange du destinataire est pleine |
SPAM | Free / AliceADSL / LibertySurf | host mx1.free.fr[212.27.48.6] said: 550 spam detected (in reply to end of DATA command | Rejet du mail car détection de Spam par Free |
Boite aux lettre pleine | Free / AliceADSL / LibertySurf | host 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 suspendu | Free / AliceADSL / LibertySurf | host mx1.free.fr[212.27.48.7] said: 550 5.2.1 This mailbox has been blocked due to inactivity | Rejet du mail car le compte Free du destinataire est suspendu |
SPAM ou VIRUS | La Poste | host 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_511 | Rejet du mail car détection de Spam par La Poste |
SAPM ou VIRUS | SFR / AOL / Neuf / Cegetel / Club-Internet / Numéricable | host smtp-in.sfr.fr[93.17.128.123] said: 550 5.7.1 Message content rejected | Rejet du mail car détection de Spam par SFR |
SPAM ou VIRUS | Alstom | host vip-smtp.alstom.com[159.245.16.220] said: 550 Denied by policy | Rejet 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 antispam Google
En test pour les domaines Google : gmail.com + imelavi.fr (G Suite) + soce.fr (G Suite) + fondam.fr (G Suite) d’août à octobre 2017. Arrêté depuis suite à 2 constats :
- Nombre de faux positif anormalement élevé ; les antispam de Google en "sortie" sont encore plus sévères que ceux en "entrée" de Gmail et avaient tendance à rejeter à taux très élevés de mails
- Une limite vite atteinte : malgré des calculs optimistes, nous avons fini par atteindre la limite de nombre de mail / 24h en relais sortant pour notre domaine G Suite (environ 180 000 / 24h glissantes suite à l'envoi de NL depuis le site Soce + le trafic des redirections habituelles)
Les seuls domaines pour lesquelles les relais Google sont encore utilisés pour l'envoi de mails sont les domaines corporates "internes" (comprendre pour la communication officielle de la part de Google ou bien des gadz salariés Google) :
google.fr
google.com
googlemail.com
L'expéditeur reçoit un retour de ce type si son mail est bloqué par un des relais de Google :
Une copie de ce rapport de blocage est envoyée à la boite "[email protected]" : une règle les archive dans la corbeille durant 30 jours avant suppression
Cas 2 : Le mail est rejeté par les filtres antivirus de Google :
L'expéditeur reçoit dans ce cas un message de retour (non delivery notification) indiquant la raison suivante :
This message was blocked because its content presents a potential 552-5.7.0 security issue
C- Cas spécifiques Gadz.org
C1 - Utilisateurs existant, n'ayant ni de compte Google actif, ni d'adresse(s) de redirection active(s)
Vous envoyez un mail à une adresse [email protected] et vous obtenez le retour suivant :
Remote-MTA: dns; hruid.agoram.org Diagnostic-Code: smtp; 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table