Introduction
L'objectif de cette recherche est de comprendre le potentiel d'utilisation de la virtualisation des applications comme vecteur d'attaque. Dans cette recherche, une douzaine d'applications de virtualisation ont été testées pour des cas d'utilisation réguliers et comme outils de piratage. Le Application Protection pour produit Android a été évalué comme une solution d'atténuation avec toutes les applications de virtualisation testées.
Applications de virtualisation pour une utilisation "normale"
La majorité des applications de virtualisation disponibles pour les utilisateurs "normaux" sont téléchargeables depuis le Google Play Store. Ces applications ont des centaines de millions de téléchargements. L'un des plus populaires est espace parallèle. Le public cible principal de ces applications sont les personnes qui ont plus d'un compte dans des applications spécifiques telles que les applications de médias sociaux. Les applications de virtualisation permettent aux utilisateurs finaux d'avoir plusieurs instances d'une seule application en cours d'exécution en même temps - pas besoin de se déconnecter et de se connecter à un autre compte. Certaines applications de virtualisation se présentent comme des applications améliorant la confidentialité. Les applications installées dans les espaces virtuels sont souvent - mais pas toujours - isolées du système Android normal 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. La virtualisation peut être utilisée pour différentes raisons. L'un des principaux avantages de la virtualisation est que les applications virtualisées ont plus de processus privilégiés que les applications ciblées, permettant ainsi à l'application de virtualisation d'interagir librement avec l'application cible. La virtualisation, d'une manière ou d'une autre, contourne le modèle de sécurité d'Android en créant un environnement plus permissif dans le bac à sable de l'application de virtualisation. De nombreux types d'applications de virtualisation fournissent un accès "faux root" et des services d'accrochage fournis par des frameworks d'accrochage comme Xposed. Et tout cela peut être réalisé sur un téléphone non rooté, ce qui signifie qu'une activité malveillante peut être effectuée sur des appareils vérifiés.
Les environnements virtualisés ouvrent des possibilités pour les activités malveillantes suivantes :
- Tricher dans les jeux -- logiciels comme GameGuardian s'exécuter dans un environnement virtualisé peut réaliser presque tout ce qu'il pourrait faire sur un appareil rooté.
- Hooking - un logiciel de virtualisation comme VirtualXposed permet l'injection de 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.
- Fake root -- certaines applications de virtualisation donnent accès à de faux "super utilisateurs" afin d'exécuter des logiciels avec des privilèges élevés. Par exemple, une fausse racine pourrait être utilisée pour exécuter le Frida serveur sur un appareil non rooté.
- Emplacement virtuel - la majorité des applications de virtualisation fournissent des services d'usurpation d'emplacement. Ceci est particulièrement utile pour contourner les vérifications basées sur la géolocalisation ou pour tricher dans des jeux basés sur la géolocalisation comme Pokémon Go.
- Analyse dynamique - certaines applications de virtualisation populaires sont open-source et peuvent être modifiées via des plugins personnalisés. Depuis le plug-in, les utilisateurs peuvent instrumenter dynamiquement des applications virtualisées, observer le comportement des applications et capturer le trafic réseau.
Catégories d'applications de virtualisation
La virtualisation des applications est un terme large. La virtualisation des applications peut être réalisée de différentes manières et pas nécessairement en virtualisant le système Android. La virtualisation des applications est un bon terme pour généraliser l'idée d'exécuter des applications dans un environnement irrégulier. Voici quelques-unes des nombreuses variantes de la virtualisation d'applications :
Isolement du profil professionnel
Certaines des applications de virtualisation réalisent la virtualisation en créant un profil de travail distinct et en isolant l'application virtualisée à l'intérieur. Un profil professionnel est une configuration sur un appareil Android pour séparer les applications et données « professionnelles » des applications et données personnelles. Le profil de travail réside sur une partie distincte de l'appareil, isolée du reste du système. Isoler une application avec un profil professionnel n'est pas nécessairement bon car une application potentiellement malveillante s'exécutant dans l'espace utilisateur normal, avec un accès root, ne peut probablement pas être détectée car l'application isolée du profil professionnel ne peut voir que les applications qui se trouvent dans le même profil professionnel. Par exemple, une telle 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 de travail isolé. "L'application Island est une application disponible gratuitement sur le Google Play Store et permet aux utilisateurs de cloner des applications particulières. L'application Island est également un bon exemple d'« isolation de profil professionnel »."
Clonage et reconditionnement
Un autre type d'application de virtualisation réalise la virtualisation en clonant ou en reconditionnant l'application cible. Habituellement, le processus est simple. En tant que référence, ces applications sont copiées et leur nom de package est modifié en une sorte de nom de package unique. Pour contourner toutes sortes de contrôles et de vérifications, ces applications de virtualisation injectent leur propre code dans les méthodes de correction ou d'accrochage qui sont responsables de la récupération du nom du package et de la signature, et d'autres méthodes pour faire croire à l'application qu'il s'agit de l'application d'origine. Étant donné que l'ID de l'application a changé, l'application d'origine 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 de virtualisation. Le AppCloner app 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'application » sont un autre type de technique de virtualisation. Les hôtes d'application virtualisent en chargeant l'application cible dans elle-même et en l'exécutant. Il s'agit d'une approche relativement simple pour virtualiser une application, mais elle comporte certaines limitations. Par exemple, ces hôtes d'application ne peuvent généralement exécuter qu'une seule instance de l'application à la fois, ou un nombre très limité d'applications en même temps. Certaines technologies de virtualisation qui utilisent une telle stratégie sont livrées sous forme de SDK permettant à l'utilisateur de créer sa propre application hôte pour des applications spécifiques avec des capacités spécifiques. De tels SDK ouvrent également des possibilités d'utilisation de frameworks d'accrochage et juste en général d'analyse dynamique d'application avec instrumentation. Apk virtuel 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'ensemble du système Android. Certains d'entre eux démarrent même l'ensemble du système Android à partir de n'importe quelle image ROM (mémoire en lecture seule). Ce type de virtualisation est le plus lent mais le plus puissant puisque cette approche émule littéralement l'ensemble du téléphone Android. Les images ou fichiers ROM personnalisés peuvent être corrigés, personnalisés, enracinés avec Magisk, etc. Il n'y a presque aucun moyen pour une application virtualisée d'interagir avec le système Android extérieur et de savoir ce qui s'y passe. Une telle virtualisation peut être utilisée pour 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 pourrait être enraciné et exécuter un logiciel d'analyse dynamique supplémentaire pour altérer l'application virtualisée. Deuxyi est l'une des applications les plus populaires qui virtualisent l'ensemble du système Android.
Virtualisation partielle du runtime Android
Enfin, certaines applications de virtualisation réalisent une virtualisation partielle du système Android. Habituellement, ces applications de virtualisation recréent la majorité du système Android à l'aide de proxys et de processus factices. L'accrochage est une partie très importante de ces techniques de virtualisation, car de nombreux éléments doivent être interceptés et corrigés lors de la communication entre les processus d'application virtualisés et le reste du système. De plus, cette méthode est compliquée à maintenir entre différentes versions d'Android et entre différents fournisseurs d'appareils Android. Habituellement, une telle approche de virtualisation souffre de problèmes de stabilité. Cependant, la technique de virtualisation d'exécution Android partielle est l'une des techniques de virtualisation les plus puissantes : une virtualisation d'exécution Android partielle bien implémentée peut être complètement indétectable. Application virtuelle est l'une des virtualisations d'exécution partielles Android les plus célèbres disponibles.
Les applications de virtualisation peuvent-elles être approuvées ?
Comme mentionné précédemment, les nombreuses applications de virtualisation de la boutique Google Play promettent d'augmenter la confidentialité pour faire croire aux utilisateurs réguliers que la virtualisation améliore la confidentialité des utilisateurs. Cette affirmation doit être prise avec un grain de sel. Le fait que l'application virtualisée soit isolée du reste du système augmente la confidentialité. Cependant, l'application de virtualisation a plus de privilèges sur l'application virtualisée que toute autre application tierce installée sur le système Android. Il n'y a aucune garantie que l'application de virtualisation n'utilise pas ces privilèges pour voler les informations personnelles des utilisateurs.
La majorité des applications de virtualisation regorgent de publicités. Certains d'entre eux injectent en fait du code publicitaire supplémentaire dans l'application virtualisée. Il existe un nombre presque infini de choses qui pourraient être injectées dans l'application virtualisée sans le consentement de l'utilisateur.
En outre, l'utilisation d'un logiciel de virtualisation peut aller à l'encontre des conditions d'utilisation de l'application virtualisée, ce qui signifie que l'utilisation d'un logiciel de virtualisation peut entraîner une interdiction de compte.
Évaluation des applications de virtualisation
Cette section passe en revue les applications de virtualisation open source et fermée les plus populaires. Chaque application est évaluée en fonction de sa convivialité, de sa facilité de compilation ou de modification et de sa qualité Protection des applications pour Android peut protéger contre les attaques dans l'environnement virtualisé. Nous avons essayé de répertorier les applications qui représentent tous les différents types de méthodes de virtualisation. Certaines applications sont plus populaires que d'autres, et les applications sont présentées dans un ordre approximatif, de la plus populaire à la moins populaire.
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 se trouve dans le projet LISEZMOI.MD. Ce projet était open-source jusqu'en 2017, et depuis lors, il n'a pas été mis à jour. Cependant, les clients premium peuvent toujours obtenir des versions plus récentes du code source désormais fermé. Il n'y a pas de binaires prédéfinis dans Github. La compilation de la source est difficile et de nombreuses erreurs nécessitent une correction manuelle. Le projet a de nombreuses bifurcations. Le fork suivant gère en fait les versions d'Android sorties après 2017 :
https://github.com/ServenScorpion/VirtualApp
Nos premières tentatives de compilation Application virtuelle a échoué, mais le projet est considéré comme une source d'inspiration pour d'autres projets de virtualisation. Protection des applications pour les gardes Android déclenchée : détection de la virtualisation
VirtuelXposed
https://github.com/android-hacker/VirtualXposed
Les VirtuelXposed est une autre virtualisation partielle d'Android basée sur le Application virtuelle . VirtuelXposed La principale caractéristique est qu'il permet d'utiliser le framework Xposed sur un appareil non rooté dans un environnement virtualisé. Ce projet souffre de problèmes de stabilité. VirtuelXposed n'a pas réussi à installer l'ajout Xposed sur les deux appareils utilisés pour les tests. Sur un seul appareil VirtuelXposed n'a même pas réussi à lancer l'application virtualisée. De nombreux autres projets tentent de reproduire VirtuelXposed idée.
La protection des applications pour les gardes Android déclenchée : la détection de la virtualisation, la détection du hook, la détection de l'instrumentation dynamique, la détection de la racine, la vérification de la signature et la détection de l'émulateur bloquent l'application.
Application virtuelle2022
https://github.com/justin0kg/VirtualApp2022
Inspiré par le VirtuelXposed et basé sur Application virtuelle. Fonctionne très bien sur Android 11. Dans le LISEZMOI.MD Le développeur déclare qu'il prend en charge les plugins Xposed.
Protection des applications pour les gardes Android déclenchée : virtualisation détection
Deuxyi
https://github.com/twoyi/twoyi
Deuxyi est une application système Android qui virtualise des images ROM entières. Par défaut, il virtualise Android 8.1.0 avec une application Superuser préinstallée. Parce que Deuxyi peut virtualiser des images ROM personnalisées, il pourrait, en théorie, être utilisé pour virtualiser la ROM corrigée avec Magisk, exécuter LSPosed ou exécuter d'autres outils de menace.
Protection des applications pour les gardes Android déclenchée : détection de la racine et détection de l'émulateur
Multi-application
https://github.com/WaxMoon/MultiApp
MultiApp fonctionne bien. Il est difficile de déterminer la technique de virtualisation exacte utilisée par plusieurs applications, mais il s'agit probablement soit d'une virtualisation partielle du système Android, soit de la virtualisation d'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 livrée dans des fichiers JAR et APK précompilés.
Protection des applications pour les gardes Android déclenchée : détection de la virtualisation
Taï chi
https://github.com/taichi-framework/TaiChi
VirtuelXposed application de virtualisation inspirée qui peut utiliser des modules Xposed sur des appareils non rootés. Malheureusement, ce projet n'est pas stable car il n'a pas réussi à installer ou à exécuter des applications virtualisées sur les deux appareils de test.
Protection des applications pour les gardes 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
Apk virtuel, Phantom, Plugin Droid Les projets sont des SDK qui permettent aux utilisateurs de créer des applications hôtes capables de virtualiser les applications cibles qu'ils contiennent. Faute de temps, ces cadres n'ont pas été testés.
Protection des applications pour les gardes Android déclenchée : - Détection de la virtualisation
Source fermée :
Espace parallèle, espace double 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/
L'une des applications de virtualisation les plus populaires du Google Play Store. Pour utiliser Parallel Space avec GameGuardian, une version « optimisée » non officielle de l'application Parallel Space doit être téléchargée 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 les gardes Android déclenchée : détection de la virtualisation et détection de l'instrumentation dynamique (altération de la mémoire de l'espace parallèle détectée)
EspaceCore
https://github.com/FSpaceCore/SpaceCore
EspaceCore est une nouvelle application de virtualisation partiellement open source. La logique de virtualisation est fermée. L'application ne peut pas être compilée à partir de la source car il manque la source de la bibliothèque principale. Les versions de démonstration sont stables et peuvent exécuter la plupart des applications testées. Le menu contient un espace réservé pour Xposed Manager qui n'est toujours pas disponible.
Protection des applications pour les gardes Android déclenchée : détection de la virtualisation
AppCloner
AppCloner est une virtualisation basée sur le reconditionnement qui reconditionne l'application cible sous un autre nom de package et l'installe sur le système. La technique de virtualisation est simple mais ne peut pas être utilisée avec d'autres outils de menace pour falsifier les applications cibles sans accès root.
Protection des applications pour les gardes Android déclenchée : détection de la virtualisation
Île
https://play.google.com/store/apps/details?id=com.oasisfeng.island&hl=en&gl=US&pli=1
Île est une solution de virtualisation basée sur les profils professionnels qui isole les applications dans les profils professionnels. Au cours de la protection des applications pour la virtualisation Android, les rapports de création de garde ont indiqué que Island était utilisé pour isoler les applications victimes des autres applications et GameGuardian a été utilisé pour falsifier la mémoire de l'application sans être détecté.
Protection des applications pour les gardes Android déclenchée : détection de la virtualisation
Résumé
La virtualisation est utile à la fois pour les utilisateurs réguliers et les pirates. De nombreuses applications de virtualisation permettent aux pirates de créer virtuellement un environnement malveillant sur un appareil non rooté. Même s'il existe de nombreux projets open source, la majorité d'entre eux ne peuvent pas être facilement compilés et modifiés.
La virtualisation est réalisée de différentes manières, du reconditionnement des 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 Application Protection pour produit Android.
Ressources additionnelles
À propos Digital.ai
Digital.ai est une entreprise technologique leader du secteur qui se consacre à aider les entreprises du Global 5000 à atteindre leurs objectifs de transformation numérique. L'intelligence artificielle de l'entreprise DevSecOps La plateforme unifie, sécurise et génère des informations prédictives tout au long du cycle de vie du logiciel. Digital.ai permet aux organisations de faire évoluer les équipes de développement de logiciels, de fournir en continu des logiciels avec une qualité et une sécurité accrues 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