Auf Mobilgeräten werden immer größere Mengen an personenbezogenen Daten verarbeitet. Das Vorhandensein solcher sensiblen Daten in Verbindung mit der ständigen Verbindung zur Außenwelt hat zu vermehrten Investitionen von böswilligen Akteuren geführt, die daran interessiert sind, Schwachstellen auszunutzen, um ihre Ziele zu erreichen.
Betriebssysteme bieten mithilfe von Hardware-Speicherverwaltungseinheiten (Memory Management Units, MMUs) Abstraktionen, 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 ist seit der Einführung von Unix-ähnlichen Betriebssystemen die Grundlage für die Implementierung von Datenschutz und Sicherheit. Diese Anforderung ist jedoch problematisch geworden, da die TCB von heute zu groß ist: Sie umfasst die meisten Geräte- und Bustreiber, komplexe Scheduler, Dateisysteme, Netzwerk-Stack und ‑Protokolle, Caches, Parser und Loader für ausführbare Dateien sowie Sockets. Es ist sehr schwierig geworden, dafür zu sorgen, dass jede Ecke dieses komplizierten Systems sicher ist.
Der Linux-Kernel umfasst über 20 Millionen Codezeilen und die Änderungs- und Überarbeitungsrate ist erstaunlich. Dieses Wachstum ist eine große Hilfe für Android und unser Ökosystem. Aufgrund der Größe der TCB ist es jedoch schwierig, das Fehlen ausnutzbarer Sicherheitslücken sicherzustellen.
Hardwareanbieter haben Lösungen wie Arm TrustZone entwickelt, mit denen Prozessoren im sicheren Modus ausgeführt werden können und Speichertransaktionen als „sicher“ oder „nicht sicher“ gekennzeichnet werden können. In solchen Systemen werden sensible Daten in der sicheren Welt gespeichert und sind nur dort direkt verfügbar. Die sichere Welt stellt der nicht sicheren Welt auf Anfrage Dienste zur Verfügung.
Die Hauptbeschränkung dieser Art von Lösungen besteht darin, dass die Domains zu grob sind: nur sicher und nicht sicher. Mit der Einführung weiterer Anwendungsfälle, die eine Isolation vom Betriebssystem erfordern, vergrößert sich die Angriffsfläche und Schwachstellen führen wahrscheinlich zu einer Kompromittierung des gesamten Geräts.
Eine weitere Einschränkung der aktuellen 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, in denen Ressourcen bei Bedarf zugewiesen werden.
Außerdem sind die APIs, die außerhalb des Android-Betriebssystems verwendet werden, fragmentiert und schränken unsere Möglichkeiten ein, Anwendungsfälle im Android-Maßstab bereitzustellen, einschließlich Grundlagen wie Keymint und Gatekeeper.
Um diese Einschränkungen zu beheben und Android als robuste Grundlage für Anwendungsfälle der nächsten Generation zu etablieren, wird mit Android 13 die sichere Virtualisierung als Android Virtualization Framework (AVF) eingeführt.
Das Hauptziel von AVF ist es, eine sichere und private Ausführungsumgebung für Anwendungsfälle der nächsten Generation zu schaffen.