Qu'est-ce
qu'un en-tête SMTP ?
Laurent Charveriat.
C'est un des trois composants d'un mail, avec l'enveloppe
et le corps du message. L'enveloppe correspond aux commandes
SMTP (NDLR : Simple Mail Transfert Protocol)
permettant au message d'être acheminé par
le serveur et le corps du message au texte saisi par
l'expéditeur. L'en-tête, quant à
lui, contient des champs tels que "sujet",
"date", "de", "à",
"copie à"...
Enveloppes
et en-têtes peuvent-ils être différents
?
L'enveloppe contient des commandes telles
que le nom de la machine émettrice, l'adresse
mail de l'émetteur et celles des destinataires.
La plupart des en-têtes dupliquent les informations
de l'enveloppe. Le protocole SMTP utilisant des serveurs
de messagerie "relais", des intermédiaires,
une ligne "received by..." est systématiquement
ajoutée à chaque fois qu'ils sont sollicités.
La correspondance entre l'en-tête et l'enveloppe
ne dépend que de la "bonne volonté"
des serveurs traversés. C'est une première
porte ouverte à la fraude, à l'usurpation
d'identité, à la modification des pièces
jointes...
Cette
succession de lignes "received by" est-elle
riche en informations ?
Oui, c'est un autre aspect de la succession
des serveurs mails dans l'acheminement des messages
SMTP. Ces "en-têtes de trace" constituent
l'historique du chemin parcouru, avec à chaque
fois le nom du serveur relais et son adresse IP. Si
vous couplez cela aux informations de l'en-tête
initial, vous accédez à une cartographie
complète de système de messagerie utilisé
par l'expéditeur, comme par exemple le logiciel
utilisé (Outlook, Notes...), sa version précise,
le numéro identifiant du message (message-ID),
le format du message (version du protocle MIME utilisé
pour l'envoi des pièces jointes), la version
de l'antivirus...
Comment
ces informations sont elles exploitables par
un pirate ?
Quand il
s'agit d'une entreprise qui utilise en interne des serveurs
relais, comme cela arrive très fréquemment
dans les grandes sociétés, l'historique
de traçage et les informations de l'en-tête
initial, comme on vient de le voir, peuvent se révéler
très instructifs pour un pirate.
Le fait par exemple de connaître le logiciel de courrier
utilisé, sa version et le système sur lequel il tourne
peut permettre d'en exploiter une faille de sécurité connue
et référencée. Par exemple, si celui-ci réagit mal à
l'envoi d'une ligne de commande SMTP dont la taille excède
un certain nombre de caractères, un dépassement
de buffer peut être provoqué [NDLR : comme
dans le cas du virus Sapphire mais sur des serveurs SQL].
D'autres attaques sont elles
possibles ?
La connaissance des adresses IP internes d'une entreprise
peut permettre de déduire son plan d'adressage IP et de
faciliter grandement la recherche d'une machine présentant
une faille de sécurité. Elle permet aussi de cibler plus
facilement une usurpation d'adresse (IP spoofing) ou un
rebond.
De manière similaire, connaître le nom des machines peut
permettre au pirate de tenter une attaque Netbios ou de
cibler une usurpation de nom (DNS spoofing). D'autres
types d'attaques sont envisageables : usurpation d'identité
mail (mail spoofing), contournement des filtres anti-spam
et anti-relayage...
Cerise sur le gateau, l'envoi d'un mail à une
personne n'existant pas suffit à obtenir ces informations.
Il suffit en effet
d'écrire à une adresse inexistante pour que le serveur
SMTP génère un message de notification de non-remise comprenant
toutes les informations de l'en-tête initial. Alors
que, quel que soit le mode d'acquisition de ces renseignements,
ce sont des informations qui devraient normalement rester
strictement confidentielles.
Quelles sont les différentes
parades ?
Certaines entreprises fonctionnent
avec ce qu'on appelle une "zone démilitarisée"
ou DMZ, sorte de sas entre le réseau externe et l'entreprise.
Ce relais interne réceptionne les mails et se connecte
sur le serveur interne pour les délivrer. Cette
connexion constitue le point faible du dispositif car,
en cas d'attaque de la DMZ, les informations peuvent être
récupérées.
À l'heure actuelle, on trouve
de plus en plus de relais SMTP qui peuvent être configurés
de façon à ne pas ajouter de ligne "received by"
aux messages. Même si le protocole SMTP interdit cette
pratique sur Internet, elle reste possible à l'intérieur
de l'entreprise mais au prix d'une gestion complexe
des circuits internes de messagerie (détection des boucles
de mail par exemple). Il est aussi parfois possible
de configurer les serveurs de messagerie pour qu'ils
soient moins bavards mais cela reste rare et insuffisant.
L'autre alternative est d'épurer les en-têtes avant
le passage des messages sur Internet. Cela nécessite
soit un filtre basé sur des expressions régulières adapté
aux en-têtes de l'entreprise et spécialement développé
pour elle (par exemple, dans le domaine de l'open source,
PostFix),
soit un produit incorporant la fonctionnalité Reverse
SMTP qui veut que ce soit le réseau interne qui
se connecte à la DMZ et non l'inverse. Notre
société propose d'ailleurs une solution
incluant cette fonctionnalité.
|