Astuce de rendu d’URL activée WhatsApp, Signal, iMessage phishing

Messaging

Une technique de rendu affectant les principales plateformes de messagerie et de messagerie au monde, notamment Instagram, iMessage, WhatsApp, Signal et Facebook Messenger, a permis aux acteurs de la menace de créer des messages de phishing d’apparence légitime au cours des trois dernières années.

Les vulnérabilités rendent les bugs entraînant un affichage incorrect des URL dans l’interface des applications avec des caractères de contrôle Unicode RTLO (de droite à gauche) injectés, rendant l’utilisateur vulnérable aux attaques d’usurpation d’URI.

Lors de l’injection d’un caractère RTLO dans une chaîne, un navigateur ou une application de messagerie affiche la chaîne de droite à gauche plutôt que son orientation normale de gauche à droite. Ce caractère est principalement utilisé pour l’affichage de messages en arabe ou en hébreu.

Cela permet aux attaques de phishing d’usurper des domaines de confiance sur les messages envoyés aux utilisateurs sur WhatsApp, iMessage, Instagram, Facebook Messenger et Signal, les faisant apparaître comme des sous-domaines légitimes et dignes de confiance de apple.com ou google.com.

Extrait de la vidéo de démonstration de l'exploit
Extrait de la vidéo de démonstration de l’exploit (GitHub)

Les vulnérabilités ont été attribuées aux CVE suivants et sont connues pour fonctionner dans les versions suivantes des applications de messagerie instantanée :

CVE-2020-20093 – Facebook Messenger 227.0 ou antérieur pour iOS et 228.1.0.10.116 ou antérieur sur Android
CVE-2020-20094 – Instagram 106.0 ou antérieur pour iOS et 107.0.0.11 ou antérieur sur Android
CVE-2020-20095 – iMessage 14.3 ou plus ancien pour iOS
CVE-2020-20096 – WhatsApp 2.19.80 ou antérieur pour iOS et 2.19.222 ou antérieur sur Android

Signal n’a pas d’identifiant CVE correspondant car la méthode d’attaque particulière leur a été divulguée récemment.

Découverte et PoC

Les identifiants CVE sont si anciens car la découverte initiale des vulnérabilités a eu lieu en août 2019 par un chercheur qui souhaite rester anonyme.

Free-lance chercheur en sécurité Sick.Codes remarqué les défauts lorsque le Programme CVE les a récemment publiés sur Twitter et a décidé d’enquêter plus avant.

Sick.Codes a contacté le chercheur pour lui demander s’il venait de rendre son référentiel public ou non, et le chercheur a répondu avec surprise que les CVE étaient publiés maintenant, après tout ce temps.

Le chercheur était réticent à partager plus d’informations sur la méthode d’exploitation des failles, qui n’avait été démontrée que sur vidéo, alors Sick.Codes a décidé de reproduire l’exploit par lui-même et d’écrire une preuve de concept (PoC) pour celui-ci.

Les deux chercheurs en sécurité se sont mis d’accord sur la libération immédiate du PoC sur GitHub car les vulnérabilités sont peut-être exploitées activement depuis longtemps.

L’exploit est un one-liner abusant de la confiance d’iOS et d’Android envers les gTLD et la prise en charge de l’affichage de texte bidirectionnel et est aussi simple que d’ajouter un seul caractère de contrôle ‘u202E’ entre deux URL valides.

Par exemple, le PoC publié abuse de google.com pour l’URL masquée et cliquable et définit bit.ly/3ixIRwm comme destination.

L'URL résultante affichée comme fusionnée pour le destinataire
L’URL résultante affichée comme fusionnée pour le destinataire (Codes de maladie)

Après le caractère de contrôle RTLO injecté, l’URL est inversée car elle est traitée comme une langue « de droite à gauche » (arabe, hébreu, etc.), de sorte que l’acteur de la menace doit en tenir compte lors de l’enregistrement du domaine de destination.

Par exemple, l’utilisation d’une URL « gepj.xyz » spécialement conçue apparaîtrait sous la forme du fichier image JPEG inoffensif « zyx.jpeg », tandis que la création de « kpa.li » apparaîtrait sous la forme d’un fichier APK « li.apk », etc.

En réalité, ces destinations pourraient héberger n’importe quoi, donc l’usurpation d’identité est très insaisissable et difficile à repérer.

Cependant, EZpublish-france.fr a remarqué certaines particularités lors du test de ce bug dans iMessage, Signal et même Gmail. Par exemple, alors que les URL combinées peuvent apparaître comme une seule URL, elles sont en fait traitées comme deux URL.

Cela signifie que si un utilisateur clique sur le côté gauche de l’URL, il ira sur Google.com, et s’il clique sur le côté droit, il ira sur EZpublish-france.fr.

Encore plus étrange, alors qu’iMessage sur iOS 15 affiche le texte à l’envers dans l’écran d’aperçu de la liste des messages, il supprime la chaîne inversée dans le message réel.

La liste d'aperçu des messages iMessage affiche le texte inversé
La liste d’aperçu des messages iMessage affiche le texte inversé

D’autres tests menés par EZpublish-france.fr montrent que cette faille de rendu ne fonctionne pas comme prévu dans Gmail, Outlook.com ou ProtonMail.

Alors que l’URL est affichée sous la forme d’une chaîne unique avec le texte inversé, le caractère RTLO Unicode dans le lien hypertexte est converti en son équivalent hexadécimal, laissant une URL comme :

http://www.google.com/%E2%80%AEwww.ezpublish-france.fr

Impact et correctifs

Le PoC en une seule ligne est accessible au public et simple à utiliser, même par des personnes ayant une mauvaise compréhension technique ou aucune compétence en piratage.

En fait, il y a preuves abondantes de Basé sur RTLO exploitation dans la nature, même lorsqu’elle implique des concepts techniques plus complexes.

La même attaque est probablement applicable à de nombreuses autres applications de messagerie instantanée et de messagerie, mais seules celles mentionnées ci-dessus ont été confirmées comme vulnérables.

Telegram était également vulnérable, mais il a été le premier à résoudre le problème via une mise à jour de sécurité.

De plus, l’équipe de développement de Signal a immédiatement répondu au rapport de Sick.Codes et a dit au chercheur qu’un correctif arriverait dans la prochaine version de l’application.

Sick.Codes a déclaré à EZpublish-france.fr que les applications de messagerie répertoriées ci-dessus sont toujours vulnérables à cette méthode de rendu.

Le NIST étudie actuellement la portée et l’impact des vulnérabilités, donc si elles avaient été corrigées dans les versions précédentes, cela sera bientôt déterminé par l’organisation.

En tant que tels, les utilisateurs des applications mentionnées doivent être prudents lorsqu’ils reçoivent des messages contenant des URL, toujours cliquer sur le côté gauche et rester en alerte pour les mises à jour de sécurité des applications entrantes qui peuvent résoudre le problème.

Sick.Codes a déclaré que la méthode de rendu est toujours fonctionnelle dans toutes les applications testées et suggère que les utilisateurs de toutes les applications de messagerie instantanée sont les suivants :

« Désactivez les aperçus de liens dans tout, en particulier les applications de messagerie et tout ce qui concerne les notifications. Ne visitez pas de sites Web étranges avec des fenêtres contextuelles. Ne cliquez pas sur des prix aléatoires.

Vous avez déjà un téléphone, alors utilisez vos signets et assurez-vous de le tenir à jour. Étant donné le nombre de jours zéro qui circulent, en particulier ceux divulgués récemment pour iOS, il serait périlleux de faire confiance aux URL dans les messageries instantanées. »

Codes de maladie

Comme les caractères RTLO Unicode ont une utilisation légitime, il n’est pas clair si les applications de messagerie résoudront ce problème, car cela pourrait casser les fonctionnalités légitimes.

EZpublish-france.fr a contacté les fournisseurs des applications concernées pour savoir quand cela sera corrigé, et nous mettrons à jour ce message dès que nous aurons reçu une réponse.