Introducción
El objetivo de esta investigación es comprender el potencial de la virtualización de aplicaciones para ser utilizada como vector de ataque. En esta investigación, se probaron una docena de aplicaciones de virtualización para casos de uso regulares y como herramientas de piratería. El Protección de aplicaciones para productos Android se evaluó como una solución de mitigación con todas las aplicaciones de virtualización probadas.
Aplicaciones de virtualización para uso “normal”
La mayoría de las aplicaciones de virtualización disponibles para usuarios "normales" se pueden descargar desde la tienda Google Play. Estas aplicaciones tienen cientos de millones de descargas. Uno de los más populares es Espacio paralelo. El público objetivo principal de estas aplicaciones son las personas que tienen más de una cuenta en aplicaciones específicas, como las aplicaciones de redes sociales. Las aplicaciones de virtualización permiten a los usuarios finales tener varias instancias de una sola aplicación ejecutándose al mismo tiempo, sin necesidad de cerrar sesión e iniciar sesión en otra cuenta. Algunas aplicaciones de virtualización se presentan como aplicaciones que mejoran la privacidad. Las aplicaciones instaladas en espacios virtuales a menudo, pero no siempre, están aisladas del sistema Android normal de una forma u otra.
Aplicaciones de virtualización como herramientas de hackers
En el otro extremo del espectro de usuarios están los piratas informáticos. La virtualización se puede utilizar por diferentes razones. Uno de los principales beneficios de la virtualización es que las aplicaciones virtualizadas tienen procesos más privilegiados que las aplicaciones específicas, lo que permite que la aplicación de virtualización interactúe libremente con la aplicación de destino. La virtualización, de una forma u otra, pasa por alto el modelo de seguridad de Android al crear un entorno más permisivo en la zona de pruebas de la aplicación de virtualización. Muchos tipos de aplicaciones de virtualización brindan acceso de "raíz falsa" y servicios de enganche proporcionados por marcos de enganche como Xposed. Y todo esto se puede lograr en un teléfono no rooteado, lo que significa que se puede realizar actividad maliciosa en dispositivos verificados.
Los entornos virtualizados abren posibilidades para las siguientes actividades maliciosas:
- Hacer trampa en los juegos -- software como GameGuardian ejecutarse en un entorno virtualizado puede lograr casi todo lo que podría hacer en un dispositivo rooteado.
- Enganche: el software de virtualización como VirtualXposed permite la inyección de módulos Xposed en aplicaciones virtualizadas, cambiando así su comportamiento. Por ejemplo, VirtualXposed podría usarse para evitar anuncios en la aplicación de YouTube.
- Raíz falsa: algunas aplicaciones de virtualización brindan acceso a "superusuarios" falsos para ejecutar software con privilegios escalados. Por ejemplo, se podría usar una raíz falsa para ejecutar el Frida servidor en un dispositivo no rooteado.
- Ubicación virtual: la mayoría de las aplicaciones de virtualización brindan servicios de suplantación de ubicación. Esto es particularmente útil para eludir las verificaciones basadas en geolocalización o para hacer trampa en juegos basados en geolocalización como Pokémon Go.
- Análisis dinámico: algunas aplicaciones de virtualización populares son de código abierto y se pueden modificar a través de complementos personalizados. Desde dentro del complemento, los usuarios pueden instrumentar dinámicamente las aplicaciones virtualizadas, observar el comportamiento de las aplicaciones y capturar el tráfico de la red.
Categorías de aplicaciones de virtualización
La virtualización de aplicaciones es un término amplio. La virtualización de aplicaciones se puede lograr de muchas maneras diferentes y no necesariamente mediante la virtualización del sistema Android. La virtualización de aplicaciones es un buen término para generalizar la idea de ejecutar aplicaciones en un entorno irregular. Los siguientes son algunos de los muchos sabores diferentes de virtualización de aplicaciones:
Aislamiento del perfil de trabajo
Algunas de las aplicaciones de virtualización logran la virtualización mediante la creación de un perfil de trabajo separado y el aislamiento de la aplicación virtualizada en su interior. Un perfil de trabajo es una configuración en un dispositivo Android para separar las aplicaciones y los datos del "trabajo" de las aplicaciones y los datos personales. El perfil de trabajo vive en una parte separada del dispositivo aislada del resto del sistema. Aislar una aplicación con un perfil de trabajo no es necesariamente bueno, ya que una aplicación potencialmente maliciosa que se ejecuta en el espacio de usuario normal, con acceso raíz, probablemente no se pueda detectar, ya que la aplicación aislada del perfil de trabajo solo puede ver las aplicaciones que están en el mismo perfil de trabajo. Por ejemplo, esta estrategia de ataque está siendo abusada por piratas informáticos que usan GameGuardian en un dispositivo rooteado con privilegios de root y ejecutan la aplicación de destino en el perfil de trabajo aislado. "La aplicación Island es una aplicación que está disponible gratuitamente en la tienda Google Play y permite a los usuarios clonar aplicaciones particulares. La aplicación Island también es un buen ejemplo de "aislamiento del perfil de trabajo"."
Clonación y Reempaquetado
Otro tipo de aplicación de virtualización logra la virtualización al clonar o volver a empaquetar la aplicación de destino. Por lo general, el proceso es sencillo. Como referencia, estas aplicaciones se copian y el nombre de su paquete se modifica a algún tipo de nombre de paquete único. Para eludir todo tipo de comprobaciones y verificaciones, estas aplicaciones de virtualización inyectan su propio código para parchear o enganchar métodos que son responsables de la recuperación del nombre y la firma del paquete, y otros métodos para hacer que la aplicación crea que es la aplicación original. Dado que la ID de la aplicación ha cambiado, tanto la aplicación original como la clonada pueden coexistir en el mismo sistema Android. Ese tipo de virtualización es la más rápida ya que no hay sobrecarga de virtualización. El Clonador de aplicaciones app es un ejemplo de este tipo de aplicación. Clonador de aplicaciones también está disponible gratuitamente en la tienda Google Play.
Anfitriones de aplicaciones
Los "hosts de aplicaciones" son otro tipo de técnica de virtualización. Los hosts de aplicaciones se virtualizan cargando la aplicación de destino en sí mismos y ejecutándolos. Este es un enfoque relativamente simple para virtualizar una aplicación, pero tiene ciertas limitaciones. Por ejemplo, dichos hosts de aplicaciones generalmente solo pueden ejecutar una única instancia de la aplicación a la vez, o una cantidad muy limitada de aplicaciones al mismo tiempo. Algunas tecnologías de virtualización que emplean dicha estrategia se envían como SDK, lo que permite al usuario crear su propia aplicación host para aplicaciones específicas con capacidades específicas. Dichos SDK también abren posibilidades para el uso de marcos de enlace y, en general, análisis dinámico de aplicaciones con instrumentación. VirtualApk y Fantasma son ejemplos notables de este enfoque de virtualización.
Virtualización completa del sistema Android
Algunas aplicaciones de virtualización están virtualizando todo el sistema Android. Algunos de ellos incluso están arrancando todo el sistema Android desde cualquier imagen ROM (memoria de solo lectura). Este tipo de virtualización es la más lenta pero la más poderosa, ya que este enfoque emula literalmente todo el teléfono Android. Las imágenes o archivos de ROM personalizados se pueden parchear, personalizar, rootear con Magisk, etc. Casi no hay forma de que una aplicación virtualizada interactúe con el sistema Android externo y sepa lo que está sucediendo allí. La virtualización como esta se puede usar para ejecutar aplicaciones de destino en sistemas Android virtualizados de aspecto normal sin acceso de root; sin embargo, el sistema Android original podría estar rooteado y ejecutar software de análisis dinámico adicional para manipular la aplicación virtualizada. dosyi es una de las aplicaciones más populares que virtualiza todo el sistema Android.
Virtualización parcial del tiempo de ejecución de Android
Por último, pero no menos importante, algunas aplicaciones de virtualización logran una virtualización parcial del sistema Android. Por lo general, estas aplicaciones de virtualización recrean la mayor parte del sistema Android utilizando proxies y procesos ficticios. El enganche es una parte muy importante de tales técnicas de virtualización, ya que muchas cosas deben interceptarse y parchearse durante la comunicación entre los procesos de aplicaciones virtualizadas y el resto del sistema. Además, este método es complicado de mantener entre diferentes versiones de Android y entre diferentes proveedores de dispositivos Android. Por lo general, este enfoque de virtualización adolece de problemas de estabilidad. Sin embargo, la técnica de virtualización parcial del tiempo de ejecución de Android es una de las técnicas de virtualización más poderosas: una virtualización parcial del tiempo de ejecución de Android bien implementada puede ser completamente indetectable. aplicación virtual es una de las virtualizaciones de tiempo de ejecución parciales de Android más famosas disponibles.
¿Se puede confiar en las aplicaciones de virtualización?
Como se mencionó anteriormente, las muchas aplicaciones de virtualización en la tienda Google Play prometen aumentar la privacidad para que los usuarios habituales crean que la virtualización mejora la privacidad del usuario. Esta afirmación debe tomarse con pinzas. El hecho de que la aplicación virtualizada esté aislada del resto del sistema aumenta la privacidad. Sin embargo, la aplicación de virtualización tiene más privilegios sobre la aplicación virtualizada que cualquier otra aplicación de terceros instalada en el sistema Android. No hay garantía de que la aplicación de virtualización no utilice esos privilegios para robar la información personal de los usuarios.
La mayoría de las aplicaciones de virtualización están repletas de anuncios. Algunos de ellos inyectan código publicitario adicional en la aplicación virtualizada. Hay una cantidad casi infinita de cosas que podrían inyectarse en la aplicación virtualizada sin el consentimiento del usuario.
Además, el uso de software de virtualización podría estar en contra de los términos de uso de la aplicación virtualizada, lo que significa que el uso de software de virtualización podría conducir a la prohibición de la cuenta.
Evaluación de aplicaciones de virtualización
Esta sección repasa las aplicaciones de virtualización de código abierto y de código cerrado más populares. Cada aplicación se evalúa en cuanto a usabilidad, facilidad de compilación o modificación, y qué tan bien Protección de aplicaciones para Android puede proteger contra ataques en el entorno virtualizado. Hemos intentado enumerar aplicaciones que representan todos los diferentes tipos de métodos de virtualización. Algunas aplicaciones son más populares que otras, y las aplicaciones se analizan en orden aproximado, desde la más popular hasta la menos popular.
Fuente abierta:
aplicación virtual
https://github.com/asLody/VirtualApp
Este es un sistema Android parcialmente virtualizado. La lista completa de características se puede encontrar en el proyecto LÉAME.MD. Este proyecto fue de código abierto hasta 2017 y desde entonces no se ha actualizado. Sin embargo, los clientes premium aún pueden obtener versiones más recientes del código fuente ahora cerrado. No hay binarios prediseñados en Github. Compilar la fuente es un desafío y muchos errores requieren una reparación manual. El proyecto tiene muchas bifurcaciones. La siguiente bifurcación en realidad mantiene versiones de Android que salieron después de 2017:
https://github.com/ServenScorpion/VirtualApp
Nuestros primeros intentos de compilar aplicación virtual fracasó, pero el proyecto se considera una inspiración para otros proyectos de virtualización. Protección de aplicaciones para guardias de Android activados: Detección de virtualización
virtualxpuesto
https://github.com/android-hacker/VirtualXposed
La virtualxpuesto es otra virtualización parcial de Android basada en el aplicación virtual proyecto. virtualxpuesto La característica principal es que permite usar el marco Xposed en un dispositivo no rooteado en un entorno virtualizado. Este proyecto tiene problemas de estabilidad. virtualxpuesto no se pudo instalar el complemento Xposed en ambos dispositivos utilizados para la prueba. en un dispositivo virtualxpuesto incluso no pudo iniciar la aplicación virtualizada. Muchos otros proyectos tratan de replicar virtualxpuesto idea.
Se activó la protección de aplicaciones para los protectores de Android: la detección de virtualización, la detección de ganchos, la detección de instrumentación dinámica, la detección de raíces, la verificación de firmas y la detección de emuladores bloquean la aplicación.
Aplicación Virtual2022
https://github.com/justin0kg/VirtualApp2022
Inspirado por el virtualxpuesto y basado en aplicación virtual. Funciona muy bien en Android 11. En el LÉAME.MD el desarrollador afirma que admite complementos Xposed.
Activación de protección de aplicaciones para guardias de Android: virtualización detección
dosyi
https://github.com/twoyi/twoyi
dosyi es una aplicación del sistema Android que virtualiza imágenes ROM completas. De forma predeterminada, virtualiza Android 8.1.0 con una aplicación de superusuario preinstalada. Porque dosyi puede virtualizar imágenes de ROM personalizadas, en teoría, podría usarse para virtualizar ROM parcheado con Magisk, ejecutar LSPosed o ejecutar otras herramientas de amenazas.
Protección de aplicaciones para guardias de Android activados: detección de raíz y detección de emulador
multiaplicación
https://github.com/WaxMoon/MultiApp
MultiApp funciona bien. Es difícil determinar la técnica de virtualización exacta que utiliza la multiaplicación, pero es probable que se trate de una virtualización parcial del sistema Android o de aplicaciones virtualizadas como host. Este proyecto solo está parcialmente abierto: la interfaz de usuario y el iniciador de la aplicación son de código abierto, pero la lógica de virtualización principal se envía en archivos JAR y APK precompilados.
Protección de aplicaciones para guardias de Android activados: Detección de virtualización
Tai Chi
https://github.com/taichi-framework/TaiChi
virtualxpuesto aplicación de virtualización inspirada que puede usar módulos Xposed en dispositivos no rooteados. Desafortunadamente, este proyecto no es estable ya que no pudo instalar o ejecutar aplicaciones virtualizadas en ambos dispositivos de prueba.
Protección de aplicaciones para guardias de Android activados: Detección virtual
VirtualApk, Phantom y DroidPlugin
https://github.com/didi/VirtualAPK
https://github.com/ManbangGroup/Phantom
https://github.com/DroidPluginTeam/DroidPlugin
VirtualApk, Fantasmay Complemento Droid Los proyectos son SDK que permiten a los usuarios crear aplicaciones host que pueden virtualizar aplicaciones de destino dentro de ellas. Debido a la falta de tiempo, estos marcos no fueron probados.
Protección de aplicaciones para guardias de Android activados: - Detección de virtualización
Fuente cerrada:
Espacio paralelo, espacio dual y otros
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/
Una de las aplicaciones de virtualización más populares de la tienda Google Play. Para usar Parallel Space con GameGuardian, se debe descargar una versión "optimizada" no oficial de la aplicación Parallel Space del foro de GameGuardian.
GameGuardian versiones optimizadas:
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/
Protección de aplicaciones para guardias de Android activados: Detección de virtualización y detección de instrumentación dinámica (se detectó manipulación de memoria de Parallel Space)
espacio
https://github.com/FSpaceCore/SpaceCore
espacio es una nueva aplicación de virtualización de código parcialmente abierto. La lógica de virtualización es de código cerrado. La aplicación no se puede compilar desde la fuente porque falta la fuente de la biblioteca principal. Las compilaciones de demostración son estables y pueden ejecutar la mayoría de las aplicaciones probadas. El menú contiene un marcador de posición para Xposed Manager que aún no está disponible.
Protección de aplicaciones para guardias de Android activados: Detección de virtualización
Clonador de aplicaciones
Clonador de aplicaciones es una virtualización basada en reempaquetado que vuelve a empaquetar la aplicación de destino con otro nombre de paquete y la instala en el sistema. La técnica de virtualización es simple pero no se puede usar junto con otras herramientas de amenazas para manipular aplicaciones de destino sin acceso de root.
Protección de aplicaciones para guardias de Android activados: Detección de virtualización
Islandia
https://play.google.com/store/apps/details?id=com.oasisfeng.island&hl=en&gl=US&pli=1
Islandia es una solución de virtualización basada en perfiles de trabajo que aísla las aplicaciones dentro de los perfiles de trabajo. Durante la protección de aplicaciones para la creación de guardias de virtualización de Android, los informes indicaron que Island se usó para aislar las aplicaciones de las víctimas de otras aplicaciones y GameGuardian se utilizó para manipular la memoria de la aplicación sin ser detectada.
Protección de aplicaciones para guardias de Android activados: Detección de virtualización
Resumen
La virtualización es útil tanto para los usuarios habituales como para los piratas informáticos. Muchas aplicaciones de virtualización permiten a los piratas informáticos crear virtualmente un entorno malicioso en un dispositivo no rooteado. Aunque hay muchos proyectos de código abierto, la mayoría de ellos no se pueden compilar ni modificar fácilmente.
La virtualización se logra de muchas maneras diferentes, desde el reempaquetado de aplicaciones hasta la virtualización de todo el sistema Android. Todas las aplicaciones de virtualización que probamos para este documento fueron detectadas por el Protección de aplicaciones para productos Android.
Recursos adicionales
Sobre Nosotros Digital.ai
Digital.ai es una empresa de tecnología líder en la industria dedicada a ayudar a las empresas Global 5000 a alcanzar los objetivos de transformación digital. La empresa impulsada por IA DevSecOps La plataforma unifica, protege y genera información predictiva a lo largo del ciclo de vida del software. Digital.ai empodera a las organizaciones para escalar los equipos de desarrollo de software, entregar continuamente software con mayor calidad y seguridad mientras descubren nuevas oportunidades de mercado y mejoran el valor comercial a través de inversiones de software más inteligentes.
Información adicional sobre Digital.ai se puede encontrar en digital.ai and on Twitter, LinkedIn y Facebook.
Conoce más en Digital.ai Application Security