Aller au contenu

Quand le serveur d'inscription à la gestion antispam de Microsoft envoie du spam potentiel et se comporte comme un spammeur

Bonjour,

Pour que notre serveur de messagerie soit correctement traité par les serveurs de Microsoft, nous devons signer les contrats SNDS (Smart Network Data Services) et JMRP (Junk Mail Reporting Partner Program) de Microsoft en nous rendant sur leur serveur https://postmaster.live.com/snds/JMRP.aspx?wa=wsignin1.0.

Pas de bol : le courriel de vérification d’adresse envoyé par leur serveur ressemble trop à du spam.

Première mauvaise nouvelle
#

Pour commencer, nous devons créer un compte Microsoft.

Ah bon, il faut créer un compte Microsoft pour simplement pouvoir déclarer son serveur de messagerie et quelques informations, informations que nous ne devrions pas à avoir besoin d’aller saisir manuellement.

La démence narcissique n’a pas de limite chez ces gens-là…

Dont acte, essayons de « jouer le jeu », puisqu’on nous dit qu’il faut le faire.

Je décide de prendre mon courage à deux mains et de créer un compte Microsoft pour que mon tout nouveau serveur de messagerie ne soit pas trop pénalisé par d’autres décisions arbitraires, puériles et imbéciles.

Le courriel de vérification d’adresse n’arrive pas
#

Lorsque je renseigne une adresse de courriel pour créer ce compte, je ne reçois pas le courriel avec le code de confirmation après quelques minutes.

Je me rends alors dans le tableau de bord de mon outil anti-spam, pour découvrir que le courriel de Microsoft a été détecté comme du spam potentiel. Et pas qu’un peu !

1
2
3
4
5
6
7
8
9
FUZZY_DENIED (7.885743) [1:c7f2556fdf:0.56:txt]
WHITELIST_SPF_DKIM (-3) [microsoft.com:d:+,microsoft.com:s:+]
RBL_SENDERSCORE_REPUT_4 (2) [52.101.46.92:from]
BAD_REP_POLICIES (2)
DWL_DNSWL_LOW (-1) [microsoft.com:dkim]
MID_RHS_NOT_FQDN (0.5)
MIME_GOOD (-0.1) [multipart/alternative,text/plain]
MX_GOOD (-0.01) []
IP_REPUTATION_HAM (-0.005001) [asn: 8075(0.00), country: US(-0.01), ip: 52.101.46.92(0.00)]

Pour résumer,

  • Les éléments clefs de vérification sont bons (SPF, DKIM) mais
  • Trop d’éléments entraînent une suspicion forte de spam :
    • Le message ressemble à des modèles très courants dans les courriels de spam ou d’arnaques ;
    • Il est très bref et propose un lien suspect ;
    • l’adresse IP de Microsoft a servi à l’envoi de courriels qui ont été signalés.

En conséquence, l’outil anti-spam de Mailcow, Rspamd, attribue un score de 8,27 à ce message, ce qui est très élevé. (Plus le score est élevé dans les valeurs positives, plus la probabilité que ce soit du spam est importante.)

Le message passe en « liste grise » (grey list).

Mon serveur effectue un « refus temporaire » (soft reject) : il rejette le message et indique au serveur émetteur d’attendre un peu et d’essayer à nouveau un peu plus tard.

Un comportement de (mauvais) spammeur dans les minutes qui suivent…
#

Le serveur de Microsoft ne réalise pas d’autres tentatives pour déposer son message dans mon serveur de messagerie dans les 10 minutes qui suivent.

Cela ressemble à un comportement des mauvais programmes de spammeurs et c’est justement ce comportement qui justifie l’utilisation des listes grises (grey lists) dans Rspamd : L’outil anti-spam considère que les spammeurs ne vont pas repasser. C’est partiellement vrai (et donc globalement faux), mais peu importe…

Le second courriel a un score bien plus raisonnable
#

Faute de nouvelles au bout de 10 minutes, je prends les devants.

Comme j’ai horreur de perdre mon temps, je modifie mes seuils dans Rspamd afin que le message soit accepté même avec un score aussi élevé.

Pour rien. Comme nous allons le voir.

Ensuite, je clique sur le bouton renvoyer un code (resend code) pour demander l’envoi d’un nouveau message avec le code tant désiré.

L’analyse du second courriel présente meilleure figure :

1
2
3
4
5
6
7
8
9
WHITELIST_SPF_DKIM (-3) [microsoft.com:d:+,microsoft.com:s:+]
BAD_REP_POLICIES (2)
RBL_SENDERSCORE_REPUT_6 (1) [52.101.62.95:from]
DWL_DNSWL_LOW (-1) [microsoft.com:dkim]
MID_RHS_NOT_FQDN (0.5)
MIME_GOOD (-0.1) [multipart/alternative,text/plain]
MX_GOOD (-0.01) []
IP_REPUTATION_HAM (-0.005001) [asn: 8075(0.00), country: US(-0.01), ip: 52.101.62.95(0.00)]

Score global : − 0,62.

Même avec des critères stricts, il passe.

… qui s’avère être potentiellement une bonne pratique…
#

Autre bonne nouvelle, les serveurs de Microsoft ont finalement refait une tentative 12 minutes et 10 secondes ou 16 minutes et 19 secondes plus tard.

Pourquoi ou ? Parce-que j’ignore lequel des deux correspond à ma seconde demande.

C’est une bonne pratique en général : si le serveur de réception demande un délai, autant attendre patiemment quelques minutes pour lui laisser le temps de revenir à un état plus stable.

Si c’est volontaire, et dans le cas général, ce peut être une bonne pratique.

… mais pas vraiment en fait !
#

Malheureusement, l’adresse IP qui envoie les tentatives est rarement la même chez Microsoft. Ils utilisent une ferme de serveurs sur une grande plage d’adresses IP. Le serveur en réception ne peut donc pas faire le lien avec son rejet précédent. Au risque que le nouveau message, considéré comme tout beau tout nouveau, reçoive le même traitement et ainsi de suite à l’infini !

Dans le cas particulier d’un envoi de code de confirmation, attendre aussi longtemps n’est plus une bonne pratique. À moins de l’expliciter clairement à l’utilisateur, ce qui n’est pas le cas ici. Dans le cas contraire, l’utilisateur va immanquablement cliquer, et cliquer encore. Créant ainsi autant de cycles infernaux que de tentatives.

Bref, si j’étais l’enseignant en charge de l’élève Microsoft, il ne validerait pas son UV UI/UX avec ça ! 1

Analyses
#

Contrôler pour mieux gérer
#

Peu de choses sont sûres et certaines, fiables et viables, bien conçues et bien menées dans ce monde.

Une des choses dont je suis sûr, c’est qu’il vaut largement mieux disposer

  • d’un maximum de sources d’informations fiables et
  • des manettes pour contrôler nous-mêmes.

Prendre patience et s’adapter
#

C’est avec la force de l’expérience que l’on arrive à forger une compétence et la capacité à gérer toutes les situations qui se présentent à nous.

Cette expérience nous apprend la patience.

Bien souvent, nous devons subir les mauvais comportements :

  • de ceux·celles qui savent qu’ils agissent mal mais également
  • ce ceux·celles qui croient bien agir (mais, en réalité, agissent mal).

Nous devons nous adapter continuellement, dans la mesure du raisonnable.

Maîtriser et perfectionner nos outils
#

Beaucoup de choses laissent à désirer dans la liste des critères et des coefficients par défaut dans l’implémentation de Rspamd proposée dans Mailcow. Il n’est pas innocent dans ce scénario d’échec.

Je perfectionnerai tout cela avec des paramètres que je crois plus pertinents.

Épilogue
#

Pour finir, voici à quoi j’ai eu droit un peu plus tard dans le processus de confirmation de la création de mon compte :

Microsoft a rencontré un problème

Je ne pourrai pas aller plus loin.

Pas tout de suite.

Au plaisir,

Marc JESTIN
https://marcjestin.fr


Le contenu du courriel
#

Le contenu du courriel n’a rien de très suspect, à vrai dire…

Je n’adhère pas du tout à ces analyses à la Madame IRMA que les outils anti-spam se sentent obligés de proposer sans pour autant garantir qu’ils font du bon travail.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
--=**********************==
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Microsoft account

Verify your email address

To finish setting up your Microsoft account, we just need to make sure this email address is yours.

To verify your email address use this security code: xxxxxx

If you didn't request this code, you can safely ignore this email. Someone else might have typed your email address by mistake.

Thanks,
The Microsoft account team 
Privacy Statement: https://go.microsoft.com/fwlink/?LinkId=521839
Microsoft Corporation, One Microsoft Way, Redmond, WA 98052

--=**********************==
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> 
<head>
<style type="text/css">
 .link:link, .link:active, .link:visited {
       color:#2672ec !important;
       text-decoration:none !important;
 }

 .link:hover {
       color:#4284ee !important;
       text-decoration:none !important;
 }
</style>
<title></title>
</head>
<body>
<table dir="ltr">
      <tr><td id="i1" style="padding:0; font-family:'Segoe UI Semibold', 'Segoe UI Bold', 'Segoe UI', 'Helvetica Neue Medium', Arial, sans-serif; font-size:17px; color:#707070;">Microsoft account</td></tr>
      <tr><td id="i2" style="padding:0; font-family:'Segoe UI Light', 'Segoe UI', 'Helvetica Neue Medium', Arial, sans-serif; font-size:41px; color:#2672ec;">Verify your email address</td></tr>
      <tr><td id="i4" style="padding:0; padding-top:25px; font-family:'Segoe UI', Tahoma, Verdana, Arial, sans-serif; font-size:14px; color:#2a2a2a;">To finish setting up your Microsoft account, we just need to make sure this email address is yours.</td></tr>
      <tr><td style="padding:0; padding-top:25px; font-family:'Segoe UI', Tahoma, Verdana, Arial, sans-serif; font-size:14px; color:#2a2a2a;">To verify your email address use this security code: <span style="font-family:'Segoe UI Bold', 'Segoe UI Semibold', 'Segoe UI', 'Helvetica Neue Medium', Arial, sans-serif; font-size:14px; font-weight:bold; color:#2a2a2a;">xxxxxx</span></td></tr>
      <tr><td id="i6" style="padding:0; padding-top:25px; font-family:'Segoe UI', Tahoma, Verdana, Arial, sans-serif; font-size:14px; color:#2a2a2a;">If you didn't request this code, you can safely ignore this email. Someone else might have typed your email address by mistake.</td></tr>
      <tr><td style="padding:0; padding-top:25px; font-family:'Segoe UI', Tahoma, Verdana, Arial, sans-serif; font-size:14px; color:#2a2a2a;">Thanks,</td></tr>
      <tr><td id="i8" style="padding:0; font-family:'Segoe UI', Tahoma, Verdana, Arial, sans-serif; font-size:14px; color:#2a2a2a;">The Microsoft account team</td></tr>
</table>
<div lang="en" style="margin-top:20px;margin-bottom:10px;"><a class="link" href="https://go.microsoft.com/fwlink/?LinkId=521839">Privacy Statement</a><div style="margin-top:10px;">Microsoft Corporation, One Microsoft Way, Redmond, WA 98052</div></div></body>
</html>
--=**********************==--

  1. Unité de Valeur eXpérience Utilisateur (User eXperience) / Interface Utilisateur (User Interface↩︎