Encore une fois, sur internet il ne faut pas forcément prendre pour comptant ce qui est écrit à l'écran.
Il est conseillé d'avoir lu cette page avant de se lancer dans la lecture de : Spam / Pourriel
Edition de l'article : La page est de 2008, à l'époque, les technologies de vérifications de l'expéditeur comme SPF et DKIM étaient très peu utilisées.
Depuis elles se sont répandues.
Il existe d'ailleurs un article sur le site qui explique comment l'installer sur Postfix : Installation et configuration Postfix avec SPF + DKIM.
Expéditeurs & Destinataires
Pour plus d'informations et pour mieux comprendre comment sont acheminés les courriels, il est conseillé de jeter un coup d'œil au schéma en bas de cette page. Le transport de mail est régie par le protocole SMTP ( Simple Message Transfert Protocol ) et se fait via des serveurs / relais SMTP. Votre webmail ou votre client de messagerie est configuré avec les adresses de ces serveurs. Par exemple, pour les usagers "Orange", ces derniers doivent indiquer comme serveur d'envoi : "smtp.orange.fr"
Le client permet d'envoyer et de recevoir facilement des emails.
Vous allez voir qu'il effectue des tâches invisibles pour l'utilisateur.
Pour faire simple et pour pouvoir aborder la suite, il nous faut comprendre deux composants importants d'un mail: les entêtes ( headers ) de l'enveloppe et du message. Tout comme lorsque vous écrivez et envoyez une lettre par courrier, il y a le contenu ( la lettre ) et le contenant ( l'enveloppe ).
Les entêtes de l'enveloppe contiennent des informations relatives à l'acheminement des données entre les serveurs. Parmi elles figurent l'adresse de l'expéditeur, l'adresse du destinataire, etc... Imaginez l'enveloppe d'un courrier classique avec l'adresse du destinataire au recto et l'adresse de l'expéditeur au verso.
Le mail est composé ensuite du message (ce que vous écrivez, les pièce jointes, etc.) et du message headers.
Le serveur SMTP n'utilise pas ces infos, elles sont utilisées par les clients de messagerie et l'expéditeur.
On retrouve dans ces informations les champs "From:", "To:", "Received:", etc..
Considérez cela comme la lettre avec l'en-tête Nom, Prénom et son contenu.
Il est donc possible d'écrire et signer n'importe quoi... ce que nous allons voir.
Les entêtes de l'enveloppe et les entêtes du message
Voici quelques exemples d'envois de courriels. Je me suis d'abord connecté directement au serveur SMTP de Wanadoo via le client telnet. Vous verrez donc ce qui se passe de manière invisible lorsque vous envoyez un courriel.
En gras se trouve les commandes saisies dans l'enveloppe header.
Je me présente via la commande "HELO" suivi du nom de la machine.malekalmorte@lovelinux:/tmp$ telnet smtp.wanadoo.fr 25
Trying 193.252.22.64...
Connected to smtp.wanadoo.fr.
Escape character is '^]'.
220 mwinf2003.orange.fr ESMTP ABO **************************
HELO 192.168.1.4
250 mwinf2003.orange.fr
MAIL FROM: <[email protected]>
250 Ok
RCPT TO: <[email protected]>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
COINCOIN <o_/-
.
250 Ok: queued as E0F841C00096
quit
221 Bye
Connection closed by foreign host.
Je donne ensuite via la commande "MAIL FROM:" l'adresse de l'expéditeur
et l'adresse du destinataire via la commande "RCPT TO:"
"DATA" permet ensuite de fournir le contenu du mail.
Pour indiquer la fin, mettre un "." puis touche entrée.
Enfin "QUIT" permet de se déconnecter proprement.
Le serveur SMTP répond à chaque fois (oui il est poli, hein).
Les numéros 220, 250,.. sont des codes qui indiquent l'état de la commande.
Il en existe des différents afin de diagnostiquer exactement ce qui se passe en cas de problème.
2xx Tout à l'air d'être OK.
4xx Temporaire, réessayé plus tard.
5xx Erreur permanente, abandon.
Ci-dessous, le rendu visuel affiché depuis un client de messagerie:

Le client mail n'est pas capable de donner l'adresse de l'expéditeur.
Encore une fois "RCPT TO:" est utilisé pour l'acheminement des mails,
uniquement au niveau SMTP et n'est pas destiné au client mail x_X
Maintenant, un autre exemple en y ajoutant un message headers...
Le rendu visuel:malekalmorte@lovelinux:/tmp$ telnet smtp.wanadoo.fr 25
Trying 80.12.242.141...
Connected to smtp.wanadoo.fr.
Escape character is '^]'.
220 mwinf2b19.orange.fr ESMTP ABO **************************
HELO 192.168.1.4
250 mwinf2b19.orange.fr
MAIL FROM: <[email protected]>
250 Ok
RCPT TO: <[email protected]>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Demonstration
Date: Sat, 30 Aug 1998 22:04:49 +0200
From: [email protected]
To: [email protected]
ccoincoin
.
250 Ok: queued as 555867000087
quit
221 Bye
Connection closed by foreign host.

L'adresse de l'expéditeur et destinataire ("From" et "To") affichés sont bidons et je l'ai fais exprès.
Le client de messagerie se contente de reprendre les informations données dans le message header.
Ces informations sont donc arbitraires et ne peuvent / doivent pas être prises pour vraies !
Les spammeurs, hameçonneurs, arnaqueurs,... jouent là dessus pour leurrer les futures victimes.
Conclusion : Lorsque vous recevez un email de SPAM avec l'adresse d'un contact, ce n'est pas forcément ce dernier qui l'a envoyé et/ou le mail ne vient pas forcément de son compte mail
Quelques champs de l'entête du message
Il est tout de même possible d'obtenir certaines informations via le message header.
Voici le message header du précédent mail affiché depuis le client de messagerie.

Le message header contient des champs dont voici le détail :
- "Return-Path:" Adresse de retour en cas d'erreur.
- "From:" Adresse de l'expéditeur
- "To:" Adresse du destinataire
- "Cc:" Adresse Copie Carbonne
- "Subject:" Sujet de l'email
- "Date:" Date d'envoi de l'email
- "MIME-Version:" xxx - indique la version MIME
- "Received:" Les informations d'acheminement entre les différents serveurs
Entre outre, certains champs sont ajoutés par d'autres logiciel. Par exemple, l'anti-spam présent sur le serveur SMTP par lequel le courriel est passé a ajouté un champs d'entête "SpamAssasin". Ce dernier attribue une note selon certains critères et si la note dépasse un seuil défini alors le courriel sera considéré et annoté comme possible "Spam". En fonction de la configuration, il sera alors peut être détruit ou fera l'objet d'une réécriture visant à modifier le sujet ***SPAM*** par exemple.
Il est possible d'afficher les entêtes des messages depuis votre client de messagerie.
En général via un clic droit sur le courriel puis "afficher en-tête" : lire l'aide de votre client.
Obtenir quelques informations sur la source via l'entête du message
Nous allons maintenant nous intéresser plus particulièrement au champs "Received:"
Ce dernier pourra donner une indication sur la machine par laquelle a été expédiée le mail.
Chaque serveur SMTP rencontré doit normalement ajouter une ligne qui contient "Received:"
Attention ! Le sens de lecteur est de bas en haut, c'est un décomposition inversée.
Si on reprend notre mail, nous avons ceci en première ligne :
puis en dernière:Received: from me-wanadoo.net (localhost [127.0.0.1]) by
mwinf2b19.orange.fr (SMTP Server) with ESMTP id ABDC57000089 for
<[email protected]>; Sat, 30 Aug
2008 22:10:20 +0200 (CEST)
La dernière ligne montre que le mail a été reçu par "mwinf2b19.orange.fr" et envoyé par "AMontsouris-152-1-48-61.w82-123.abo.wanadoo.fr". Le [82.123.102.61]) correspond à mon adresse IP au moment de l'envoi et que le mail est destiné à "[email protected]". Le mail a été ensuite reçu par "mwinf2b19.orange.fr",...Received: from 192.168.1.4 (AMontsouris-152-1-48-61.w82-123.abo.wanadoo.fr
[82.123.102.61]) by mwinf2b19.orange.fr (SMTP Server) with SMTP id
555867000087 for <[email protected]>; Sat, 30 Aug 2008 22:09:56 +0200
(CEST)
On voit bien la première connexion au serveur SMTP, faite par moi même, "mwinf2b19.orange.fr" qui a ensuite transféré le mail à lui même "mwinf2b19.orange.fr". La seconde ligne comporte le mot "ESMTP", possible qu'il y ai deux programmes SMTP sur ce même serveur.
Voici un autre exemple pour que ce soit plus clair :
"Received: from [196.201.74.73] by web26607.mail.ukl.yahoo.com:"Received: from me-wanadoo.net (localhost [127.0.0.1]) by
mwinf1902.orange.fr (SMTP Server) with ESMTP id 889A25C00093 for
<[email protected]>; Fri, 29 Aug
2008 21:43:31 +0200 (CEST)
Received: from web26607.mail.ukl.yahoo.com (web26607.mail.ukl.yahoo.com
[217.146.176.57]) by mwinf1902.orange.fr (SMTP Server) with SMTP id
6BDF45C00089 for <[email protected]>; Fri, 29 Aug 2008 21:43:31 +0200
(CEST)
Received: (qmail 60946 invoked by uid 60001); 29 Aug 2008 19:43:31 -0000
Received: from [196.201.74.73] by web26607.mail.ukl.yahoo.com via HTTP;
Fri, 29 Aug 2008 19:43:30 GMT
Il est parti de 196.201.74.73 qui s'est connecté au webmail Yahoo! "web26607.mail.ukl.yahoo.com"
"from web26607.mail.ukl.yahoo.com (web26607.mail.ukl.yahoo.com [217.146.176.57]) by mwinf1902.orange.fr : " indique que le mail a été ensuite transmis de "web26607.mail.ukl.yahoo.com" à "mwinf1902.orange.fr".
Le mail transit à nouveau sur le même serveur "mwinf1902.orange.fr". Le champs "Received:" permet de connaitre le chemin parcouru et surtout l'IP de l'expéditeur. Il est alors possible via un traceroute de connaitre à peu près la localisation (le pays au moins) d'où est parti le courriel.
Technique utilisée par les spammers et les campagnes d'emails malicieux
L'usurpation d'adresse courriel est fréquemment utilisée par les spammers et lors des campagnes d'emails malicieux.
Dans le premier cas, le but est de tromper les règles définies par les antispams. Dans le second cas, le but est de tromper le destinataire car s'il ne fait pas attention et ne regarde que l'adresse de l'expéditeur, ce dernier peut croire que le courriel provient d'un ami. La victime risque de cliquer sur une pièce jointe ou lien malicieux s'imaginant être dans un échange de "confiance".
Par exemple, les campagne malicieuse du Ransomware Locky ont utilisé cette technique.
Voici un exemple d'un email soit disant envoyé par le même domaine que la personne :

Conclusion
Si vous recevez un SPAM, Virus ou autres, vous ne devez pas vous fier au champs affichés. Si vous avez un doute, créez un message sur le forum.
! | Sur le même sujet, voir aussi l'article : Mail et Phishing : Pourquoi il faut se méfier de l’adresse de l’expéditeur |