Protocole RTP : comment un dépassement de tampon aurait pu permettre une prise de contrôle de votre téléphone !

Mobilité

Un bug apparemment exploitable dans WhatsApp aurait pu permettre à une personne malveillante de prendre le contrôle de votre téléphone. En effet, un dépassement de tampon aurait pu être déclenché par des données transmises via le flux audio et vidéo au cours d’un appel.

protocole RTP

Google vient de révéler des informations concernant un bug apparemment exploitable dans WhatsApp, qui auraient pu permettre à une personne malveillante de prendre le contrôle de votre appareil mobile.

Le simple fait de répondre à un appel aurait suffi à vous attirer des ennuis.

Natalie Silvanovich, chercheuse dans l’équipe Project Zero, a découvert un dépassement de tampon qui aurait pu être déclenché par des données transmises via le flux audio et vidéo au cours d’un appel.

WhatsApp, ainsi que de nombreuses autres applications d’appel en ligne, utilise le protocole RTP (acronyme de Real Time Protocol) pour la transmission de la voix et de la vidéo.

Le protocole RTP a été conçu pour être efficace, par exemple, il utilise l’UDP au lieu du TCP, de sorte que les données arrivent plus rapidement mais de manière moins fiable. En effet, les paquets UDP ne sont pas vérifiés pour savoir s’ils sont bien arrivés de l’autre côté et peuvent arriver dans le désordre, alors que les paquets TCP sont vérifiés et livrés dans l’ordre dans lequel ils ont été envoyés, ce qui entraîne une surcharge du réseau.

Si vous perdez des paquets de données, concernant une application que vous êtes en train de télécharger, le téléchargement complet sera corrompu et inutile. Si vous supprimez des paquets vocaux occasionnels, il ne restera que quelques instants inaudibles de l’appel en question.

Malheureusement, le protocole RTP compresse également ses données dans un format de paquet binaire qui doit être soigneusement analysé à l’autre extrémité, pour déterminer quel type de données a été envoyé, comment le déconstruire et quelle est la quantité de données transmise.

Les fautes et les erreurs de calcul lors de l’exploration de données binaires condensées, souvent appelée dans le jargon une analyse syntaxique (parsing), comme s’il s’agissait d’une traduction latine délicate, peuvent, à certains égards, facilement conduire à un déplacement incorrect de données dans la mémoire, par exemple en essayant d’ajuster 24 octets dans un espace destiné à en recevoir seulement 16 !

Ce type de bug s’appelle un dépassement de tampon. Si les octets supplémentaires empiètent sur des données qui seront utilisées ultérieurement dans le logiciel, vous risquez de compromettre la sécurité.

En conséquence, WhatsApp, et en fait toute application qui accepte et agit de manière régulière sur des données provenant de sources inconnues et non fiables, est particulièrement exposée aux risques de bugs dans le code principal qui traite les données reçues de l’extérieur.

La bonne nouvelle est que le bug a été signalé de manière responsable à la fin du mois d’août 2018, en application de la politique de divulgation de Google fixant le délai à 90 jours, et a été correctement corrigé durant cette période.

NB : La politique de divulgation de Google signifie que l’entreprise informera délibérément le monde entier du fonctionnement du bug après 90 jours. En conséquence, elle révélera peut-être même comment précisément utiliser le bug à des fins cybercriminelles, que vous l’ayez corrigé ou non. Cette règle stricte des 90 jours n’est pas populaire chez tout le monde, mais la théorie est que les éditeurs de logiciels réputés doivent pouvoir corriger les failles dans les 90 jours et ne voient pas ce délai comme représentant un problème particulier. En revanche, le délai de 90 jours est pratique pour obliger les entreprises, habituées à dissimuler les bugs sous le tapis, à prendre au sérieux la sécurité.

La mauvaise nouvelle, et nous espérons qu’il s’agit là d’une faute de frappe ou d’un mauvais choix de mots, est que Google a dévoilé les détails du bug avant l’expiration du délai de 90 jours, pensant qu’un correctif était facilement disponible !

Dans le commentaire annonçant les détails du bug, Silvanovich a déclaré : “Ce problème a été résolu le 28 septembre dans le client Android et le 3 octobre dans le client iPhone”.

La version la plus récente sur Google Play date du 8 octobre 2018, bien après la date limite fixée par Google, mais le plus récent logiciel iOS WhatsApp que nous avons pu trouver [le 2018-10-10T12: 00Z] est la version 2.18.93, datée du 1er octobre 2018.

Nous supposons donc que le commentaire de Silvanovich signifie : “Le 3 octobre 2018, ce bug était supposé avoir été corrigé dans le client officiel WhatsApp”, mais son texte pourrait être interprété ainsi : “Toute version antérieure au 3 octobre 2018 n’est pas encore patchée”.

Quoi faire ?

Quoi qu’il en soit, il s’agit d’un correctif qu’il vous faut absolument, alors assurez-vous que vos applications Android ou iOS se mettent vraiment à jour correctement.

Sous Android, ouvrez l’application Google Play, appuyez sur l’icône hamburger (trois lignes en haut à gauche) et recherchez dans l’onglet MISES À JOUR pour obtenir les nouvelles versions que vous n’avez pas encore installées.

Sur iOS, ouvrez l’application App Store et appuyez sur l’icône Mises à jour au bas de l’écran. Si vous avez des mises à jour en attente, elles seront alors visibles.

Nous vous suggérons de vérifier dans une semaine environ, période à laquelle une nouvelle mise à jour de WhatsApp sera probablement déjà disponible. Vous pourrez donc être sûr à ce moment-là d’être immunisé contre ce bug, quelle que soit votre manière d’interpréter les mots ambigus de Google.


Billet inspiré de How a WhatsApp call could have taken over your phone, sur Sophos nakedsecurity.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.