Mobile Computergeräte verarbeiten immer größere Mengen persönlich sensibler Daten. Das Vorhandensein solch sensibler Daten, unterstützt durch die ständige Verbindung zur Außenwelt, hat zu erhöhten Investitionen von böswilligen Akteuren geführt, die daran interessiert sind, Schwachstellen auszunutzen, um ihre Ziele zu erreichen.
Betriebssysteme stellen mit Hilfe von Hardware-Speicherverwaltungseinheiten (MMUs) Abstraktionen bereit, die es ermöglichen, nicht zusammenhängende Prozesse voneinander zu isolieren. Nur Komponenten, die Teil des TCB sind, dürfen diese MMUs direkt programmieren.
Dieses Modell bildet seit der Einführung Unix-ähnlicher Betriebssysteme die Grundlage für die Implementierung von Datenschutz und Sicherheit. Diese Anforderung ist jedoch insofern problematisch geworden, als der heutige TCB zu groß ist: Er umfasst die meisten Geräte- und Bustreiber, komplexe Scheduler, Dateisysteme, Netzwerkstapel und -protokolle, Caches, ausführbare Parser und Loader sowie Sockets. Es ist sehr schwierig geworden, sicherzustellen, dass jeder Winkel dieses komplizierten Systems sicher ist.
Der Linux-Kernel verfügt über mehr als 20 Millionen Codezeilen und die Geschwindigkeit der Änderungen und Neuschreibungen ist erstaunlich. Dieses Wachstum ist eine enorme Hilfe für Android und unser Ökosystem. Aufgrund des großen TCB ist es jedoch schwierig sicherzustellen, dass keine ausnutzbaren Schwachstellen vorhanden sind.
Hardwareanbieter haben Lösungen wie TrustZone von Arm entwickelt, die es Prozessoren ermöglichen, im sicheren Modus zu laufen und Speichertransaktionen als „sicher“ oder „nicht sicher“ zu kennzeichnen. In solchen Systemen werden sensible Daten in der sicheren Welt gespeichert und stehen nur dieser direkt zur Verfügung, die auf Anfrage Dienste für die nicht sichere Welt bereitstellt.
Die größte Einschränkung dieser Art von Lösungen besteht darin, dass die Domänen zu grobkörnig sind: nur sicher und nicht sicher. Je mehr Anwendungsfälle eingeführt werden, die eine Isolierung vom Betriebssystem erfordern, desto größer wird die Angriffsfläche und Schwachstellen führen wahrscheinlich zu einer Gefährdung des gesamten Geräts.
Eine weitere Einschränkung heutiger Lösungen besteht darin, dass sie für eine relativ statische Welt konzipiert sind, in der alle Anwendungsfallressourcen im Voraus berücksichtigt und zugewiesen werden. Für dynamische Anwendungsfälle, bei denen Ressourcen nach Bedarf zugewiesen werden, sind diese Lösungen nicht gut genug.
Darüber hinaus sind die außerhalb des Android-Betriebssystems verwendeten APIs fragmentiert und schränken unsere Fähigkeit ein, Anwendungsfälle im Android-Maßstab bereitzustellen, einschließlich grundlegender Anwendungen wie Keymint und Gatekeeper.
Um diese Einschränkungen zu beseitigen und Android in die Lage zu versetzen, eine solide Grundlage für Anwendungsfälle der nächsten Generation zu bieten, führt Android 13 eine sichere Virtualisierung als Android Virtualization Framework (AVF) ein.
Das Hauptziel von AVF besteht darin, eine sichere und private Ausführungsumgebung für Anwendungsfälle der nächsten Generation bereitzustellen.