Einleitung
Ziel dieser Forschung ist es, das Potenzial der Anwendungsvirtualisierung als Angriffsvektor zu verstehen. In dieser Untersuchung wurden ein Dutzend Virtualisierungs-Apps für reguläre Anwendungsfälle und als Hacking-Tools getestet. Der Anwendungsschutz für Android-Produkt wurde mit allen getesteten Virtualisierungs-Apps als Abhilfelösung bewertet.
Virtualisierungs-Apps für den „normalen“ Gebrauch
Die meisten Virtualisierungs-Apps, die „normalen“ Benutzern zur Verfügung stehen, können im Google Play Store heruntergeladen werden. Diese Apps haben Hunderte Millionen Downloads. Einer der beliebtesten ist parallel Space. Die primäre Zielgruppe dieser Apps sind Personen, die mehr als ein Konto in bestimmten Apps haben, beispielsweise in Social-Media-Apps. Mit Virtualisierungs-Apps können Endbenutzer mehrere Instanzen einer einzelnen App gleichzeitig ausführen – ohne dass sie sich abmelden und bei einem anderen Konto anmelden müssen. Einige Virtualisierungs-Apps präsentieren sich als Apps zur Verbesserung der Privatsphäre. In virtuellen Räumen installierte Apps sind oft – aber nicht immer – auf die eine oder andere Weise vom regulären Android-System isoliert.
Virtualisierungs-Apps als Hacker-Tools
Am anderen Ende des Benutzerspektrums stehen Hacker. Virtualisierung kann aus verschiedenen Gründen eingesetzt werden. Einer der Hauptvorteile der Virtualisierung besteht darin, dass virtualisierte Apps über privilegiertere Prozesse verfügen als Ziel-Apps, sodass die Virtualisierungs-App frei mit der Ziel-App interagieren kann. Die Virtualisierung umgeht auf die eine oder andere Weise das Sicherheitsmodell von Android, indem sie eine freizügigere Umgebung in der Sandbox der Virtualisierungs-App schafft. Viele Arten von Virtualisierungs-Apps bieten „falschen Root“-Zugriff und Hooking-Dienste, die von Hooking-Frameworks wie Xposed bereitgestellt werden. Und all dies kann auf einem nicht gerooteten Telefon erreicht werden – was bedeutet, dass böswillige Aktivitäten auf verifizierten Geräten ausgeführt werden können.
Virtualisierte Umgebungen eröffnen Möglichkeiten für die folgenden bösartigen Aktivitäten:
- Betrug in Spielen – Software wie GameGuardian Durch die Ausführung in einer virtualisierten Umgebung kann fast alles erreicht werden, was auch auf einem gerooteten Gerät möglich wäre.
- Hooking – Virtualisierungssoftware wie VirtualXposed ermöglicht die Injektion von Xposed-Modulen in virtualisierte Apps und verändert so deren Verhalten. Beispielsweise könnte VirtualXposed verwendet werden, um Werbung in der YouTube-App zu umgehen.
- Fake Root – einige Virtualisierungs-Apps gewähren gefälschten „Superuser“ Zugriff, um Software mit erweiterten Berechtigungen auszuführen. Zum Beispiel könnte ein gefälschter Root verwendet werden, um das auszuführen Frida Server auf einem nicht gerooteten Gerät.
- Virtueller Standort – die meisten Virtualisierungs-Apps bieten Standort-Spoofing-Dienste. Dies ist besonders nützlich, um geolokalisierungsbasierte Überprüfungen zu umgehen oder in geolokalisierungsbasierten Spielen wie Pokémon Go zu schummeln.
- Dynamische Analyse – einige beliebte Virtualisierungs-Apps sind Open Source und können durch benutzerdefinierte Plugins geändert werden. Innerhalb des Plugins können Benutzer virtualisierte Anwendungen dynamisch instrumentieren, das Anwendungsverhalten beobachten und den Netzwerkverkehr erfassen.
Kategorien für Virtualisierungs-Apps
App-Virtualisierung ist ein weit gefasster Begriff. App-Virtualisierung kann auf viele verschiedene Arten erreicht werden und nicht unbedingt durch Virtualisierung des Android-Systems. App-Virtualisierung ist ein guter Begriff, um die Idee der Ausführung von Anwendungen in einer unregelmäßigen Umgebung zu verallgemeinern. Im Folgenden sind einige der vielen verschiedenen Varianten der App-Virtualisierung aufgeführt:
Isolierung des Arbeitsprofils
Einige der Virtualisierungs-Apps erreichen die Virtualisierung, indem sie ein separates Arbeitsprofil erstellen und die darin enthaltene virtualisierte App isolieren. Ein Arbeitsprofil ist eine Einrichtung auf einem Android-Gerät, um „berufliche“ Apps und Daten von persönlichen Apps und Daten zu trennen. Das Arbeitsprofil befindet sich in einem separaten Teil des Geräts, der vom Rest des Systems isoliert ist. Das Isolieren einer App mit einem Arbeitsprofil ist nicht unbedingt gut, da eine potenziell schädliche App, die im regulären Benutzerbereich mit Root-Zugriff ausgeführt wird, wahrscheinlich nicht erkannt werden kann, da die vom Arbeitsprofil isolierte App nur Apps sehen kann, die sich im selben Arbeitsprofil befinden. Eine solche Angriffsstrategie wird beispielsweise von Spiele-Hackern missbraucht, die GameGuardian auf einem gerooteten Gerät mit Root-Rechten verwenden und die Zielanwendung im isolierten Arbeitsprofil ausführen. „Die Island-App ist eine Anwendung, die im Google Play Store kostenlos verfügbar ist und es Benutzern ermöglicht, bestimmte Anwendungen zu klonen. Die Island-App ist auch ein gutes Beispiel für die „Isolation von Arbeitsprofilen“.“
Klonen und Umpacken
Eine andere Art von Virtualisierungs-App erreicht die Virtualisierung durch Klonen oder Neupacken der Zielanwendung. Normalerweise ist der Prozess unkompliziert. Grundsätzlich werden diese Apps kopiert und ihr Paketname wird in einen eindeutigen Paketnamen geändert. Um alle Arten von Prüfungen und Verifizierungen zu umgehen, fügen solche Virtualisierungs-Apps ihren eigenen Code in Patch- oder Hook-Methoden ein, die für den Abruf von Paketnamen und Signaturen verantwortlich sind, sowie andere Methoden, um der Anwendung vorzutäuschen, dass es sich um die Original-App handelt. Da sich die Anwendungs-ID geändert hat, können sowohl die ursprüngliche als auch die geklonte App auf demselben Android-System koexistieren. Diese Art der Virtualisierung ist die schnellste, da kein Virtualisierungsaufwand entsteht. Der AppCloner app ist ein Beispiel für diese Art von App. AppCloner ist auch im Google Play Store frei verfügbar.
Anwendungshosts
„Anwendungshosts“ sind eine andere Art von Virtualisierungstechnik. Anwendungshosts virtualisieren, indem sie die Zielanwendung in sich selbst laden und ausführen. Dies ist ein relativ einfacher Ansatz zur Virtualisierung einer App, der jedoch mit gewissen Einschränkungen verbunden ist. Beispielsweise können solche Anwendungshosts in der Regel jeweils nur eine einzelne Instanz der App oder eine sehr begrenzte Anzahl von Apps gleichzeitig ausführen. Einige Virtualisierungstechnologien, die eine solche Strategie nutzen, werden als SDKs ausgeliefert, die es dem Benutzer ermöglichen, seine eigene Host-App für bestimmte Apps mit bestimmten Funktionen zu erstellen. Solche SDKs eröffnen auch Möglichkeiten für die Verwendung von Hooking-Frameworks und ganz allgemein für die dynamische Analyse von Anwendungen mit Instrumentierung. VirtualApk und Phantom sind bemerkenswerte Beispiele für einen solchen Virtualisierungsansatz.
Komplette Android-Systemvirtualisierung
Einige Virtualisierungs-Apps virtualisieren das gesamte Android-System. Einige von ihnen booten sogar das gesamte Android-System von jedem ROM-Image (Nur-Lese-Speicher). Diese Art der Virtualisierung ist die langsamste, aber leistungsstärkste, da dieser Ansatz buchstäblich das gesamte Android-Telefon emuliert. Benutzerdefinierte ROM-Images oder -Dateien können mit Magisk gepatcht, angepasst, gerootet usw. werden. Es gibt fast keine Möglichkeit für eine virtualisierte Anwendung, mit dem externen Android-System zu interagieren und zu wissen, was dort passiert. Eine solche Virtualisierung kann verwendet werden, um Zielanwendungen in normal aussehenden virtualisierten Android-Systemen ohne Root-Zugriff auszuführen. Das ursprüngliche Android-System könnte jedoch gerootet sein und zusätzliche dynamische Analysesoftware ausführen, um die virtualisierte App zu manipulieren. Twoyi ist eine der beliebtesten Apps, die das gesamte Android-System virtualisiert.
Teilweise Android-Laufzeitvirtualisierung
Zu guter Letzt erreichen einige Virtualisierungs-Apps eine teilweise Virtualisierung des Android-Systems. Normalerweise erstellen solche Virtualisierungs-Apps den Großteil des Android-Systems mithilfe von Proxys und Dummy-Prozessen neu. Hooking ist ein sehr wichtiger Teil solcher Virtualisierungstechniken, da während der Kommunikation zwischen virtualisierten App-Prozessen und dem Rest des Systems viele Dinge abgefangen und gepatcht werden müssen. Außerdem ist die Wartung dieser Methode zwischen verschiedenen Android-Versionen und über verschiedene Android-Geräteanbieter hinweg kompliziert. Normalerweise leidet ein solcher Virtualisierungsansatz unter Stabilitätsproblemen. Die Technik der partiellen Android-Laufzeitvirtualisierung ist jedoch eine der leistungsstärksten Virtualisierungstechniken: Eine gut implementierte partielle Android-Laufzeitvirtualisierung kann völlig unentdeckbar sein. VirtualApp ist eine der bekanntesten verfügbaren partiellen Android-Laufzeitvirtualisierungen.
Kann man Virtualisierungs-Apps vertrauen?
Wie bereits erwähnt, versprechen die vielen Virtualisierungs-Apps im Google Play Store eine Erhöhung der Privatsphäre, um normale Benutzer glauben zu lassen, dass Virtualisierung die Privatsphäre der Benutzer verbessert. Diese Behauptung ist mit Vorsicht zu genießen. Die Tatsache, dass die virtualisierte App vom Rest des Systems isoliert ist, erhöht die Privatsphäre. Allerdings verfügt die Virtualisierungs-App über mehr Privilegien gegenüber virtualisierten Apps als jede andere auf dem Android-System installierte Drittanbieteranwendung. Es gibt keine Garantie dafür, dass die Virtualisierungs-App diese Berechtigungen nicht nutzt, um die persönlichen Daten der Benutzer zu stehlen.
Die meisten Virtualisierungs-Apps sind voller Werbung. Einige von ihnen fügen tatsächlich zusätzlichen Adware-Code in die virtualisierte App ein. Es gibt nahezu unendlich viele Dinge, die ohne Zustimmung des Benutzers in die virtualisierte Anwendung eingefügt werden könnten.
Außerdem verstößt die Verwendung von Virtualisierungssoftware möglicherweise gegen die Nutzungsbedingungen der virtualisierten Anwendung, was bedeutet, dass die Verwendung von Virtualisierungssoftware zu einer Kontosperre führen kann.
Evaluierung von Virtualisierungs-Apps
In diesem Abschnitt werden die beliebtesten Open-Source- und Closed-Source-Virtualisierungs-Apps vorgestellt. Jede App wird hinsichtlich der Benutzerfreundlichkeit, der einfachen Kompilierung oder Änderung und ihrer Qualität bewertet Anwendungsschutz für Android kann vor Angriffen in der virtualisierten Umgebung schützen. Wir haben versucht, Anwendungen aufzulisten, die alle verschiedenen Arten von Virtualisierungsmethoden repräsentieren. Einige Apps sind beliebter als andere, und die Apps werden in grober Reihenfolge von den beliebtesten bis zu den am wenigsten beliebten Apps besprochen.
Open Source:
VirtualApp
https://github.com/asLody/VirtualApp
Hierbei handelt es sich um ein teilweise virtualisiertes Android-System. Die vollständige Funktionsliste finden Sie im Projekt README.MD. Dieses Projekt war bis 2017 Open-Source und wurde seitdem nicht aktualisiert. Premium-Kunden können jedoch weiterhin aktuellere Versionen des jetzt geschlossenen Quellcodes erhalten. In Github gibt es keine vorgefertigten Binärdateien. Das Kompilieren der Quelle ist eine Herausforderung und viele Fehler erfordern eine manuelle Korrektur. Das Projekt hat viele Forks. Der folgende Fork verwaltet tatsächlich Versionen von Android, die nach 2017 herauskamen:
https://github.com/ServenScorpion/VirtualApp
Unsere ersten Kompilierungsversuche VirtualApp scheiterte, aber das Projekt gilt als Inspiration für andere Virtualisierungsprojekte. Anwendungsschutz für Android-Guards ausgelöst: Virtualisierungserkennung
Virtualxposed
https://github.com/android-hacker/VirtualXposed
Die Virtualxposed ist eine weitere teilweise Android-Virtualisierung, die auf dem basiert VirtualApp Projekt. Virtualxposed Das Hauptmerkmal besteht darin, dass es die Verwendung des Xposed-Frameworks auf einem nicht gerooteten Gerät in einer virtualisierten Umgebung ermöglicht. Dieses Projekt leidet unter Stabilitätsproblemen. Virtualxposed Das Xposed-Add-On konnte auf beiden zum Testen verwendeten Geräten nicht installiert werden. Auf einem Gerät Virtualxposed Es gelang mir sogar nicht, die virtualisierte App zu starten. Viele andere Projekte versuchen es zu replizieren Virtualxposed Idee.
Der Anwendungsschutz für Android-Wächter wird ausgelöst: Virtualisierungserkennung, Hook-Erkennung, dynamische Instrumentierungserkennung, Root-Erkennung, Signaturprüfung und Emulatorerkennung führen zum Absturz der App.
VirtualApp2022
https://github.com/justin0kg/VirtualApp2022
Inspiriert durch die Virtualxposed und basierend auf VirtualApp. Funktioniert hervorragend auf Android 11. Im README.MD Der Entwickler gibt an, dass er Xposed-Plugins unterstützt.
Anwendungsschutz für Android-Guards ausgelöst: Virtualisierung Erkennung
Twoyi
https://github.com/twoyi/twoyi
Twoyi ist eine Android-System-App, die ganze ROM-Images virtualisiert. Standardmäßig virtualisiert es Android 8.1.0 mit einer vorinstallierten Superuser-App. Weil Twoyi kann benutzerdefinierte ROM-Images virtualisieren und könnte theoretisch dazu verwendet werden, mit Magisk gepatchte ROMs zu virtualisieren, LSPosed auszuführen oder andere Bedrohungstools auszuführen.
Anwendungsschutz für Android-Wächter ausgelöst: Root-Erkennung und Emulator-Erkennung
MultiApp
https://github.com/WaxMoon/MultiApp
MultiApp funktioniert gut. Es ist schwierig, die genaue Virtualisierungstechnik zu bestimmen, die Multiapp verwendet, aber es handelt sich wahrscheinlich entweder um eine teilweise Virtualisierung des Android-Systems oder um die Virtualisierung von Anwendungen als Host. Dieses Projekt ist nur teilweise offen. Die Benutzeroberfläche und der Launcher der App sind Open Source, die Hauptvirtualisierungslogik wird jedoch in vorkompilierten JARs und APKs geliefert.
Anwendungsschutz für Android-Guards ausgelöst: Virtualisierungserkennung
Tai Chi
https://github.com/taichi-framework/TaiChi
Virtualxposed inspirierte Virtualisierungs-App, die Xposed-Module auf nicht gerooteten Geräten verwenden kann. Leider ist dieses Projekt nicht stabil, da es auf beiden Testgeräten nicht möglich war, virtualisierte Apps zu installieren oder auszuführen.
Anwendungsschutz für Android-Wächter ausgelöst: Virtuelle Erkennung
VirtualApk, Phantom und DroidPlugin
https://github.com/didi/VirtualAPK
https://github.com/ManbangGroup/Phantom
https://github.com/DroidPluginTeam/DroidPlugin
VirtualApk, Phantom und DroidPlugin Projekte sind SDKs, die es Benutzern ermöglichen, Hostanwendungen zu erstellen, die darin enthaltene Zielanwendungen virtualisieren können. Aus Zeitgründen wurden diese Frameworks nicht getestet.
Anwendungsschutz für Android-Wächter ausgelöst: – Virtualisierungserkennung
Closed-Source:
Paralleler Raum, Dualer Raum und andere
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/
Eine der beliebtesten Virtualisierungs-Apps aus dem Google Play Store. Um Parallel Space mit GameGuardian nutzen zu können, muss eine inoffizielle „optimierte“ Version der Parallel Space-App aus dem GameGuardian-Forum heruntergeladen werden.
GameGuardian optimierte Versionen:
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/
Anwendungsschutz für Android-Wächter ausgelöst: Virtualisierungserkennung und dynamische Instrumentierungserkennung (Parallel Space-Speichermanipulation erkannt)
SpaceCore
https://github.com/FSpaceCore/SpaceCore
SpaceCore ist eine neue, teilweise Open-Source-Virtualisierungs-App. Die Virtualisierungslogik ist eine Closed-Source-Logik. Die App kann nicht aus der Quelle kompiliert werden, da ihr die Quelle der Kernbibliothek fehlt. Demo-Builds sind stabil und können die meisten getesteten Apps ausführen. Das Menü enthält einen Platzhalter für Xposed Manager, der noch nicht verfügbar ist.
Anwendungsschutz für Android-Guards ausgelöst: Virtualisierungserkennung
AppCloner
AppCloner ist eine auf Neuverpackung basierende Virtualisierung, die die Zielanwendung unter einem anderen Paketnamen neu verpackt und auf dem System installiert. Die Virtualisierungstechnik ist einfach, kann jedoch nicht zusammen mit anderen Bedrohungstools verwendet werden, um Zielanwendungen ohne Root-Zugriff zu manipulieren.
Anwendungsschutz für Android-Guards ausgelöst: Virtualisierungserkennung
Island
https://play.google.com/store/apps/details?id=com.oasisfeng.island&hl=en&gl=US&pli=1
Island ist eine auf Arbeitsprofilen basierende Virtualisierungslösung, die Apps innerhalb von Arbeitsprofilen isoliert. Während der Erstellung von Application Protection for Android Virtualization gaben Berichte an, dass Island verwendet wurde, um Opferanwendungen von anderen Apps zu isolieren GameGuardian wurde verwendet, um den Anwendungsspeicher unbemerkt zu manipulieren.
Anwendungsschutz für Android-Guards ausgelöst: Virtualisierungserkennung
Zusammenfassung
Virtualisierung ist sowohl für normale Benutzer als auch für Hacker nützlich. Viele Virtualisierungs-Apps ermöglichen es Hackern, virtuell eine bösartige Umgebung auf einem nicht gerooteten Gerät zu erstellen. Obwohl es viele Open-Source-Projekte gibt, können die meisten davon nicht einfach kompiliert und geändert werden.
Virtualisierung wird auf viele verschiedene Arten erreicht, angefangen bei der Neuverpackung von Anwendungen bis hin zur Virtualisierung des gesamten Android-Systems. Alle Virtualisierungs-Apps, die wir für dieses Dokument getestet haben, wurden von erkannt Anwendungsschutz für Android-Produkt.
Weitere Informationen
Über uns Digital.ai
Digital.ai ist ein branchenführendes Technologieunternehmen, das sich der Unterstützung von Global 5000-Unternehmen beim Erreichen ihrer digitalen Transformationsziele verschrieben hat. Das Unternehmen ist KI-betrieben DevSecOps Die Plattform vereinheitlicht, sichert und generiert prädiktive Erkenntnisse über den gesamten Software-Lebenszyklus. Digital.ai ermöglicht es Unternehmen, Softwareentwicklungsteams zu skalieren, kontinuierlich Software mit höherer Qualität und Sicherheit bereitzustellen und gleichzeitig neue Marktchancen zu erschließen und den Geschäftswert durch intelligentere Softwareinvestitionen zu steigern.
Weitere Informationen über Digital.ai finden Sie unter digital.ai und Twitter, LinkedIn und Facebook.
Erfahren Sie mehr unter Digital.ai Application Security