| S . G . D . S . N Agence nationale de la sécurité des systèmes d'information |
![]() |
Paris, le 19 décembre
2008 No CERTA-2008-INF-004 |
Affaire suivie par :
CERTA
Objet : E-mail backscatting, pollution par
des rapports de non-livraison de courriels
| Conditions d'utilisation de ce document : | http://www.certa.ssi.gouv.fr/certa/apropos.html |
| Dernière version de ce document : | http://www.certa.ssi.gouv.fr/site/CERTA-2008-INF-004 |
Une gestion de version détaillée se trouve à la fin de ce document.
Le protocole SMTP prévoit des codes retours et des messages pour informer l'expéditeur d'incidents affectant la transmission de courriels. Cette fonctionnalité peut être détournée de manière malveillante et devenir une forme de pollution des serveurs de messagerie. Cette pollution consiste, par exemple, en l'envoi de nombreux courriers électroniques vers des boîtes aux lettres électroniques inexistantes ou ne pouvant recevoir ces messages en usurpant une ou plusieurs adresses d'émission appartenant à un même domaine (cf. étape 1 de la figure 1). Cet envoi massif de courrier a pour conséquence de saturer le serveur de messagerie de destination (cf. étape 1 de la figure 2) ainsi que le serveur de messagerie légitime du domaine usurpé (cf. étape 3 de la figure 1) en rapport de non livraison de courriels (NDR : Non Delivery Report).
Plusieurs cas de réceptions importantes de courriers électroniques non sollicités sur des serveurs de messagerie ont déjà été constatés. Les courriels reçus ont généralement les caractéristiques communes suivantes :
En voici un exemple :
Subject: Undelivered Mail
From: <MAILER-DAEMON@domaineC>
Date: Fri, 18 Apr 2008 14:19:42 +0200
To: <monsieurB@domaineB>
X-Account-Key: account2
Return-Path: <>
X-Original-To: monsieurB@domaineB
Delivered-To: monsieurB@domaineB
Received: from serveurMail@domaineC by serveurMail@domaineB (Postfix)
with ESMTP id XXXXXXXX
for <monsieurB@domaineB>; Fri, 18 Apr 2008 14:10:52 +0200
Received: ....
(...)
Your message to the following recipients cannot be delivered:
<MonsieurA@domaineC>
#550 5.1.1
The recipient's e-mail address was not found in the recipient's e-mail system.
(...)
L'en-tête global du courriel semble dans la majorité des cas légitime. Il ne semble pas « forgé ».
Ces courriels sont les « résidus » de messages envoyés avec une adresse émettrice usurpée et ayant provoqué un message de retour. La cause de ce message de retour peut être :
Le terme backscatter (« rétrodiffusion » en français) a été utilisé récement pour caractériser ce comportement. Certains parlent plus justement de "e-mail backscatters". Cela peut se définir comme des messages de réponse non sollicités.
Il s'agit donc initialement bien d'une usurpation d'adresse électronique. Cependant, le second problème provient du comportement très hétérogène des serveurs de messagerie.
Dans le meilleur des cas concernant la figure 1, c'est le serveur émetteur de monsieurB qui devrait retourner un rapport de non remise après avoir obtenu une erreur "550 no such user" du serveur de domaineC.
Cependant le serveur de domaineC ne traite pas toujours directement la réception (usage de passerelles). Sur le schéma précédent, le serveur de domaineC va générer des messages d'erreur qui seront retransmis par la passerelle de messagerie.
Par ailleurs, le comportement peut varier si le message d'origine contient plusieurs destinataires. Pour un message envoyé avec une adresse usurpée, cette dernière peut recevoir autant de messages d'erreur que de destinataires erronés. Ce comportement n'est pas souhaité par le standard RFC 2821 mais est mis en oeuvre par certains serveurs.
Le standard est flou concernant le contenu du message d'erreur : celui-ci doit permettre d'identifier le message d'origine, mais il n'est pas nécessaire de copier tout le corps au format texte ni les pièces jointes.
Des personnes malveillantes peuvent être amenées à utiliser les propriétés précédentes pour différentes raisons :
Il n'existe pas de solution absolue. Les messages d'erreur sont légitimes et intrinsèques au fonctionnement de SMTP. Ils peuvent cependant se manifester par un volume anormal de messages que le serveur a du mal à gérer correctement et provoquent ainsi un déni de service.
Certaines solutions sont proposées ci-dessous :
/^Content-Type: multipart\/report; report-type=delivery-status\;/ REJECT
no third-party DSNs
/^Content-Type: message\/delivery-status; / REJECT no third-party DSNs
Il est également possible de filtrer certaines adresses. Sous Postfix, une solution consiste à ajouter une liste dans smtpd_recipient_restrictions et/ou smtpd_sender_restrictions :
Ajout d'une ligne comme :
check_sender_access hash:/chemin_Postfix/maps/access_sender
Et dans le fichier /chemin_Postfix/maps/access_sender :
serveurMail@domaineC REJECT
Puis lancer la commande :
postmap access_sender
http://awstats.sourceforge.net/docs/awstats_faq.html#MAIL
http://www.ietf.org/rfc/rfc5321.txt
http://www.ietf.org/rfc/rfc3464.txt
http://www.ietf.org/rfc/rfc3834.txt
http://www.ietf.org/rfc/rfc821.txt
http://www.postfix.org/ADDRESS_VERIFICATION_README.html
http://wiki.apache.org/spamassassin/VBounceRuleset
http://www.techzoom.net/publications/mail-non-delivery-attack/index.en
http://www.certa.ssi.gouv.fr/site/CERTA-2008-INF-002/
http://www.certa.ssi.gouv.fr/site/CERTA-2005-INF-004/