WhatsApp, 1 bug permettait des injections de code

Des chercheurs en sécurité ont identifié une vulnérabilité JavaScript dans la version bureau de WhatsApp qui pourrait permettre aux cybercriminels de diffuser des campagnes de logiciels malveillants, d’hameçonnage ou de rançongiciels via des messages de notification qui semblent tout à fait normaux au premier coup d’œil. Une enquête plus approfondie montre que la faille pourrait aussi permettre des exécutions de code à distance.

La plate-forme de bureau compte plus de 1,5 milliard d’utilisateurs actifs par mois. Le bug de gravité élevée (classé 8,2 sur l’échelle de gravité CVSS) pourrait avoir un impact sur ceux qui utilisent également WhatsApp sur iPhone, s’ils ne mettent pas à jour leurs applications de bureau et mobiles, et s’ils n’utilisent pas de versions récentes du navigateur Chrome.

«Une vulnérabilité [CVE-2019-18426] dans les versions de WhatsApp Desktop antérieures à la version 0.3.9309 lors de l’association à WhatsApp sur iPhone antérieures à la version 2.20.10 permet la création de scripts intersites (XSS) et la lecture de fichiers locaux», selon la National Vulnerability Database. “L’exploitation de la vulnérabilité nécessite que la victime clique sur un aperçu de lien à partir d’un message texte spécialement conçu.”

Plus précisément, «les failles rendent les utilisateurs vulnérables aux attaques en permettant à la fois au contenu textuel et aux liens dans les aperçus de sites Web d’être falsifiés pour afficher du faux contenu et des liens modifiés qui pointent vers des destinations malveillantes», a écrit Ido Safruti, fondateur et directeur des nouvelles technologies de PerimeterX, dans un article.

Les individus mal intentionnés peuvent injecter du code ou des liens nuisibles dans des «échanges apparemment anodins», selon Safruti, ce qui pousse les utilisateurs naïfs à cliquer sur les liens malveillants qui se font passer pour des messages d’un ami par exemple.

«Ces modifications de message seraient complètement invisibles à l’œil nu», a-t-il écrit. “De telles attaques seraient possibles en modifiant simplement le code JavaScript d’un seul message avant la livraison à son destinataire.”

Cependant, l’objectif est l’exécution de code à distance – un résultat tout à fait possible dans certains navigateurs, selon les chercheurs.

Détails du bug de Whatsapp

Gal Weizman, chercheur en sécurité informatique et expert en JavaScript chez PerimenterX, a découvert pour la première fois des vulnérabilités menant à ce dernier bug dans WhatsApp en 2017. Il a détaillé la découverte de cette dernière faille et la possibilité d’exécution de code à distance dans un article séparé. Il a également déclaré qu’il travaillait avec Facebook, propriétaire de WhatsApp, pour résoudre les problèmes.

Dans son article détaillé, Weizman a montré comment il avait commencé par altérer le JavaScript pour les bannières de prévisualisation – celles qui incluent des informations supplémentaires concernant un lien qui se trouve dans le corps du message.

whatsapp

Grâce à la plate-forme de bureau WhatsApp, Weizman a pu trouver le code où les messages sont formés, le modifier puis laisser l’application continuer son flux d’envoi de messages naturel. Cela a permis de contourner les filtres et d’envoyer le message modifié via l’application comme d’habitude, apparaissant normalement dans l’interface utilisateur. Weizman a également constaté que les aperçus de sites Web, affichés lorsque les utilisateurs partagent des liens Web, peuvent également être falsifiés avant d’être affichés.

De cette façon, il est possible d’injecter des liens qui redirigent un utilisateur vers des pages Web malveillantes ou qui lancent des téléchargements de logiciels malveillants. De plus, le chercheur a découvert qu’il pouvait également faire en sorte que ces liens ressemblent à des liens de domaine authentiques, c’est-à-dire comme s’ils venaient vraiment de Facebook ou d’un autre site web légitime.

«Cela fonctionne grâce au rôle ‘ @; joue dans la spécification de l’URL », a écrit Weizman. “Le but de ‘ @ ‘ dans les URL est de transmettre le nom d’utilisateur et le mot de passe aux domaines visités de la manière suivante: https: // USERNAME: PASSWORD@DOMAIN.COM. On peut abuser de cela, comme je viens de le faire, et remplacer le nom d’utilisateur et le mot de passe par autre chose: https: //DOMAIN-A.COM@DOMAIN-B.com et cela fonctionnera toujours. Firefox est le seul navigateur qui avertit les utilisateurs, par défaut, dans le cas où cette méthode est utilisée sans fournir de nom d’utilisateur et de mot de passe. »

Il convient de noter que les nouvelles versions de Google Chrome ont des protections contre ce type de modifications JavaScript, selon la recherche, tandis que «d’autres navigateurs tels que Safari sont toujours largement vulnérables à ces failles de sécurité».

Après avoir exploité avec succès CVE-2019-18426 et effectué cette injection de code pour obtenir une redirection, le chercheur est allé plus loin pour transformer le hack en une attaque XSS persistante. Pour ce faire, il a utilisé des URI JavaScript (une astuce qui ne fonctionne que sur les navigateurs non Chromium, il faut le préciser):

whatsapp

Weizman a continué à tester la vulnérabilité pour éventuellement contourner les règles de la politique de sécurité du contenu (CSP) de WhatsApp afin d’améliorer la puissance du XSS persistant, ce qu’il a réussi à faire en utilisant l’évaluateur CSP de Google. Il a découvert que le CSP n’avait pas la directive object-src.

“Puisque la directive object-src est manquante [dans le CSP], cela signifie que je peux utiliser un objet pour charger un iframe vers n’importe quelle origine de mon choix”, écrit-il dans le post. “De cette façon, je serai en mesure d’exécuter n’importe quel code externe sans limite de taille et sans problème.”

Weizman a ensuite montré comment il avait exécuté du code malveillant sur le domaine web.whatsapp.com en utilisant l’exploit XSS pour charger l’iframe susmentionné. Cela crée la possibilité d’une exécution de code à distance, a-t-il dit.

«J’utilise ensuite l’iframe pour publier un message dans la fenêtre supérieure avec le contenu du code externe», a-t-il expliqué. «La fenêtre supérieure, où le XSS a été exécuté, reçoit le message de l’iframe, analyse le payload externe qu’il fournit et l’exécute dans son contexte (web.whatsapp.com). Gagner! Le payload externe a été récupéré et exécuté avec succès dans le contexte de WhatsApp! »

L’attaque entière peut être exécutée en un seul clic de l’utilisateur sur le message de prévisualisation modifié.

Weizman a souligné l’importance des règles CSP dans une application, ce qui aurait pu empêcher la vulnérabilité d’être exploitée en premier lieu.

“Si les règles CSP étaient bien configurées, les possibilités de ce XSS auraient été beaucoup plus petites”, a-t-il écrit. “Le fait de pouvoir contourner la configuration CSP permet à un pirate informatique de voler des informations précieuses à la victime, de charger facilement des payloads externes et bien plus encore!”

La plate-forme de bureau de WhatsApp n’est certainement pas la seule version du service de messagerie populaire à contenir des vulnérabilités. L’année dernière seulement, les chercheurs ont trouvé un certain nombre de failles dans la version d’application mobile de WhatsApp qui ont permis l’exécution de code à distance, la livraison de logiciels espions et l’exposition de fichiers multimédias personnels, entre autres.

Poster un Commentaire

avatar
  S’abonner  
Notifier de