Stagefright : la faille Android reste exploitable et dangereuse

MobilitéOS mobilesSécurité
stagefright-2016

La faille Stagefright, qui touche les smartphones Android, refait surface avec une nouvelle méthode d’exploitation toujours basée sur des vidéos piégées.

Retour remarqué pour Stagefright.

La firme israélienne NorthBit a trouvé un nouveau moyen d’exploiter cette faille qui avait agité l’univers Android à l’été 2015… et que l’on croyait résorbée.

À l’époque, il avait fallu s’y reprendre à plusieurs fois, mais dans l’absolu, la brèche avait été colmatée. En tout cas telle que décrite par le dénommé Joshua J. Drake, c’est-à-dire basée sur l’envoi d’un MMS piégé.

Cette fois, il n’est pas question de textos, mais de pages Web malveillantes.

Si le vecteur d’attaque change, la vulnérabilité réside toujours dans Stagefright, cette bibliothèque logicielle qui assure le décodage et la lecture de fichiers multimédias.

Autre faille, autre méthode

La faille médiatisée l’année dernière impliquait d’envoyer, par MMS, un message vidéo spécialement conçu pour contourner les mécanismes de protection d’Android (sandbox) et permettre l’exécution de code à distance. Le tout sans nécessiter d’accès physique à l’appareil visé, ni d’interaction de la part de l’utilisateur (Stagefright analysant les fichiers avant même qu’ils soient ouverts).

Fondée pour partie sur des travaux de Google, la démonstration de NorthBit – document PDF, 38 pages – se déroule en plusieurs étapes. Réalisée avec succès sur un Nexus 5, un HTC One, un LG G3 et un Samsung Galaxy S5, elle fonctionne sur toutes les versions d’Android de la 2.2 « Froyo » à la 4.0 « Ice Cream Sandwich », ainsi que sur « Lollipop » (5.0, 5.1).

Alors que Joshua Drake s’était appuyé sur la faille CVE-2015-1538, les équipes de NorthBit ont choisi la CVE-2015-3864, plus simple à implémenter.

Le bug se trouve au niveau de la fonction tx3g associée au format de fichier MPEG-4 pour insérer des sous-titres. Certaines valeurs n’étant pas vérifiées, il est possible de causer un dépassement d’entier et ainsi d’accéder à la mémoire en écriture.

La vidéo piégée n’a pas besoin d’être ouverte. Stagefright n’a qu’à la parcourir (« parsing ») pour en analyser les métadonnées. L’attaque peut se faire via de nombreux vecteurs dont un site malveillant, une publicité détournée ou encore un QR code.

Paramètres aléatoires

La vidéo fait planter le serveur multimédia d’Android, qui se réinitialise. À ce moment-là, un code JavaScript récupère des informations à propos de l’appareil et les envoie au serveur, à travers certaines propriétés de la balise <video> (videoWidth, videoHeight, duration).

Le plus difficile dans l’affaire est de maintenir certains processus fonctionnels tout au long de l’opération. Ce qui implique notamment de jouer avec le cache du navigateur. Sans oublier une barrière supplémentaire sur Android 5.0 et 5.1 : l’ASLR (« Address Space Layout Randomisation »), ce mécanisme de randomisation qui décale régulièrement, sur les systèmes ARM, les pages mémoire d’un nombre aléatoire pour chaque processus lancé.

Ce nombre aléatoire reste le même tant que le processus est en exécution. Il est possible de le découvrir une fois qu’on a réuni suffisamment d’informations sur l’appareil. Pour cela, une deuxième vidéo est envoyée, contenant un code plus « spécifique » constitué grâce aux données récupérées avec la première vidéo.

Une troisième vidéo est utilisée pour transporter la charge utile, exécutée par Stagefright. Dès lors, c’est portes ouvertes sur presque tout le téléphone, de l’appareil photo à la mémoire de stockage.

Crédit photo : Pavel Ignatov – Shutterstock.com

Lire aussi :

Lire la biographie de l´auteur  Masquer la biographie de l´auteur