Introduction

L'objectif de cette recherche est de comprendre le potentiel de la virtualisation d'applications en tant que vecteur d'attaque. Dans le cadre de cette recherche, une douzaine d'applications de virtualisation ont été testées dans des cas d'utilisation courants et comme outils de piratage. Protection des applications pour les produits Android a été évaluée comme solution d'atténuation avec toutes les applications de virtualisation testées.

Applications de virtualisation pour une utilisation « normale »

La plupart des applications de virtualisation disponibles pour les utilisateurs « normaux » sont téléchargeables sur le Google Play Store. Ces applications comptent des centaines de millions de téléchargements. L'une des plus populaires est : espace parallèleCes applications ciblent principalement les personnes possédant plusieurs comptes sur des applications spécifiques, comme 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 comme outils de piratage

À l'autre extrémité du spectre des utilisateurs se trouvent les pirates informatiques. La virtualisation peut être utilisée à diverses fins. 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 – logiciels comme GameGuardian L'exécution dans un environnement virtualisé permet de réaliser presque tout ce qu'elle pourrait faire sur un appareil rooté.
  • L'interception (ou hooking) – un logiciel de virtualisation comme VirtualXposed – permet d'injecter des modules Xposed dans des applications virtualisées, modifiant ainsi leur comportement. Par exemple, VirtualXposed pourrait être utilisé pour contourner les publicités sur l'application YouTube.
  • Accès root factice : 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 accès root factice pourrait être utilisé pour exécuter… Frida serveur sur un appareil non rooté.
  • La géolocalisation virtuelle – 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 s'appuient 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.
Applications de virtualisation Game Guardian

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, et pas nécessairement en virtualisant le système Android. La virtualisation d'applications est un terme approprié pour désigner l'exécution d'applications dans un environnement hétérogène. Voici quelques exemples parmi les nombreuses variantes de la 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 y isolant l'application virtualisée. Un profil professionnel est un espace configuré sur un appareil Android pour 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 idée, 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 pirates de jeux 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. AppCloner Cette application est un exemple de ce type d'application. AppCloner est également 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 utilisant 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 d'une telle 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 d'une image ROM (mémoire morte). Ce type de virtualisation est le plus lent, mais aussi le plus puissant, car il émule littéralement l'ensemble 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 ni connaître son 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 qui virtualisent 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 implémentation réussie peut être totalement indétectable. Application virtuelle est l'une des virtualisations partielles d'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 confidentialité, l'application de virtualisation dispose également de privilèges plus étendus que toute autre application tierce installée sur Android. Rien ne garantit donc qu'elle n'exploite pas ces privilèges pour dérober les informations personnelles des utilisateurs.

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.

Évaluation des applications de virtualisation

Cette section passe en revue les applications de virtualisation open source et propriétaires les plus populaires. Chaque application est évaluée selon sa facilité d'utilisation, sa simplicité de compilation ou de modification, et son efficacité. Protection des applications pour Android Il est possible de se prémunir contre les attaques dans un environnement virtualisé. Nous avons tenté de répertorier des applications représentatives de toutes les méthodes de virtualisation. Certaines applications étant plus populaires que d'autres, elles sont présentées par ordre de popularité décroissante.

Open source:

 

Application virtuelle

https://github.com/asLody/VirtualApp

Il s'agit d'un système Android partiellement virtualisé. La liste complète des fonctionnalités est disponible dans le projet. Lisez-moi.MDCe projet était open source jusqu'en 2017 et n'a pas été mis à jour depuis. Cependant, les clients premium peuvent toujours obtenir les versions plus récentes, dont le code source est désormais fermé. Aucun binaire précompilé n'est disponible sur GitHub. La compilation du code source est complexe et de nombreuses erreurs nécessitent une correction manuelle. Le projet compte de nombreux forks. Le fork suivant prend en charge les versions d'Android sorties après 2017 :

https://github.com/ServenScorpion/VirtualApp

Nos premières tentatives de compilation Application virtuelle Le projet a échoué, mais il est considéré comme une source d'inspiration pour d'autres projets de virtualisation. La protection des applications pour Android a déclenché une détection de virtualisation.

VirtuelXposed

https://github.com/android-hacker/VirtualXposed

Le VirtuelXposed est une autre virtualisation partielle d'Android basée sur Application virtuelle . VirtuelXposed Sa principale caractéristique est de permettre l'utilisation du framework Xposed sur un appareil non rooté dans un environnement virtualisé. Ce projet souffre de problèmes de stabilité. VirtuelXposed L'installation de l'extension Xposed a échoué sur les deux appareils utilisés pour les tests. Sur l'un des appareils VirtuelXposed L'application virtualisée n'a même pas pu se lancer. De nombreux autres projets tentent de reproduire ce problème. VirtuelXposed idée.

La protection des applications pour Android déclenche les mécanismes suivants : détection de virtualisation, détection de hook, détection d’instrumentation dynamique, détection de root, vérification de signature et détection d’émulateur, ce qui provoque le plantage de l’application.

 

VirtualApp2022

https://github.com/justin0kg/VirtualApp2022

Inspiré par le VirtuelXposed et basé sur Application virtuelleFonctionne parfaitement sous Android 11. Lisez-moi.MD Le développeur indique qu'il prend en charge les plugins Xposed.

Protection des applications pour Android déclenchée : Virtualisation détection

 

Twoyi

https://github.com/twoyi/twoyi

Twoyi est une application système Android qui virtualise des images ROM complètes. Par défaut, elle virtualise Android 8.1.0 avec une application Superuser préinstallée. Twoyi Il peut virtualiser des images ROM personnalisées ; il pourrait, en théorie, être utilisé pour virtualiser des ROM patchées avec Magisk, exécuter LSPosed ou d'autres outils de sécurité.

Protection des applications pour Android déclenchée : détection de root et détection d’émulateur

 

MultiApp

https://github.com/WaxMoon/MultiApp

MultiApp fonctionne bien. Il est difficile de déterminer la technique de virtualisation exacte utilisée, mais il s'agit probablement d'une virtualisation partielle du système Android ou d'une virtualisation des applications en tant qu'hôte. Ce projet n'est que partiellement ouvert : l'interface utilisateur et le lanceur de l'application sont open source, mais la logique de virtualisation principale est fournie dans des fichiers JAR et APK précompilés.

Protection des applications pour Android déclenchée : Détection de virtualisation

 

Taï chi

https://github.com/taichi-framework/TaiChi

VirtuelXposed Application de virtualisation inspirée permettant d'utiliser des modules Xposed sur des appareils non rootés. Malheureusement, ce projet est instable : l'installation et l'exécution d'applications virtualisées ont échoué sur les deux appareils de test.

Protection des applications pour Android déclenchée : Détection virtuelle

 

VirtualApk, Phantom et DroidPlugin

https://github.com/didi/VirtualAPK

https://github.com/ManbangGroup/Phantom

https://github.com/DroidPluginTeam/DroidPlugin

VirtualApk, Phantom, ainsi DroidPlugin Les projets sont des kits de développement logiciel (SDK) permettant aux utilisateurs de créer des applications hôtes capables de virtualiser des applications cibles. Faute de temps, ces frameworks n'ont pas été testés.

Protection des applications pour Android déclenchée : - Détection de virtualisation

 

Code source fermé :

Espace parallèle, espace dual et autres

https://play.google.com/store/apps/details?id=com.lbe.parallel.intl

https://play.google.com/store/apps/details?id=com.ludashi.dualspace&hl=en&gl=US

https://play.google.com/store/apps/details?id=com.excelliance.multiaccounts&hl=en&gl=US

https://play.google.com/store/apps/details?id=multi.parallel.dualspace.cloner&hl=en&gl=US

https://play.google.com/store/apps/details?id=com.cloneapp.parallelspace.dualspace&hl=en&gl=US

https://play.google.com/store/apps/details?id=com.excelliance.multiaccount&hl=en&gl=US

https://play.google.com/store/apps/details?id=com.excean.parallelspace&hl=en&gl=US

https://play.google.com/store/apps/details?id=do.multiple.cloner&hl=en&gl=US

https://www.apkmirror.com/apk/nox-ltd/noxapp-multiple-accounts-clone-app/

Parallel Space est l'une des applications de virtualisation les plus populaires du Google Play Store. Pour l'utiliser avec GameGuardian, il est nécessaire de télécharger une version « optimisée » non officielle de l'application depuis le forum GameGuardian.

GameGuardian versions optimisées :

https://gameguardian.net/forum/files/file/120-parallel-space-32-bit-support-64-bit-support/

https://gameguardian.net/forum/files/file/213-dualspace-32-bit-support-64-bit-support/

https://gameguardian.net/forum/files/file/194-virtual-space/

https://gameguardian.net/forum/files/file/225-octopus-32-bit-support-64-bit-support/

https://gameguardian.net/forum/files/file/122-go-multiple/

Protection des applications pour Android déclenchée : détection de virtualisation et détection d’instrumentation dynamique (falsification de la mémoire en espace parallèle détectée)

 

SpaceCore

https://github.com/FSpaceCore/SpaceCore

SpaceCore Il s'agit d'une nouvelle application de virtualisation partiellement open source. La logique de virtualisation est propriétaire. L'application ne peut pas être compilée à partir du code source car celui-ci est manquant. Les versions de démonstration sont stables et permettent d'exécuter la plupart des applications testées. Le menu contient un emplacement réservé pour Xposed Manager, qui n'est pas encore disponible.

Protection des applications pour Android déclenchée : Détection de virtualisation

 

AppCloner

https://appcloner.app/

AppCloner Il s'agit d'une virtualisation par reconditionnement qui consiste à reconditionner l'application cible sous un autre nom de package et à l'installer sur le système. Cette technique de virtualisation est simple, mais ne peut être utilisée conjointement avec d'autres outils malveillants pour altérer des applications cibles sans accès root.

Protection des applications pour Android déclenchée : Détection de virtualisation

 

Île

https://play.google.com/store/apps/details?id=com.oasisfeng.island&hl=en&gl=US&pli=1

Île Island est une solution de virtualisation basée sur les profils professionnels qui isole les applications au sein de ces profils. Lors de la création de la protection des applications pour la virtualisation Android, les rapports indiquaient qu'Island était utilisé pour isoler les applications cibles des autres applications. GameGuardian a été utilisé pour falsifier la mémoire de l'application sans être détecté.

Protection des applications pour Android déclenchée : Détection de virtualisation

Résumé

La virtualisation est utile aussi bien aux utilisateurs réguliers qu'aux pirates informatiques. De nombreuses applications de virtualisation permettent à ces derniers de créer virtuellement un environnement malveillant sur un appareil non rooté. Bien qu'il existe de nombreux projets open source, la plupart d'entre eux ne peuvent être compilés et modifiés facilement.

La virtualisation est mise en œuvre de nombreuses manières différentes, allant du reconditionnement d'applications à la virtualisation complète du système Android. Toutes les applications de virtualisation que nous avons testées pour cet article ont été détectées par le système. Protection des applications pour les produits Android.

Ressources supplémentaires

À propos Digital.ai

Digital.ai est une entreprise technologique de pointe qui se consacre à aider les entreprises du Global 5000 à atteindre leurs objectifs de transformation numérique. L'entreprise utilise l'IA pour… DevSecOps La plateforme unifie, sécurise et génère des analyses prédictives tout au long du cycle de vie du logiciel. Digital.ai permet aux organisations d'adapter leurs équipes de développement logiciel, de fournir en continu des logiciels de meilleure qualité et plus sûrs, tout en découvrant de nouvelles opportunités de marché et en améliorant la valeur commerciale grâce à des investissements logiciels plus intelligents.

Informations supplémentaires sur Digital.ai peut être trouvé à digital.ai et sur Twitter, LinkedIn et Facebook.

En savoir plus sur Digital.ai Application Security

Plateforme complète

Vous souhaitez continuer à explorer d'autres ressources ?