Auf Mobilgeräten werden immer größere Mengen an personenidentifizierbaren Daten verarbeitet. Die Präsenz solcher sensibler Daten in Verbindung mit der ständigen Verbindung zur Außenwelt hat zu mehr Investitionen von böswilligen Akteuren geführt, die Schwachstellen ausnutzen möchten, um ihre Ziele zu erreichen.
Betriebssysteme stellen mithilfe von Hardware-Speicherverwaltungseinheiten (MMUs) Abstraktionsschichten bereit, die nicht zusammenhängende Prozesse voneinander isolieren. Nur Komponenten, die Teil der Trusted Computing Base (TCB) sind, dürfen diese MMUs direkt programmieren.
Dieses Modell bildet seit der Einführung von Unix-ähnlichen Betriebssystemen die Grundlage für Datenschutz und Sicherheit. Diese Anforderung ist jedoch problematisch geworden, da das heutige TCB zu groß ist: Es umfasst die meisten Geräte- und Bustreiber, komplexe Scheduler, Dateisysteme, Netzwerkstacks und ‑protokolle, Caches, ausführbare Parser und Loader sowie Sockets. Es ist sehr schwierig geworden, dafür zu sorgen, dass alle Ecken dieses komplizierten Systems sicher sind.
Der Linux-Kernel enthält über 20 Millionen Codezeilen und die Rate von Änderungen und Umschreibungen ist erstaunlich. Dieses Wachstum ist eine große Hilfe für Android und unser Ökosystem. Aufgrund des großen TCB ist es jedoch schwierig, das Fehlen von ausnutzbaren Sicherheitslücken sicherzustellen.
Hardwareanbieter haben Lösungen entwickelt, wie z. B. TrustZone von Arm, mit denen Prozessoren im sicheren Modus ausgeführt werden und Speichertransaktionen als „sicher“ oder „unsicher“ getaggt werden können. In solchen Systemen werden sensible Daten in der sicheren Umgebung gespeichert und sind nur direkt für diese verfügbar. Sie stellt auf Anfrage Dienste für die nicht sichere Umgebung bereit.
Die Haupteinschränkung dieser Art von Lösungen besteht darin, dass die Domains zu grob sind: nur „sicher“ und „unsicher“. Je mehr Anwendungsfälle eingeführt werden, die eine Isolation vom Betriebssystem erfordern, desto größer wird die Angriffsfläche und Schwachstellen führen wahrscheinlich zum Zugriff auf das gesamte Gerät.
Eine weitere Einschränkung heutiger Lösungen besteht darin, dass sie für eine relativ statische Welt konzipiert sind, in der alle Ressourcen für Anwendungsfälle im Voraus berücksichtigt und zugewiesen werden. Diese Lösungen sind nicht gut genug für dynamische Anwendungsfälle, bei denen Ressourcen auf Anfrage zugewiesen werden.
Außerdem sind die APIs, die außerhalb des Android-Betriebssystems verwendet werden, fragmentiert und beschränken unsere Möglichkeiten, Anwendungsfälle im Android-Maßstab bereitzustellen, einschließlich grundlegender Funktionen wie Keymint und Gatekeeper.
Um diese Einschränkungen zu beheben und Android eine solide Grundlage für Anwendungsfälle der nächsten Generation zu bieten, wird in Android 13 die sichere Virtualisierung als Android Virtualization Framework (AVF) eingeführt.
Das Hauptziel von AVF besteht darin, eine sichere und private Ausführungsumgebung für Anwendungsfälle der nächsten Generation bereitzustellen.