Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 

De la Théorie à la pratique











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Une vulnérabilité dans la bibliothèque Google Play Core n’est toujours pas corrigée dans les applications Google Play

décembre 2020 par Check Point

D’innombrables applications Android toujours vulnérables à un bug majeur, mettant en danger des centaines de millions d’utilisateurs.
De nombreuses applications sur le Play Store de Google sont encore vulnérables à un bug connu, CVE-2020-8913, qui permet aux acteurs de la menace d’injecter du code malveillant dans des applications vulnérables, afin d’accéder à toutes les mêmes ressources de l’application d’hébergement. Les acteurs de la menace peuvent utiliser les applications vulnérables pour usurper des données sensibles d’autres applications sur le même appareil, en volant les informations privées des utilisateurs, telles que les détails de connexion, les mots de passe, les détails financiers et le courrier.

• La faille de sécurité trouve son origine dans la bibliothèque Play Core de Google, très utilisée, qui permet aux développeurs d’intégrer des mises à jour et de nouveaux modules de fonctionnalités à leurs applications Android
• Google a corrigé la faille en avril 2020, mais les développeurs eux-mêmes doivent installer la nouvelle bibliothèque Play Core afin de faire disparaître complètement la menace
• Les chercheurs de Check Point ont sélectionné au hasard un certain nombre d’applications de premier plan pour confirmer l’existence de la vulnérabilité CVE-2020-8913. Vulnérabilité confirmée dans Grindr, Bumble, OKCupid, Cisco Teams, Moovit, Yango Pro, Edge, Xrecorder, PowerDirector
• Des chercheurs de Check Point démontrent l’exploitation de la vulnérabilité de l’application Google Chrome d’Android

Vue d’ensemble :
Une nouvelle vulnérabilité dans la bibliothèque Google Play Core a été publiée fin août, qui permet l’exécution locale de code (Local-Code-Execution, LCE) dans le contexte de toute application qui utilise la version vulnérable de la bibliothèque Google Play Core.
Dans ce document, nous analysons l’impact et l’ampleur de cette vulnérabilité du point de vue de la sécurité.

Contexte :
Qu’est-ce que la bibliothèque Google Play Core ?
Tiré de la documentation de développement Android de Google :

La bibliothèque Play Core Library est l’interface d’exécution de votre application avec Google Play Store. Voici quelques-unes des actions que vous pouvez effectuer avec Google Play Core :
• Télécharger des ressources linguistiques supplémentaires
• Gérer la fourniture de modules de fonctionnalités
• Gérer la fourniture de packs de ressources
• Déclencher des mises à jour dans l’application
• Demander des avis depuis l’application

Ainsi, la bibliothèque Google Play Core est une passerelle permettant d’interagir avec les services Google Play depuis l’application elle-même, à commencer par le chargement de code dynamique (comme le téléchargement de niveaux supplémentaires en cas de besoin uniquement), la fourniture de ressources localisées spécifiques et l’interaction avec les mécanismes d’avis de Google Play.

De nombreuses applications populaires utilisent cette bibliothèque, notamment :
• Google Chrome
• Facebook
• Instagram
• WhatsApp
• SnapChat
• Booking
• Edge

Facebook et Instagram représentent à eux seuls 5 milliards et 1 milliard de téléchargements respectivement à ce jour depuis Google Play Store. Imaginez le nombre d’appareils qui ont été touchés par cette vulnérabilité.

Qu’est-ce que CVE-2020-8913 ?

OverSecured a déjà présenté les aspects techniques de cette vulnérabilité. Pour une analyse technique plus approfondie, veuillez vous référer à son blog. Un bref aperçu : Dans la sandbox de chaque application, il existe deux dossiers : un pour les fichiers « vérifiés » reçus de Google Play, et un autre pour les fichiers « non vérifiés ». Les fichiers téléchargés depuis les services Google Play vont dans le dossier vérifié, tandis que les fichiers téléchargés d’autres sources sont envoyés dans le dossier non vérifié. Lorsqu’un fichier est écrit dans le dossier vérifié, il interagit avec la bibliothèque Google Play Core qui le charge et l’exécute.

Une intention exportée est une autre fonctionnalité qui permet à d’autres sources de pousser des fichiers dans la sandbox de l’application. Il existe cependant quelques limitations : le fichier est poussé dans le dossier non vérifié, et il n’est pas automatiquement traité par la bibliothèque. La vulnérabilité réside dans la combinaison des deux fonctionnalités mentionnées ci-dessus, et utilise également la traversée de fichiers, un concept aussi vieux qu’Internet lui-même. Lorsqu’une source tierce pousse un fichier dans une autre application, elle doit fournir un chemin d’accès pour que le fichier puisse être écrit. Lorsqu’un pirate utilise la traversée de fichiers (../verified_splits/mon_code_malveillant.apk), le code malveillant est écrit dans le dossier vérifié, et est automatiquement chargé dans l’application vulnérable et exécuté dans son contexte.

Google a corrigé cette vulnérabilité le 6 avril 2020.

Impact et ampleur :
Lorsque nous combinons des applications populaires qui utilisent la bibliothèque Play Core de Google et la vulnérabilité d’exécution locale de code, nous pouvons clairement voir les risques. Lorsqu’une application malveillante exploite cette vulnérabilité, elle peut exécuter du code dans des applications populaires et bénéficier du même accès que l’application vulnérable.

Les possibilités ne sont limitées que par notre créativité. Voici quelques exemples :
• Injection de code dans des applications bancaires pour s’emparer des identifiants, et en même temps bénéficier des autorisations sur les SMS pour voler les codes d’authentification à deux facteurs (2FA).
• Injection de code dans des applications d’entreprise pour accéder aux ressources de l’entreprise.
• Injection de code dans des applications de réseaux sociaux pour espionner la victime, et utiliser l’accès à la géolocalisation pour suivre l’appareil.
• Injection de code dans des applications de messagerie instantanée pour capturer tous les messages, et éventuellement envoyer des messages au nom de la victime.

Comme la vulnérabilité a été corrigée en avril, pourquoi s’inquiéter maintenant ? La réponse est que les développeurs doivent pousser le correctif dans leurs applications. Contrairement aux vulnérabilités côté serveur, qui peuvent être entièrement corrigées une fois que le correctif est appliqué sur le serveur, pour les vulnérabilités côté client, chaque développeur doit utiliser la dernière version de la bibliothèque et l’insérer dans son application.

Le facteur humain étant l’un des plus difficiles à surmonter en matière de sécurité, nous avons décidé de déterminer quelles applications ont corrigé la vulnérabilité et lesquelles sont encore vulnérables, afin d’avoir une meilleure compréhension globale de l’ampleur de la vulnérabilité.
Depuis la publication de cette vulnérabilité, nous avons commencé à surveiller les applications vulnérables.

Au cours du mois de septembre 2020, 13 % des applications Google Play analysées par SandBlast Mobile utilisaient cette bibliothèque, et 8 % de ces applications comprenaient une version vulnérable.

Nous avons également comparé les versions de septembre aux versions actuelles sur Google Play afin de voir quelles applications étaient encore concernées. À notre grande surprise, nous avons découvert une grande variété d’applications :
• Social – Viber
• Voyage – Booking
• Entreprises – Cisco Teams
• Cartes et navigation – Yango Pro (Taximètre), Moovit
• Rencontres – Grindr, OKCupid, Bumble
• Navigateurs – Edge
• Utilitaires – Xrecorder, PowerDirector

*Avant cette publication, nous avons informé toutes les applications de la vulnérabilité et de la nécessité de mettre à jour la version de la bibliothèque, afin de ne pas être affecté. D’autres tests montrent que Viber et Booking a été mis à jour avec des versions corrigées après notre notification.

Démo :
Comme le montre notre vidéo de démonstration, cette vulnérabilité est extrêmement facile à exploiter. Il suffit de créer une application « hello world » qui appelle l’intention exportée dans l’application vulnérable pour pousser un fichier dans le dossier des fichiers vérifiés avec le chemin d’accès au fichier. Vous pouvez ensuite regarder la magie opérer. Pour expliquer le ciblage d’une application spécifique, nous avons pris une version vulnérable de l’application Google Chrome et avons créé du code malveillant dédié pour récupérer ses favoris.


SandBlast Mobile peut détecter cette vulnérabilité à la fois dans des applications vulnérables légitimes et des applications malveillantes qui cherchent à l’exploiter.


Comment vous en protéger :
Check Point SandBlast Mobile est la solution leader du marché de défense contre les menaces mobiles, proposant l’ensemble le plus étendu de fonctionnalités pour vous aider à sécuriser votre main d’œuvre mobile. SandBlast Mobile assure une protection sur tous les vecteurs d’attaque mobiles, y compris contre le téléchargement d’applications malveillantes et d’applications contenant des logiciels malveillants.

Une étude menée par : Aviran Hazum, Jonathan Shimonovich




Voir les articles précédents

    

Voir les articles suivants