top of page

Les universitaires découvrent huit vulnérabilités dans les composants VoIP d’Android

Les universitaires découvrent huit vulnérabilités dans les composants VoIP d'Android

Une équipe d’universitaires a découvert huit vulnérabilités dans les composants VoIP du système d’exploitation Android. Ces vulnérabilités peuvent être exploitées pour passer des appels VoIP non autorisés, usurper l’identité de l’appelant, refuser des appels vocaux et même exécuter du code malveillant sur les appareils des utilisateurs.

Cette étude est la première du genre. Jusqu’à présent, les chercheurs et les universitaires ne se sont intéressés qu’aux caractéristiques de sécurité des équipements, serveurs et applications VoIP (VoIP) mobiles, mais aucun n’a analysé les composants VoIP d’Android.

L’équipe de recherche composée de trois personnes a entrepris de combler ce manque. Au cours des dernières années, ils ont mis au point trois méthodes d’analyse du backend VoIP d’Android et ont systématiquement passé au crible les composants pour détecter d’éventuelles failles de sécurité pouvant être exploitées par un attaquant.

La plupart de leurs tests ont consisté à utiliser du « fuzzing », une technique de test logiciel automatisée bien connue qui consiste à envoyer des données aléatoires et malformées dans un composant logiciel afin d’observer son comportement et de rechercher des anomalies dans les résultats, telles que des crashs ou des fuites de mémoire.

L’équipe de recherche a annoncé avoir analysé pour la première fois les API système et Android Intent en se concentrant sur les interactions avec les composants VoIP natifs du système d’exploitation. Ils ont ensuite installé un banc d’essai VoIP dans leur laboratoire et analysé les différents protocoles VoIP (tels que SIP [Protocole d’ouverture de session], SDP [Protocole de description de session] et RTP [Protocole de transport en temps réel].) Ils ont ensuite examiné manuellement les journaux et effectué des audits manuels du code, dernière étape de leurs recherches.

Ils ont uniquement testé les versions récentes du système d’exploitation Android, d’Android 7.0 (Nougat) à 9.0 de l’an dernier (Pie). Les travaux de l’équipe de recherche ont permis de découvrir neuf vulnérabilités, qui ont toutes été signalées à Google, et certaines corrigées. Sur les neuf, huit affectaient le backend VoIP d’Android, tandis qu’une neuvième (V1 dans le tableau ci-dessous) affectait une application tierce.


Vous trouverez ci-dessous une liste des neuf bugs :

V1: lancer un appel VoIP dans l’application VK

Un bug dans l’interaction de l’API Android Intent avec l’application officielle VK (vKontakte) peut permettre à une application malveillante installée sur l’appareil de démarrer un appel VoIP via l’application VK et d’écouter les conversations à proximité du propriétaire du téléphone.

Aucune interaction utilisateur n’est nécessaire pour exploiter ce bug. Bien qu’il nécessite un accès local, le bug est idéal pour être intégré aux logiciels espions Android, aux chevaux de Troie d’accès à distance (RAT) et autres types de programmes malveillants.

V2: Transfert d’appel non autorisé dans l’interface IMS

Des applications malveillantes sur le périphérique peuvent utiliser à mauvais escient deux API à privilège local (dans le composant VoIP de QtilMS) pour transférer des appels entrants sans autorisation vers le périphérique d’un attaquant

Ce problème a été corrigé en 2017 lorsque le problème a été découvert et a ensuite reçu l’identifiant CVE-2017-11042.

V3: spam d’appel en raison d’un nom SIP long

Il s’agit du premier de six problèmes pouvant être exploités à distance. Selon les chercheurs, les attaquants peuvent initier des appels sur le téléphone d’une victime en utilisant un nom SIP long (1 043 caractères).

Ce nom SIP remplit l’écran du téléphone de l’utilisateur et l’empêche de répondre à l’appel ou de le refuser. Si les attaquants enchaînent plusieurs appels les uns après les autres, ils peuvent empêcher l’utilisateur d’utiliser son téléphone pendant une période critique, par exemple lors d’une autre attaque, tels que le détournement d’un compte de messagerie ou le contournement de 2FA.


« Nous appelons ce type d’attaque par déni de service “une bombe d’appel VoIP “comme une bombe SMS », ont déclaré des chercheurs. Dans les versions actuelles du système d’exploitation Android, Google limite la taille du nom SIP dans les appels VoIP afin d’éviter les abus.

V4: Déni de service à distance sur un appel

Le quatrième bug peut également être exploité à distance. Les attaquants peuvent utiliser des paquets SDP mal formés pour bloquer le périphérique d’une victime lors de l’acceptation d’un appel entrant (voir l’image ci-dessus).

Tout comme les deux précédents, ce problème a été corrigé en 2017, après le rapport des chercheurs.

V5: exécution de code à distance en raison d’un buffer overflow

CVE-2018-9475, corrigé dans Android Oreo en 2018, constituait le pire problème rencontré par les chercheurs. Il s’agit d’un problème d’exécution de code à distance qui permettait aux attaquants d’exécuter du code malveillant sur un appareil distant via un appel VoIP.

Les chercheurs ont découvert qu’ils pouvaient provoquer un dépassement de tampon (buffer overflow) si un nom d’utilisateur (ou un numéro d’appelant) dans un appel VoIP comptait plus de 513 octets.

“Cette vulnérabilité permet à un adversaire d’écraser l’adresse de retour de la fonction ClccResponse, entraînant l’exécution de code à distance”, ont déclaré des chercheurs. Ce bug affectait toutes les versions d’Android jusqu’à la v9 (Pie), incluses.

V6: Déni de service à distance via Bluetooth une fois l’appel reçu

La V6 est similaire à la V5 et constitue également un bug qui peut également être exploité en passant des appels VoIP avec des numéros d’appelants longs, mais celui-ci provoque uniquement le blocage des téléphones, plutôt que de permettre à des attaquants d’exécuter du code sur le téléphone.

V7: fuite de données et déni de service permanent provoqué par un path traversal

Le septième bug qu’ils ont trouvé n’est pas exploitable à distance, ce qui signifie qu’il ne peut être utilisé que par d’autres applications malveillantes installées sur l’appareil.

Cependant, ce bug est assez grave. C’est un problème classique de path traversal ou directory traversal qui se produit car le protocole SIP et Android traitent les caractères “..” et “/” différemment.

Les chercheurs expliquent:

« Par exemple, en définissant physiquement “sipuser” et “serverip” dans le format de la figure 10 (a), mProfileDirectory devient “/data/data/-com.android.phone/files/alice/@SomeSite/../. ./../../../../sdcard/ “et permet de faire fuiter le fichier de profil SIP sur la carte SD. Un déni de service permanent peut également se produire si “serverip” est configuré pour écraser le fichier d’une autre application système, par exemple mmssms.db comme le montre la figure 10 (b). »


V8: Usurpation d’identité de l’appelant en raison d’une mauvaise analyse de “&”

Cette vulnérabilité est due au format de numéro PSTN (réseau téléphonique public commuté), qui ne prend pas en compte le caractère “&”.

Les appels VoIP entrants contenant des caractères “&” sont traités de façon particulière : le système d’exploitation Android ne lit que les numéros précédant le caractère, mais pas ceux venant après, ce qui permet ainsi une usurpation d’identité de l’appelant.


V9: Usurpation de l’identité de l’appelant en raison de “phone-context”

La neuvième et dernière vulnérabilité est également due au format de numéro PSTN (réseau téléphonique public commuté), mais cette fois via le paramètre PSTN “phone-context”. L’équipe de recherche explique :

« Par exemple, dans la convention PSTN, le nombre “650253000; phone-context = + 1” est équivalent à “+1650253000”, la valeur de “phone-context” devenant le préfixe du numéro. Cependant, une telle convention ne devrait pas s’appliquer aux appels VoIP, ce qui est malheureusement ignoré par l’application de numérotation. En conséquence, un adversaire peut intentionnellement définir le numéro de l’appelant sur “650253000; phone-context = + 1”, et l’application du numéroteur l’interprète en tant que “+1650253000” et l’affiche sous le nom de l’appel de Google, qui est clairement présenté à la Fig. 12 »

Le livre blanc complet s’intitule « Understanding Android VoIP Security: A System-level Vulnerability Assessment » et peut être téléchargé ici.

Les auteurs de l’article proviennent du laboratoire de cybersécurité OPPO ZIWU de Shenzen, en Chine, de l’Université chinoise de Hong Kong, et de la Singapore Management University.

0 vue0 commentaire

Comments


bottom of page