Mengapa AVF?

Perangkat komputasi seluler menangani data sensitif pribadi dalam jumlah yang semakin besar. Kehadiran data sensitif tersebut, ditambah dengan koneksi terus-menerus ke dunia luar, telah mengakibatkan peningkatan investasi dari pihak-pihak jahat yang tertarik untuk mengeksploitasi kerentanan demi mencapai tujuan mereka.

Sistem operasi, dengan bantuan unit manajemen memori perangkat keras (MMU), menyediakan abstraksi yang memungkinkan proses yang tidak terkait diisolasi satu sama lain. Hanya komponen yang merupakan bagian dari TCB yang diperbolehkan memprogram MMU ini secara langsung.

Model ini telah menjadi dasar penerapan privasi dan keamanan sejak diperkenalkannya sistem operasi mirip Unix. Namun, persyaratan ini menjadi masalah karena TCB saat ini terlalu besar: TCB mencakup sebagian besar driver perangkat dan bus, penjadwal kompleks, sistem file, tumpukan dan protokol jaringan, cache, parser dan pemuat yang dapat dieksekusi, serta soket. Menjadi sangat sulit untuk memastikan setiap sudut sistem yang rumit ini aman.

Kernel Linux memiliki lebih dari 20 juta baris kode dan tingkat perubahan serta penulisan ulangnya sangat mencengangkan. Pertumbuhan ini sangat membantu Android dan ekosistem kami. Namun TCB-nya yang besar membuat sulit untuk memastikan tidak adanya kerentanan yang dapat dieksploitasi.

Vendor perangkat keras telah mengembangkan solusi, seperti Arm's TrustZone, yang memungkinkan prosesor berjalan dalam mode Aman dan menandai transaksi memori sebagai "aman" atau "tidak aman". Dalam sistem seperti itu, data sensitif disimpan dan hanya tersedia secara langsung bagi dunia yang aman, yang menyediakan layanan kepada dunia yang tidak aman sesuai permintaan.

Keterbatasan utama dari solusi semacam ini adalah domainnya terlalu rumit: hanya aman dan tidak aman. Karena semakin banyak kasus penggunaan yang memerlukan isolasi dari sistem operasi, permukaan serangan meningkat dan kerentanan cenderung menyebabkan kompromi pada seluruh perangkat.

Keterbatasan lain dari solusi saat ini adalah bahwa solusi tersebut dirancang untuk dunia yang relatif statis di mana semua sumber daya kasus penggunaan diperhitungkan dan dialokasikan sebelumnya. Solusi ini tidak cukup baik untuk kasus penggunaan dinamis di mana sumber daya dialokasikan sesuai permintaan.

Selain itu, API yang digunakan di luar sistem operasi Android terfragmentasi dan membatasi kemampuan kami untuk menerapkan kasus penggunaan pada skala Android, termasuk fundamental seperti Keymint dan Gatekeeper.

Untuk mengatasi keterbatasan ini dan memungkinkan Android memberikan landasan yang kuat untuk kasus penggunaan generasi berikutnya, Android 13 memperkenalkan virtualisasi aman sebagai Android Virtualization Framework (AVF).

Tujuan utama AVF adalah menyediakan lingkungan eksekusi yang aman dan privat untuk kasus penggunaan generasi berikutnya.