Warum AVF?

Mobile Computergeräte handhaben 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-Memory-Management-Units (MMUs) Abstraktionen bereit, mit denen nicht zusammenhängende Prozesse voneinander isoliert werden können. Nur Komponenten, die Teil des TCB sind, dürfen diese MMUs direkt programmieren.

Dieses Modell war die Grundlage dafür, wie Datenschutz und Sicherheit seit der Einführung von Unix-ähnlichen Betriebssystemen implementiert wurden. 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 Lader sowie Sockets. Es ist sehr schwierig geworden, sicherzustellen, dass jeder Winkel dieses komplizierten Systems sicher ist.

Der Linux-Kernel hat über 20 Millionen Codezeilen und die Rate der Änderungen und Umschreibungen ist erstaunlich. Dieses Wachstum ist eine immense Hilfe für Android und unser Ökosystem. Sein großer TCB macht es jedoch schwierig sicherzustellen, dass keine ausnutzbaren Schwachstellen vorhanden sind.

Hardwareanbieter haben Lösungen wie Arm's TrustZone entwickelt, die es Prozessoren ermöglichen, im sicheren Modus zu laufen und Speichertransaktionen als "sicher" oder "nicht sicher" zu markieren. In solchen Systemen werden sensible Daten in der sicheren Welt gespeichert und stehen ihr nur direkt zur Verfügung, die der nicht sicheren Welt bei Bedarf Dienste bereitstellt.

Die Hauptbeschrä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 Kompromittierung des gesamten Geräts.

Eine weitere Einschränkung der heutigen 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. Diese Lösungen sind nicht gut genug für dynamische Anwendungsfälle, in denen Ressourcen nach Bedarf zugewiesen werden.

Darüber hinaus sind die außerhalb des Android-Betriebssystems verwendeten APIs fragmentiert und schränken unsere Fähigkeit ein, Anwendungsfälle auf Android-Ebene bereitzustellen, einschließlich Grundlagen wie Keymint und Gatekeeper.

Um diese Einschränkungen zu beheben und Android in die Lage zu versetzen, eine robuste Grundlage für Anwendungsfälle der nächsten Generation bereitzustellen, führt Android 13 sichere Virtualisierung als Android Virtualization Framework (AVF) ein.

Das Hauptziel von AVF ist die Bereitstellung einer sicheren und privaten Ausführungsumgebung für Anwendungsfälle der nächsten Generation.