Pourquoi AVF ?

Les appareils informatiques mobiles traitent des quantités de plus en plus importantes de données personnelles sensibles. La présence de données aussi sensibles, aidée par la connexion constante avec le monde extérieur, a entraîné une augmentation des investissements de la part d'acteurs malveillants souhaitant exploiter les vulnérabilités pour atteindre leurs objectifs.

Les systèmes d'exploitation, à l'aide d'unités matérielles de gestion de la mémoire (MMU), fournissent des abstractions qui permettent d'isoler les processus non liés les uns des autres. Seuls les composants faisant partie du TCB sont autorisés à programmer directement ces MMU.

Ce modèle constitue le fondement de la façon dont la confidentialité et la sécurité ont été mises en œuvre depuis l'introduction des systèmes d'exploitation de type Unix. Cependant, cette exigence est devenue problématique dans la mesure où le TCB actuel est trop volumineux : il inclut la plupart des pilotes de périphériques et de bus, des planificateurs complexes, des systèmes de fichiers, une pile et des protocoles réseau, des caches, des analyseurs et chargeurs d'exécutables et des sockets. Il est devenu très difficile de garantir la sécurité de chaque recoin de ce système complexe.

Le noyau Linux contient plus de 20 millions de lignes de code et le taux de modifications et de réécritures est étonnant. Cette croissance est d’une immense aide pour Android et notre écosystème. Cependant, son TCB important rend difficile la garantie de l’absence de vulnérabilités exploitables.

Les fournisseurs de matériel ont développé des solutions, telles que TrustZone d'Arm, qui permettent aux processeurs de fonctionner en mode sécurisé et de marquer les transactions de mémoire comme « sécurisées » ou « non sécurisées ». Dans de tels systèmes, les données sensibles sont stockées et uniquement directement accessibles au monde sécurisé, qui fournit des services à la demande au monde non sécurisé.

La principale limite de ce type de solutions est que les domaines sont trop grossiers : uniquement sécurisés et non sécurisés. À mesure que de plus en plus de cas d'utilisation nécessitant une isolation du système d'exploitation sont introduits, la surface d'attaque augmente et les vulnérabilités sont susceptibles de conduire à la compromission de l'ensemble du périphérique.

Une autre limite des solutions actuelles est qu'elles sont conçues pour un monde relativement statique dans lequel toutes les ressources des cas d'utilisation sont comptabilisées et allouées à l'avance. Ces solutions ne conviennent pas aux cas d'utilisation dynamiques dans lesquels les ressources sont allouées à la demande.

De plus, les API utilisées en dehors du système d'exploitation Android sont fragmentées et restreignent notre capacité à déployer des cas d'utilisation à l'échelle Android, y compris des fondamentaux comme Keymint et Gatekeeper.

Pour remédier à ces limitations et permettre à Android de fournir une base solide pour les cas d'utilisation de nouvelle génération, Android 13 introduit la virtualisation sécurisée sous le nom d'Android Virtualization Framework (AVF).

L'objectif principal d'AVF est de fournir un environnement d'exécution sécurisé et privé pour les cas d'utilisation de nouvelle génération.