Warum AVF?

Auf Mobilgeräten werden immer größere Mengen an personenbezogenen, vertraulichen Daten verarbeitet. Das Vorhandensein solcher vertraulichen Daten in Verbindung mit der ständigen Verbindung zur Außenwelt hat zu erhöhten Investitionen von böswilligen Akteuren geführt, die Schwachstellen ausnutzen möchten, um ihre Ziele zu erreichen.

Betriebssysteme bieten mithilfe von Hardware-Speicherverwaltungseinheiten (Memory Management Units, MMUs) Abstraktionen, die nicht verwandte 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 heutige TCB zu groß ist: Sie umfasst die meisten Geräte- und Bus-Treiber, komplexe Scheduler, Dateisysteme, den Netzwerk-Stack und die Protokolle, Caches, ausführbare Parser und Loader sowie Sockets. Es ist sehr schwierig geworden, sicherzustellen, dass jede Ecke dieses komplizierten Systems sicher ist.

Der Linux-Kernel umfasst über 20 Millionen Codezeilen und die Geschwindigkeit der Änderungen und Überarbeitungen ist erstaunlich. Dieses Wachstum ist eine immense Hilfe für Android und unser Ökosystem. Die große TCB macht es jedoch schwierig, das Fehlen ausnutzbarer Schwachstellen sicherzustellen.

Hardwareanbieter haben Lösungen wie Arm’s TrustZone entwickelt, mit denen Prozessoren im sicheren Modus ausgeführt werden und Speichertransaktionen als „sicher“ oder „nicht sicher“ gekennzeichnet werden können. In solchen Systemen werden vertrauliche Daten in der sicheren Welt gespeichert und sind nur dort direkt verfügbar. Diese bietet der nicht sicheren Welt bei Bedarf Dienste an.

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

Eine weitere Einschränkung der heutigen Lösungen besteht darin, dass sie für eine relativ statische Welt entwickelt wurden, in der alle Ressourcen für Anwendungsfälle im Voraus berücksichtigt und zugewiesen werden. Diese Lösungen sind für dynamische Anwendungsfälle, in denen Ressourcen bei Bedarf zugewiesen werden, nicht gut genug.

Außerdem sind die APIs, die außerhalb des Android-Betriebssystems verwendet werden, fragmentiert und schränken unsere Fähigkeit ein, Anwendungsfälle im Android-Maßstab bereitzustellen, einschließlich Grundlagen wie Keymint und Gatekeeper.

Um diese Einschränkungen zu beheben und Android eine robuste Grundlage für Anwendungsfälle der nächsten Generation zu bieten, 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 bieten.