Android logo

J'ai profité de mon vendredi pour me rendre au DevFest à Nantes, j'ai fait l'heureuse rencontre de Phillippe Prados un expert Android passionné travaillant chez Octo qui s'est amusé à lire de code de l'application System_app d'Android.

Le System_app est le composant applicatif qui vérifie les privilèges des applications Android et qui leur donne le droit d'accès aux périphériques du terminal (GPS, caméra, système de fichier ...). Après analyse, Philippe Prados s'est rendu compte que les privilèges n'étaient pas données à une application comme on pourrait l'imaginer, mais à un processus identifié par son PID. Hors un processus n'est pas forcément associé à une application sur Android, il est possible qu'une application X fonctionne dans le processus de l'application Y comme précisé dans le slide 17 de sa présentation.

C'est à ce moment qu'il s'est dit qu'il serait possible d'injecter des privilèges à une application en faisant en sorte qu'une application X fonctionne dans le processus Y . L'application X pourrait ainsi utiliser les privilèges de Y sans en informer l'utilisateur.

Philippe a réalisé un petit prototype démontrant la capacité entre applications d'échanger les privilèges, c'est totalement bluffant ! Le prototype démontre qu'il est possible pour une application de proposer dynamiquement à l'utilisateur d'accéder à de nouveaux privilèges, soit en installant une application tiers sur le Play Store sans en installant une mini-application embarquée par l'application si l'utilisateur a autorisé l'installation d'applications tierces.

Il a aussi profité de sa découverte pour publier une application Android listant les réelles privilèges d'une application Android et non pas seulement les privilèges affichés à l'utilisateur. Testez-là sur vos applications, vous verrez que les privilèges demandés aux utilisateurs ne sont pas toujours ceux réellement utilisés par l'application.


Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.