Mailsploit : une technique facilite le phishing sur de nombreux clients e-mail
« La faute à la RFC ! »
Le 05 décembre 2017 à 09h00
7 min
Internet
Internet
Des bugs dans des clients et interfaces e-mail très utilisés permettent d'afficher une fausse adresse d'expédition, sans éveiller les soupçons du serveur. Une vingtaine d'entre eux seraient encore touchés, dont les clients d'iOS et macOS.
Afficher un e-mail venant de Donald Trump ([email protected]), sans que l'internaute ne puisse voir la vraie adresse d'expédition, voire insérer un contenu dans une page en exploitant une faiblesse de sécurité. C'est l'objet de Mailsploit, une « collection de bugs d'affichage » repérée dans 33 logiciels et webmails, découverte par Sabri Haddouche, chercheur en sécurité chez Wire, une alternative européenne à Signal.
« Le problème se situe au niveau du rendu de l'e-mail, qui t'autorise à afficher n'importe quelle adresse e-mail, même si le message est valide côté serveur. La technique permet d'avoir, dans les entêtes, l'adresse e-mail valide du côté du serveur et d'en afficher un autre du côté du client » nous déclare-t-il.
Une divulgation après trois mois d'attente
Aujourd'hui, le chercheur révèle Mailsploit, sur lequel il travaille depuis le mois d'août. Plusieurs approches existent sur la divulgation de failles de sécurité. D'un côté, il existe les partisans du « full disclosure », soit la publication d'une vulnérabilité, pour forcer les éditeurs touchés à les corriger rapidement. De l'autre, la « divulgation responsable » (responsible disclosure), qui consiste à obtenir la correction avant de divulguer quoi que ce soit.
Nous l'avons constaté sur certains clients mail, dont celui d'iOS : les fausses informations peuvent être reprises sans que la vraie adresse d'expédition ne soit révélée. Selon Sabri Haddouche, des clients comme Courrier de Windows 10, Outlook 2016 ou encore Thunderbird sont affectés par ces erreurs d'interprétation. Les clients et interface web de Gmail, eux, affichent bien l'adresse originelle.
Sur les 33 clients repérés, 32 ont été prévenus il y a au moins trois mois et huit ont apporté un correctif. Du point de vue d'Haddouche, le souci est désormais trop connu pour encore attendre, malgré le nombre d'outils affectés. Il fournit un outil de test de clients e-mail, via les 14 variantes d'exploitation, auxquelles sont sensibles différents clients.
L'interprétation de texte non-ASCII en cause
La découverte de la faiblesse a été fortuite. « J'effectuais un test d'intrusion chez Wire. Je me suis rendu compte d'un bug sur iOS, qui faisait en sorte que tu ne pouvais pas cliquer sur un e-mail quand tu le recevais. Il est possible de hasher le nom du mail avec un guillemet au bout. J'ai essayé de travailler un peu dessus pour l'enlever mais je n'ai pas réussi, donc j'ai laissé tomber. C'est resté dans les cartons quelques semaines. J'ai ensuite commencé à vérifier les autres clients e-mail » nous détaille Haddouche.
Il a ensuite adapté la recette à Thunderbird et au client de macOS, chacun avec sa payload (charge utile) propre. Cette partie a été la plus longue. « La plupart des clients réagissent différemment. Certains sont sensibles à certaines payloads. Une payload peut fonctionner pour trois clients, une autre pour cinq clients » détaille-t-il.
Pour ses essais, il a d'abord conçu une charge générique, à même de montrer si un client affiche correctement une chaine de caractères spécifiques. « Si elle était coupée ou si elle était différente, c'est que le client était touché par ce bug. »
Quel est concrètement le souci ? La RFC 1342, une proposition de standard datée de 1992, depuis remplacée par la RFC 2047. Elle fournit une manière d'interpréter du texte non-ASCII dans un champ expéditeur. La plupart des clients e-mail interprètent donc le texte, sans assainir correctement le champ en question, ce qui ouvre la voie à des interactions indésirables.
Haddouche a trouvé deux manières de l'exploiter : du base64 (en débutant l'adresse par =?utf-8?b?[BASE-64]?=
) ou du quoted printable (=?utf-8?Q?[QUOTED-PRINTABLE]?=
). Via certains caractères, comme NUL, il est ensuite possible de masquer l'adresse réelle d'envoi. Des bugs spécifiques, par exemple sur iOS, peuvent interdire de cliquer sur l'adresse de l'expéditeur pour en apprendre plus.
Sur iOS, une variante permet de totalement masquer l'adresse réelle d'envoi (ici [email protected])
Une exploitation considérée comme aisée
Selon des spécialistes en sécurité, la technique facilite le spam ou le phishing. Pour Guillaume Vassault-Houlière de YesWeHack, « cela évite de compromettre un serveur pour de l'injection mail [...] pour un coût faible ». Une automatisation adéquate permettrait de l'exploiter quelques semaines.
« C'est très simple, bien plus simple que toute autre technique permettant d'obtenir quelque chose de similaire. Il n'y a pas beaucoup de prérequis » appuie Sabri Haddouche. L'envoi passe par un script dédié, non un client e-mail classique. Si chaque client e-mail répond à une payload différente, l'automatisation reste possible, en se fondant par exemple sur le nom de domaine, pour les webmails.
Surtout, les vérifications côté serveur (comme DMARC) n'ont que peu d'intérêt dans ce cas. Il suffit d'envoyer les messages depuis un nom de domaine avec des entrées DKIM et SPF valides pour berner le serveur. Pour lui, l'e-mail provient d'une adresse valide, même si le client en affiche une autre. Le message peut donc passer entre les filets d'un anti-spam qui s'appuierait trop fortement sur ces éléments côté serveur.
Les services contactés n'ont pas encore constaté d'exploitation du problème. Pour Haddouche, pourtant, « ça risque d'être découvert bientôt. Beaucoup d'entreprises sont au courant du bug ».
Des corrections et quelques récompenses
En trois mois, les réactions des services aux contacts du chercheur ont été variées : de la fermeture de ticket sans préavis à la récompense via un programme de bug bounty. « Les meilleurs étaient Opera Mail, qui m'ont répondu que c'est la faute du serveur ! Ils ont tort. Le message s'affiche sur le client, pas le serveur » relève Haddouche.
De grandes entreprises ont d'abord refusé de traiter le souci, avant de consentir à une correction. De plus petits acteurs ont apporté un correctif en quelques minutes. Car si l'exploitation est perçue comme facile, sa correction peut aussi être assez simple. Il reste que des clients, comme ceux de Yahoo, ont des cycles de mise à jour lents, repoussant d'autant une correction. Certaines équipes, comme celle de Thunderbird, refuseraient simplement de s'en occuper.
Le géant russe Mail.ru a été l'un des premiers à s'occuper du sujet, attribuant une récompense au chercheur. D'autres sociétés, comme les Suisses de ProtonMail, ont aussi récompensé la découverte, même si le chercheur se refuse à fournir les montants.
Pour ProtonMail, il ne s'agit pas d'une faille de sécurité, mais bien un problème d'affichage exacerbé sur mobile. L'habitude y est d'afficher le nom de l'expéditeur, sans l'adresse. Les spammeurs mettent fréquemment quelque chose de faux en nom d'utilisateur, comme PayPal, pour tromper l'utilisateur. Heureusement, nous avons beaucoup de moyens de détecter les spammeurs, et généralement les messages sont placés en Indésirables » rappelle Andy Yen, fondateur du service.
Openmailbox était, lui, affecté par une faille de sécurité, type XSS, qui permettait d'introduire du code indésirable. « Le problème a été résolu quelques instants après réception de son message, puis le patch a été déployé quelques dizaines de minutes après correction » nous répond Pierre Barre, administrateur système. Son exploitation aurait tout de même demandé « d'effectuer une attaque particulièrement ciblée », estime-t-il.
Avec cette publication, Sabri Haddouche espère amener les outils encore vulnérables à apporter un correctif, comme l'envisagerait Apple dans l'une des prochaines itérations d'iOS.
Mailsploit : une technique facilite le phishing sur de nombreux clients e-mail
-
Une divulgation après trois mois d'attente
-
L'interprétation de texte non-ASCII en cause
-
Une exploitation considérée comme aisée
-
Des corrections et quelques récompenses
Commentaires (40)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 05/12/2017 à 09h05
Combinez ça avec un corps de message qui contient un lien avec des caractères unicode pris parmi ceux qui ressemblent fortement à certains caractères ASCII, bingo
Le 05/12/2017 à 09h20
On va de nouveau avoir les mails Bill Gates " />
Le 05/12/2017 à 09h27
Tout ça pour nous montrer que Guénaël reçoit des e-mails de Trump, quelle immaturité " />
Le 05/12/2017 à 09h31
Sous Thunderbird, si je clique sur ‘Afficher la source’ du mail je vois bien :
From: “=?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=?==?utf-8?Q?=0A=00?=” <=?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=?==?utf-8?Q?=0A=00?=@mailsploit.com>
Donc ça doit pas être compliqué d’afficher la vraie source.
Quelqu’un sait si Thunderbird se bouge sur ce point ?
Edit: ah super dans le tableau fournit sur son site, c’est inscrit “won’t fix”…
Le 05/12/2017 à 09h37
Ca me rappelle quand je faisais ça via Telnet, pour faire flipper les collègues en leur envoyant des mails d’insultes qui venaient du patron…. " />
Le 05/12/2017 à 09h39
Oui, c’est regrettable… Peut-être y a-t-il moyen en modifiant un paramètre ou via une extension ?
Le 05/12/2017 à 09h41
Le 05/12/2017 à 09h42
Marrant ! Sur windows phone c’est corrigé il semble (outlook sur windows phone)
il met l’adresse entre “ ” et quand tu clique tu retrouve l’adresse de mailsploit en clair, [email protected]
Le 05/12/2017 à 09h42
Oui c’est ce que je me dis, doit bien y avoir quelqu’un capable de faire un petit plugin qui rajoute une ligne dans l’entête…
Après j’aimerais bien comprendre pourquoi ils ne veulent pas régler ce point, ils ont peut être une raison ? et la connaître permettrait d’en discuter, mais j’ai absolument rien trouvé sur le sujet (pas vue d’issue sur github non plus).
Le 05/12/2017 à 09h48
Sur le site, il est noté :
Two vendors (Mozilla and Opera) said they won’t fix the bug (they consider it to be a server-side problem) (…)
Je ne vois pas en quoi c’est un problème du côté du serveur, alors que le problème se situe clairement dans l’affichage de l’adresse de l’expéditeur " />
Le 05/12/2017 à 09h48
Pour ProtonMail, il ne s’agit pas d’une faille de sécurité, mais bien un problème d’affichage exacerbé sur mobile. La bonne pratique y est d’afficher le nom de l’expéditeur, sans l’adresse. Les spammeurs mettent fréquemment quelque chose de faux en nom d’utilisateur, comme PayPal, pour tromper l’utilisateur. Heureusement, nous avons beaucoup de moyens de détecter les spammeurs, et généralement les messages sont placés en Indésirables » rappelle Andy Yen, fondateur du service.
alors là j’hallucine un petit peu, Yen joue sur les mots.
Il ne s’agit, effectivement, pas d’une faille de sécu techniquement parlant.
Mais c’est légèrement abuser que de prétendre qu’il n’y a “pas de faille”, et de parler des spammeurs (lol, ça fait combien de temps qu’on n’avait plus entendu parler de spam? sérieux?).
le danger (et il le sait très bien), c’est l’exploitation de ce bug dans une campagne de phishing, pas pour du spam. léger foutage de gueule de la part de protonmail sur ce coup.
à part ça on voit une fois encore que Google est quand même plutôt pas mal niveau sécu.
Le 05/12/2017 à 09h48
Pour info, Roundcube n’est pas affecté (testé avec la 1.0.5), mais BlueMail sur Android est affecté par les variations 5 et 6
Le 05/12/2017 à 10h05
Je n’arrive pas à reproduire le problème sur Outlook 2016 alors qu’il est affiché en non résolu: J’obtiens le même résultat que sur Gmail.
Le 05/12/2017 à 10h18
Mozilla me déçoit pas mal là " />
Le 05/12/2017 à 10h38
blat…
Pareil, qu’est ce que j’ai pu m’amuser avec çà " />
Le 05/12/2017 à 10h53
Thunderbird est maintenu par la communauté, ceci explique cela.
J’ignore comment Thunderbird va gérer le passage à quantum et aux webextensions
Le 05/12/2017 à 11h01
MailDrop a l’air affecté plus ou moins par plusieurs variations. bizarrement, en mettant à jour, le bug est encore plus caché par les changements visuels entre la version 1.9 et la version 1.11.
sur la dernière version, il faut afficher l’info bulle pour voir le problème avec certaines adresses là où le bug était évident en version 1.9.
Je voulais pas trop mettre RoundCube sur mon serveur car un poil lourd pour du mail auto-hébergé pour max 5 adresses mail dont une seul vraiment utilisée quotidiennement…
Est ce qu’il y a d’autres client web qui ont été testé? (Zimbra, SquirrelMail… )
Le 05/12/2017 à 11h14
J’avais été très déçu de voir que dans Thunderbird je devais passer par une extension pour afficher une colonne avec l’adresse de l’expéditeur (et pas seulement le nom qu’il a spécifié de son côté).
Je ne comprends pas que ça paraisse normal d’afficher “Alfred Dupont” plutôt que alfred.dupont@achiésurleplafond.com…
De toute façon les clients mails semblent disparaître, on m’a regardé comme un hurluberlu quand j’ai dit au boulot que j’utilisais Thunderbird plutôt que tout rapatrier sur un compte gmail " />
Le 05/12/2017 à 11h24
Le fait de dire que c’est une “bonne pratique” aussi… Non ce n’en est pas une, c’est l’usage, éventuellement une guideline, mais on peut quand même afficher l’adresse par sécurité
Le 05/12/2017 à 11h33
Tu utilises quelle extension ?
Le 05/12/2017 à 11h47
Bon, contrairement au M2 d’Opera 12, mon futur nouveau client mail n’a pas l’air d’être vulnérable à ce genre de p’tite filouterie " />
Le 05/12/2017 à 11h54
J’ai revu ce passage. Andy Yen parle effectivement de “convention”, ce que j’ai repris (hors citation) par bonne pratique, “habitude” est effectivement plus juste. " />
Pour le reste, PM considère effectivement plus la question comme un problème d’interface que de sécurité, dont Andy Yen n’avait pas été prévenu avant que je ne lui en parle (et qu’il se renseigne en interne).
Le 05/12/2017 à 12h24
Dans le tableau il y a marqué pour Thunderbird
Mozilla Thunderbird ≤ 52.3.0 / SeaMonkey ≤ 2.4.8 MACOS WINDOWS
Or sur le site de Thunderbird ils sont à la 52.5.0
Donc est-ce que Thunderbird est encore concerné ou pas ?
Le 05/12/2017 à 12h26
Corrigé depuis le 1er septembre chez ProtonMail en tout cas, ça fait plaisir de voir de la réactivité.
Le 05/12/2017 à 12h29
La capture dans l’article vient de la version 52.5.0.
Le 05/12/2017 à 13h39
Merci Guénaël, ça change pas mal la compréhension du coup
Le 05/12/2017 à 13h42
il a techniquement raison, mais l’interface participe aussi de la sécurité générale d’une appli, particulièrement dans la lutte contre le phishing.
Le 05/12/2017 à 13h43
De souvenir (c’est sur mon pc perso) : Show address only
Je me demande si ça évite l’exploit de l’article, je pense pas
Le 05/12/2017 à 14h07
Le 05/12/2017 à 14h24
Le 05/12/2017 à 14h27
Merci " />
Le 05/12/2017 à 14h34
Le 05/12/2017 à 14h46
Le 05/12/2017 à 15h59
+1
ça fait des mois que si on va dans l’onglet des modules complémentaires, c’est mis en gros que les extensions ne vont plus être compatibles.
Le 05/12/2017 à 16h51
Le 05/12/2017 à 17h03
Cette mauvaise fois… “j’en ai marre d’être un geek” mais ton Firefox a des extensions et plein d’onglets “torrent” ?
J’aurai du savoir que ce n’était pas la peine de te répondre en fait…
Le 05/12/2017 à 17h15
Le 05/12/2017 à 20h19
Je reviens pour informer d’éventuels intéressés : l’extension Show Address Only pour Thunderbird permet de voir l’adresse d’origine dans la colonne qu’elle permet d’ajouter.
J’en reviens à un de mes autres commentaires, je trouve ça honteux que ça ne soit pas natif comme option. Cette technique est peut être “nouvelle” mais ça fait longtemps que les spams se masquent grâce au fait de pouvoir mettre ce qu’ils veulent dans le champ expéditeur.
Le 05/12/2017 à 23h41
Serein avec Claws Mail " />
Le 06/12/2017 à 12h48
Merci HerrFrance.
L’extension est en effet vieille, mais je confirme moi ça fonctionne aussi avec TB 52.5 sous Ubuntu 17.10.
Ça fait le job simplement. Tip top.