Los dispositivos de procesamiento móviles manejan cantidades cada vez mayores de datos personales sensibles. La presencia de datos tan sensibles, junto con la conexión constante con el mundo exterior, generó un aumento en las inversiones de los agentes maliciosos interesados en explotar vulnerabilidades para alcanzar sus objetivos.
Los sistemas operativos, con la ayuda de las unidades de administración de memoria (MMU) de hardware, proporcionan abstracciones que aíslan los procesos no relacionados entre sí. Solo los componentes que forman parte de la base de procesamiento de confianza (TCB) pueden programar directamente estas MMU.
Este modelo ha sido la base de la implementación de la privacidad y la seguridad desde la introducción de los sistemas operativos similares a Unix. Sin embargo, este requisito se ha convertido en un problema, ya que el TCB actual es demasiado grande: incluye la mayoría de los controladores de dispositivos y buses, programadores complejos, sistemas de archivos, pila y protocolos de red, memorias caché, analizadores y cargadores ejecutables, y sockets. Se ha vuelto muy difícil garantizar que cada rincón de este complicado sistema sea seguro.
El kernel de Linux tiene más de 20 millones de líneas de código, y la velocidad de los cambios y las reescrituras es asombrosa. Este crecimiento es de gran ayuda para Android y nuestro ecosistema. Sin embargo, su gran TCB dificulta garantizar la ausencia de vulnerabilidades explotables.
Los proveedores de hardware desarrollaron soluciones, como TrustZone de Arm, que permiten que los procesadores se ejecuten en modo seguro y etiqueten las transacciones de memoria como "seguras" o "no seguras". En estos sistemas, los datos sensibles se almacenan en el mundo seguro y solo están disponibles directamente para él, que proporciona servicios al mundo no seguro a pedido.
La principal limitación de este tipo de soluciones es que los dominios son demasiado generales: solo seguros y no seguros. A medida que se introducen más casos de uso que requieren aislamiento del sistema operativo, aumenta la superficie de ataque y es probable que las vulnerabilidades provoquen la vulneración de todo el dispositivo.
Otra limitación de las soluciones actuales es que están diseñadas para un mundo relativamente estático en el que todos los recursos de los casos de uso se tienen en cuenta y se asignan con anticipación. Estas soluciones no son lo suficientemente buenas para los casos de uso dinámicos en los que los recursos se asignan a pedido.
Además, las APIs que se usan fuera del sistema operativo Android están fragmentadas y restringen nuestra capacidad de implementar casos de uso a la escala de Android, incluidos los aspectos básicos como Keymint y Gatekeeper.
Para abordar estas limitaciones y permitir que Android proporcione una base sólida para los casos de uso de próxima generación, Android 13 presenta la virtualización segura como el marco de virtualización de Android (AVF).
El objetivo principal del AVF es proporcionar un entorno de ejecución seguro y privado para los casos de uso de próxima generación.