Publié: Mars 28, 2023
Introduction au monde de la virtualisation – Partie I
Par Egidijus Lileika, chercheur principal en sécurité
Cette recherche vise à comprendre le potentiel de la virtualisation d'applications comme vecteur d'attaque. Une douzaine d'applications de virtualisation ont été testées dans des cas d'utilisation classiques et comme outils de piratage. Le produit Application Protection for Android a été évalué comme solution d'atténuation des risques pour toutes les applications de virtualisation testées. Poursuivez votre lecture pour découvrir la première partie de cette série.
Applications de virtualisation pour une utilisation finale « normale »
La plupart des applications de virtualisation disponibles pour les utilisateurs classiques sont téléchargeables sur le Google Play Store. Ces applications cumulent des centaines de millions de téléchargements. Parmi les plus populaires, on trouve Parallel Space. Elles ciblent principalement les personnes possédant plusieurs comptes sur certaines applications, notamment les réseaux sociaux. Les applications de virtualisation permettent d'exécuter simultanément plusieurs instances d'une même application, sans avoir à se déconnecter et se reconnecter. Certaines applications de virtualisation se présentent comme des solutions pour renforcer la confidentialité. Les applications installées dans des espaces virtuels sont souvent, mais pas toujours, isolées du système Android principal d'une manière ou d'une autre.
Applications de virtualisation en tant qu'outils pour les acteurs malveillants
À l'autre extrémité du spectre des utilisateurs se trouvent les acteurs malveillants. La virtualisation peut être utilisée pour diverses raisons. L'un de ses principaux avantages est que les applications virtualisées disposent de processus plus privilégiés que les applications cibles, ce qui leur permet d'interagir librement avec ces dernières. D'une manière ou d'une autre, la virtualisation contourne le modèle de sécurité d'Android en créant un environnement plus permissif dans le bac à sable de l'application. De nombreuses applications de virtualisation offrent un accès root factice et des services d'interception fournis par des frameworks comme Xposed. Tout cela est possible sur un téléphone non rooté, ce qui signifie que des activités malveillantes peuvent être menées sur des appareils vérifiés.
Les environnements virtualisés offrent des possibilités pour les activités malveillantes suivantes :
- Tricher dans les jeux : Un logiciel comme GameGuardian, exécuté dans un environnement virtualisé, peut réaliser presque tout ce qu'il pourrait faire sur un appareil rooté.
- Affûtage : Les logiciels de virtualisation comme VirtualXposed permettent d'injecter des modules Xposed dans les applications virtualisées, modifiant ainsi leur comportement. Par exemple, VirtualXposed pourrait être utilisé pour contourner les publicités sur l'application YouTube.
- Faux root : Certaines applications de virtualisation permettent d'accéder à de faux « super-utilisateurs » afin d'exécuter des logiciels avec des privilèges élevés. Par exemple, un faux compte root pourrait être utilisé pour exécuter le serveur Frida sur un appareil non rooté.
- Emplacement virtuel : La plupart des applications de virtualisation proposent des services de falsification de localisation. Ceci est particulièrement utile pour contourner les vérifications basées sur la géolocalisation ou pour tricher dans des jeux comme Pokémon Go, qui reposent sur la géolocalisation.
- Analyse dynamique : Certaines applications de virtualisation populaires sont open source et peuvent être modifiées grâce à des plugins personnalisés. Ces plugins permettent aux utilisateurs d'instrumenter dynamiquement les applications virtualisées, d'observer leur comportement et de capturer le trafic réseau.

Figure 1 – Popularité des espaces virtuels respectifs auprès des utilisateurs de GameGuardian
catégories d'applications de virtualisation
La virtualisation d'applications est un terme générique. Elle peut être mise en œuvre de différentes manières, sans nécessairement virtualiser le système Android. Ce terme convient bien pour désigner l'exécution d'applications dans un environnement hétérogène. Voici quelques exemples de virtualisation d'applications :
Isolement du profil de travail
Certaines applications de virtualisation réalisent la virtualisation en créant un profil professionnel distinct et en isolant l'application virtualisée à l'intérieur de celui-ci. Un profil professionnel est une configuration sur un appareil Android permettant de séparer les applications et données professionnelles des applications et données personnelles. Ce profil professionnel réside dans une partie distincte de l'appareil, isolée du reste du système. Isoler une application avec un profil professionnel n'est pas forcément une bonne solution, car une application potentiellement malveillante exécutée dans l'espace utilisateur standard, avec un accès root, risque de ne pas être détectée, l'application isolée dans le profil professionnel ne pouvant voir que les applications présentes dans ce même profil. Par exemple, cette stratégie d'attaque est exploitée par des cybercriminels qui utilisent GameGuardian sur un appareil rooté avec des privilèges root et exécutent l'application cible dans le profil professionnel isolé. L'application Island, disponible gratuitement sur le Google Play Store, permet aux utilisateurs de cloner des applications spécifiques. Island est également un bon exemple d'« isolation par profil professionnel ».
Clonage et reconditionnement
Un autre type d'application de virtualisation réalise la virtualisation en clonant ou en reconditionnant l'application cible. Généralement, le processus est simple. Concrètement, ces applications sont copiées et leur nom de package est modifié pour devenir unique. Afin de contourner les contrôles et vérifications, ces applications de virtualisation injectent leur propre code pour modifier ou intercepter les méthodes responsables de la récupération du nom de package et de la signature, ainsi que d'autres méthodes permettant à l'application de se faire passer pour l'originale. L'identifiant de l'application ayant été modifié, l'application originale et l'application clonée peuvent coexister sur le même système Android. Ce type de virtualisation est le plus rapide car il n'y a pas de surcharge liée à la virtualisation. L'application AppCloner en est un exemple. Elle est disponible gratuitement sur le Google Play Store.
Hôtes d'applications
Les « hôtes d'applications » constituent une autre technique de virtualisation. Ils virtualisent l'application cible en la chargeant et en l'exécutant. Cette approche, relativement simple, présente toutefois certaines limitations. Par exemple, ces hôtes ne peuvent généralement exécuter qu'une seule instance de l'application à la fois, ou un nombre très limité d'applications simultanément. Certaines technologies de virtualisation employant cette stratégie sont distribuées sous forme de kits de développement logiciel (SDK), permettant à l'utilisateur de créer son propre hôte pour des applications spécifiques dotées de fonctionnalités particulières. Ces SDK offrent également la possibilité d'utiliser des frameworks d'interception et, plus généralement, d'effectuer une analyse dynamique des applications grâce à l'instrumentation. VirtualApk et Phantom sont des exemples notables de cette approche de virtualisation.
Virtualisation complète du système Android
Certaines applications de virtualisation virtualisent l'intégralité du système Android. Quelques-unes vont même jusqu'à démarrer le système Android complet à partir de n'importe quelle image ROM (mémoire morte). Ce type de virtualisation est le plus lent, mais aussi le plus puissant, car il émule littéralement l'intégralité du téléphone Android. Les images ou fichiers ROM personnalisés peuvent être modifiés, personnalisés, rootés avec Magisk, etc. Une application virtualisée ne peut quasiment pas interagir avec le système Android externe et en connaître le fonctionnement. Ce type de virtualisation permet d'exécuter des applications cibles dans des systèmes Android virtualisés d'apparence normale, sans accès root. Cependant, le système Android d'origine peut être rooté et exécuter un logiciel d'analyse dynamique supplémentaire pour manipuler l'application virtualisée. Twoyi est l'une des applications les plus populaires permettant de virtualiser l'intégralité du système Android.
Virtualisation partielle de l'environnement d'exécution Android
Enfin, certaines applications de virtualisation permettent une virtualisation partielle du système Android. Généralement, ces applications recréent la majeure partie du système Android à l'aide de proxys et de processus factices. L'interception et la correction d'événements sont essentielles dans ces techniques de virtualisation, car de nombreux éléments doivent être interceptés et modifiés lors des communications entre les processus de l'application virtualisée et le reste du système. De plus, cette méthode est complexe à maintenir entre différentes versions d'Android et pour différents fabricants d'appareils Android. Ce type de virtualisation souffre généralement de problèmes de stabilité. Cependant, la virtualisation partielle de l'environnement d'exécution Android est l'une des techniques les plus performantes : une virtualisation partielle bien implémentée peut être totalement indétectable. VirtualApp est l'une des solutions de virtualisation partielle de l'environnement d'exécution Android les plus connues.
Peut-on faire confiance aux applications de virtualisation ?
Comme mentionné précédemment, les nombreuses applications de virtualisation disponibles sur le Google Play Store promettent d'améliorer la confidentialité, incitant ainsi les utilisateurs à croire que la virtualisation renforce la protection de leurs données. Il convient toutefois de rester prudent face à cette affirmation. Si l'isolation de l'application virtualisée par rapport au reste du système contribue effectivement à une meilleure protection de la vie privée, l'application de virtualisation dispose néanmoins de privilèges plus étendus que toute autre application tierce installée sur Android. Rien ne garantit qu'elle n'exploite pas ces privilèges pour dérober les informations personnelles de l'utilisateur.
La plupart des applications de virtualisation sont surchargées de publicités. Certaines injectent même du code publicitaire supplémentaire dans l'application virtualisée. Le nombre d'éléments pouvant être injectés dans une application virtualisée sans le consentement de l'utilisateur est quasi infini.
De plus, l'utilisation de logiciels de virtualisation peut enfreindre les conditions d'utilisation de l'application virtualisée, ce qui signifie que l'utilisation de tels logiciels pourrait entraîner la suspension du compte.
Poursuivez la conversation dans la deuxième partie de cette série d'articles de blog, que vous pouvez trouver ici.
Vous aimerez aussi
Attaques d'IA agentiques : l'agent Smith sort de sa retraite
Les auteurs d'attaques contre l'évolution sans nature continuent de repousser les limites de l'IA…
Combattre le feu par le feu : utiliser l'IA pour combattre l'IA
Les attaques d'applications ont atteint 83 % en janvier 2025, contre 65 % juste…
Ce que Bad Guys 2 m'a appris sur l'asymétrie de l'information et le Application Security Problème que personne ne veut nommer
01 Ils étaient étudiants de votre travail Il y a un…