Serveur mail
systèmes anti-spam
Pourriels
Il n'est actuellement plus possible d'avoir un serveur mail sans système anti-spam. Mon serveur reçoit environ 300 tentatives par heure. Je n'utilise plus d'adresse mail chez mon fournisseur d'accès, car cette adresse reçoit trop de pourriels.

En général

Si tu as un serveur mail, il faut qu'il soit configuré pour ne pas fonctionner en mode "open relay", c.à.d. qu'il relaie tous les messages. Il faut que les utilisateurs s'identifient avant de pouvoir envoyer un message. Les fournisseurs d'accès ont la tâche facile: il leur suffit de controler que le message provient d'une adresse IP qui leur appartient. C'est pour cela que vous ne pouvez plus utiliser votre fournisseur d'accès normal quand vous êtes en déplacement et que vous utilisez un autre réseau.

Il est évidemment possible de faire la même chose avec un serveur propre, notament autoriser d'office tous les mails originaires du réseau local (par exemple 192.168.1.*). Les utilisateurs en déplacement qui veulent utiliser le serveur doivent s'identifier. On a d'abord utilisé le système POP before SMTP (une fois que tu t'es identifié pour lire ton courrier, tu peux également envoyer du courrier), mais actuellement on utilise un identifiant avec la transaction SMTP (protocole CRAM MD-5 qui est plus sécurisé).

Bloquer les pourriels entrants

Première étape: bloquer les pourriels manifestes

La première défense consiste à bloquer les pourriels à l'entrée du serveur, en se basant sur la transaction smtp et sur l'adresse IP de l'expéditeur. Bon nombre de serveurs mail peuvent être configurés pour effectuer ces controles.
  • Est-ce que l'adresse IP se trouve dans la base de donnée locale? Oui --> refuser
  • Est-ce que l'expéditeur a un enregistrement PTR valable? Non --> refuser
  • Est-ce que l'adresse IP se trouve dans une base de donnée de spammeurs? Oui --> refuser
  • Envoi du message à un utilisateur inconnu? Oui --> refuser
Refuser veut dire: refuser le message et donner la raison, couper la communication et enregistrer l'adresse IP dans une base de données locale. La base de données bloque les tentatives de connection à partir de l'adresse IP enregistrée après un certain nombres de tentatives d'accès: après un accès si le correspondant n'a pas d'enregistrement PTR ou s'il se trouve dans une base de données de spammeurs, au bout de 5 tentatives de d'envoyer un mail à un correspondant inexistant.

L'avantage est que le serveur n'est pas encombré de messages qui sont de toute façon des pourriels: ils sont refusés avant d'être transmis. Nous donnons la raison technique dans le message de refus. Les serveurs mails compatibles transmettront cette raison à l'utilisateur effectif, tandis que les spammeurs tenteront une nouvelle connection.

On utilise le pot à miel pour récolter les adresses de spammeurs. C'est une adresse qui est indiquées sur toutes les pages du site web, mais qui ne peut pas être utilisée par un visiteur normal (par exemple parce que le texte est rendu invisible en HTML). Il n'y a que les robots récolteurs d'adresses qui vont lire cette adresse. Une fois que ton serveur reçoit un message vers ce faux utilisateur, le serveur place l'adresse IP dans sa base de donnée de spammeurs.

J'ai réservé un domaine il y a plus de 10 ans et je ne l'utilise plus maintenant: il ne contient que quelques textes sans valeur et une adresse mail camouflée. C'est le meilleur moyen de mettre ma base de donnée de spammeurs à jour: cette adresse mail reçoit la plupart des messages de spammeurs.

L'avantage d'un pot à miel, c'est qu'on peut bloquer le message avant son arrivée (puisqu'il s'agit d'un mail vers un utilisateur qui n'existe pas) et enregistrer l'adresse IP.

Seconde ligne de protection: controler le contenu du message

Les spammeurs sont à la recherche continue de serveurs non protégés (open relays). Il est donc possible que tu reçoive des messages de tels serveurs (avant que l'adresse IP de ce serveur ne soit enregistrée dans une base de donnée).

Une règle est que si un serveur mail reçoit un message, il doit le traiter: soit l'envoyer au destinataire, soit indiquer à l'expéditeur que le message n'a pas été transmis. C'est la procédure normale qui sert par exemple à signaler à un expéditeur valable qu'il a envoyé un message à un utilisateur inexistant.

Par contre, dans le cas d'un pourriel, l'adresse de l'expéditeur n'est souvent pas valable, c'est une adresse prise au hasard. Si ton serveur envoie un message à ce faux utilisateur, il se retrouve dans la situation d'un spammeur qui envoie automatiquement des messages. La réponse du serveur est envoyée à un utilisateur qui n'a aucun rapport avec toi. Si le message est clairement un pourriel, il faut tout simplement effacer le message.

Le protocole IMAP (pour les utilisateurs locaux) a comme avantage qu'il permet de distribuer les messages dans un répertoire (au lieu de la boite aux lettres classique). Les pourriels sont donc automatiquement placés dans le répertoire 'pourriel' de l'utilisateur, qui peut les controler régulièrement et déplacer les messages valables dans un autre répertoire. Il suffit souvent de lire l'en-tête du message pour se rendre compte qu'il s'agit d'un vrai message ou d'un pourriel. Les messages qui restent dans le répertoire 'pourriels' sont automatiquement effacés au bout de 10 jours.

Caractéristiques de pourriels

Les pourriels ont des caractéristiques particulières qui permettent le filtrage:
  • Un ou plusieurs liens vers de sites qui ont mauvaise réputation (il existe également une base de donnée de tels sites et ton serveur dispose peut-être d'une fonction (add-on) d'analyse du message)

  • Eléments externes dans le message (qui permettent à l'expéditeur de voir que tu as lu le message, et même dans certains cas d'injecteur du contenu externe dans le message.

  • La présence de javascrip et de iframes dans le message (aucune application mail n'utilise cela).

  • Une construction fautive du message (l'expéditeur fait croire que le message a été envoyé par Outlook, mais le message ne ressemble pas à un message Outlook typique).

  • Utilisation de certains mots-clefs (souvent écrits de manière erronnée)

  • Techniques "black hat": texte rendu invisible + mots-clefs qui sont eux bien visibles, encodage des adresses des sites,...

A chaque élément fait plus ou moins monter le score du message. Spam Assasin controle chaque message sur environ 100 éléments individuels et donne son verdict: 99% qu'il s'agit d'un pourriel. L'utilisateur peut déterminer le score total pour classer un message comme étant spam et le poids de chaque élémént. Une technique "black hat" pèse plus lourd que l'utilisation d'images externes (souvent utilisées par des listes de distribution).

Filtrage Bayes

Un test qui a eu du succès il y a un temps est le filtrage Bayes qui est une approche purement statistique. Chaque mot d'un message reçoit une valeur, entre 1 pour un mot qui se retrouve dans pratiquement tous les messages de spammeurs et 0 pour un mot qui ne se retrouve normalement pas dans les pourriels. Chaque mot a donc une valeur entre 0 et 1. Il existe des listes pré-établies pour commencer, mais le serveur peut adapter automatiquement cette liste aux caractéristiques des messages des utilisateurs.

Pour la création de la liste, il faut une base de mots pure: on peut pour cela utiliser le contenu des messages sortants. Dans une entreprise, ces messages contiendront principalement les mots qui ont un rapport avec l'entreprise.

La liste des mots contaminés se retrouve dans un rpertoire "pourriels" que chaque utilisateur IMAP peut utiliser. On demande simplement aux utilisateurs de déplacer les messages valables hors du répertoire, et de déplacer les pourriels vers ce répertoire (au lieu de simplement les effacer).

Cette méthode de filtration a un succès de plus de 99% si elle est utilisée au niveau de l'entreprise.

La classification des messages entrants qui demande assez bien de force de calcul peut être effectuée en mode asynchrone: le message est accepté et placé dans un répertoire temporaire avant d'être analysé et déplacé vers l'utilisateur. Cela pertmet d'étaler dans le temps la charge du serveur.

White list et blacklist

Une méthode qui peut être utilisée (mais qui demande une certaine collaboration de l'utilisateur) est l'établissement de listes positives et négatives. Ce sont des listes qui sont établies par chaque utilisateur individuellement.

On peut par exemple placer un correspondant important dans la liste positive pour être sur que ses messages sont acceptés (il utilise par exemple un serveur qui n'est pas configuré correctement).

Et on peut envoyer automatiquement à la poubelle les messages de listes de distribution qui ne vous interessent plus, mais dont il n'est pas possible de se désabonner.

Etablir une liste des adresses de spammeurs est inutile, car les spammeurs utilisent des adresses au hasard.

Si une adresse est présente dans la liste, la sélection est effectuée à la place du filtrage normal.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's