Stagefright (vulnérabilité)

est une faille logicielle affectant la bibliothèque logicielle multimédia Stagefright, exploitable à distance, trouvé dans plusieurs appareils et classé comme vulnérabilité dans le système d'exploitation Android. Cette vulnérabilité est également présente sur d'autres systèmes qui exploitent également cette bibliothèque logicielle, comme les consoles de jeu Nintendo Wii U et la New Nintendo 3DS, par exemple.

Appareils concernés 
Cette faille se trouve dans les appareils équipés de Android 2.2 à Android 5.1.1 ; il est estimé, à sa révélation, que 95 % des appareils Android sont affectés (ce qui équivaudrait à  d'unités). Depuis Android 4.0, la fonction de protection Address Space Layout Randomization (ASLR) rend difficile à exploiter cette vulnérabilité, mais pas impossible.

Symptômes 
Stagefright permet à un attaquant d'exécuter des opérations arbitraires sur le dispositif d'une victime par code à distance. Les chercheurs en sécurité démontrent le bug avec une preuve de concept qui envoie des MMS spécialement conçus pour le dispositif de la victime et dans la plupart des cas ne nécessite pas d'actions de la part de l'utilisateur final lors de la réception du message pour réussir. En utilisant le numéro de téléphone comme seule information cible. L'attaque sous-jacente exploite certaines vulnérabilités de débordement d'entier dans la composante de base d'Android appelée « Stagefright », qui est une bibliothèque de logiciels complexes implémentée en C++ dans le cadre du projet Open Source Android (PSBA) et utilisée pour lire différents formats multimédias tels que des fichiers MP4.

Découverte 
Le bug Stagefright a été découvert par Joshua Drake de la société en sécurité Zimperium et a été annoncé publiquement le . Avant l'annonce, Drake a signalé le bug à Google en , qui a incorporé une correction de bug lié dans ses référentiels de code source internes deux jours après le rapport. En , Evgeny Legerov, un chercheur en sécurité, basé à Moscou, a annoncé qu'il avait trouvé deux débordement de tas vulnérabilités similaires zero-day dans la bibliothèque Stagefright, affirmant que la bibliothèque avait déjà été exploitée pendant un certain temps. La divulgation publique complète du bogue est annoncée pour la conférence de sécurité informatique Black Hat USA le  et à la convention DEF CON 23 le . Le bogue a été fourni avec plusieurs identifiants de CVE, qui sont collectivement appelés le bug Stagefright.

Incidence 
Un fichier multimédia spécialement conçu, tel qu'un fichier MP4, peut faire planter le service multimédia. Ce plantage résulte en un débordement de tas (en anglais : ) pouvant être exploité pour exécuter du code malveillant. Sur un téléphone vulnérable, un attaquant peut s’octroyer les privilèges administrateur sans action de l'utilisateur et avoir accès à une grande partie de ses fonctionnalités, l'étendue de cela varie selon l'appareil attaqué. Le téléphone peut donc par exemple être utilisé comme dispositif d'écoute.

Les vecteurs de cette attaque sont nombreux, le code malicieux est en effet incorporé dans un fichier média (MP4, ...) spécialement conçu. Il peut alors être exécuté lors de la réception d'un MMS, d'un e-mail ou d'un message Hangouts contenant un tel fichier. Plus généralement, toute action impliquant que le service multimédia d'Android analyse le fichier malicieux est susceptible de déclencher l’exécution du code. La lecture d'un contenu multimédia dans le navigateur, le téléchargement d'un fichier, la réception de contenu par Bluetooth, la lecture d'un périphérique de stockage ou l'ouverture d'un fichier vCard sont ainsi des vecteurs potentiels pour cette attaque.

La réception d'un MMS malveillant est sûrement le vecteur le plus important de cette attaque car aucune action de la part de l'utilisateur n'est requise pour que le code soit exécuté : la réception d'un MMS déclenche en effet systématiquement l'analyse du fichier joint, et donc l’exécution du code malveillant, avant même de notifier l'utilisateur du nouveau message. Le seul moyen de se prémunir contre cela est de désactiver manuellement le téléchargement automatique des MMS.

Corrections 
En date du  seuls quelques produits ont été effectivement patchés contre le bug : les PrivatOS de Blackphone depuis sa version 117, communiqués nocturnes du CyanogenMod 12.0 et 12.1, de la variante de Sprint du Samsung Galaxy Note 4, et Mozilla Firefox depuis sa version 38 (ce navigateur Web utilise en interne la bibliothèque Stagefright d'Android). Alors que Google maintient le code source primaire d'Android, les mises à jour de firmware des appareils Android sont de la responsabilité des opérateurs téléphoniques et des fabricants (OEM). En conséquence, la multiplication des correctifs pour les dispositifs réels introduit souvent de longs retards en raison d'une grande fragmentation entre les fabricants, des variantes d'appareil, des versions d'Android et des diverses personnalisations effectuées par les fabricants. En outre, de nombreux appareils plus âgés peuvent ne jamais recevoir de firmware corrigé. Ainsi, la nature du bug Stagefright souligne les difficultés techniques et organisationnelles liées à la propagation de patches Android.

Certaines mesures de précaution sont possibles pour les appareils non patchés, y compris la désactivation de la récupération automatique des messages MMS et le blocage de la réception de messages texte provenant d'expéditeurs inconnus. Toutefois, ces mesures ne sont pas prises en charge par toutes les applications MMS (Hangouts, par exemple). Certaines des fonctions de sécurité intégrées dans les nouvelles versions d'Android peuvent aider à rendre l'exploitation du bug Stagefright plus difficile, comme l'Address Space Layout Randomization (ASLR) qui a été introduit dans Android 4.0 « Ice Cream Sandwich » et entièrement activé dans Android 4.1 « Jelly Bean ». Ainsi, cette mise à jour d'Android peut aider à se protéger de cette faille de sécurité, 

Cette faille de sécurité a conduit les équipes de Google à distribuer des patchs de sécurité chaque mois, comme le Patch Tuesday de Microsoft Windows.

Notes et références 

Bug