Neden AVF?

Mobil bilgi işlem cihazları, giderek daha fazla miktarda kişisel hassas veriyi işliyor. Bu tür hassas verilerin varlığı ve dış dünyayla sürekli bağlantı, hedeflerine ulaşmak için güvenlik açıklarından yararlanmak isteyen kötü amaçlı kişilerin yatırımlarını artırmıştır.

İşletim sistemleri, donanım bellek yönetim birimleri (MMU'lar) sayesinde alakasız işlemleri birbirinden izole eden soyutlamalar sağlar. Yalnızca Güvenilir Bilgisayar Tabanı'nın (TCB) parçası olan bileşenlerin bu MMU'ları doğrudan programlamasına izin verilir.

Bu model, Unix benzeri işletim sistemlerinin kullanıma sunulmasından bu yana gizlilik ve güvenliğin uygulanma şeklinin temelini oluşturmuştur. Ancak bu şart, günümüzün TCB'sinin çok büyük olması nedeniyle sorunlu hale geldi: Çoğu cihaz ve otobüs sürücüsü, karmaşık planlayıcılar, dosya sistemleri, ağ yığını ve protokolleri, önbellekler, yürütülebilir ayrıştırıcılar ve yükleyiciler ve soketler TCB'ye dahildir. Bu karmaşık sistemin her köşesinin güvenli olmasını sağlamak artık çok zor.

Linux çekirdeği 20 milyonun üzerinde kod satırına sahiptir. Ayrıca değişiklik ve yeniden yazma hızı inanılmazdır. Bu artış, Android ve ekosistemimiz için çok faydalı oldu. Ancak büyük TCB'si, istismar edilebilir güvenlik açıklarının bulunmadığından emin olmayı zorlaştırır.

Donanım tedarikçileri, işlemcilerin Güvenli modda çalışmasını ve bellek işlemlerini "güvenli" ya da "güvenli değil" olarak etiketlemesini sağlayan Arm's TrustZone gibi çözümler geliştirmiştir. Bu tür sistemlerde, hassas veriler depolanır ve yalnızca bu güvenli dünyada doğrudan kullanılabilir. Güvenli dünya, isteğe bağlı olarak güvenli olmayan dünyaya hizmet sunar.

Bu tür çözümlerin temel sınırlaması, alanların çok kaba olmasıdır: yalnızca güvenli ve güvenli olmayan. İşletim sisteminden izolasyon gerektiren daha fazla kullanım alanı kullanıma sunulduğunda saldırı alanı artar ve güvenlik açıkları cihazın tamamının güvenliğinin ihlal edilmesine yol açabilir.

Günümüz çözümlerinin bir diğer sınırlaması, tüm kullanım alanı kaynaklarının dikkate alındığı ve önceden tahsis edildiği görece statik bir dünya için tasarlanmış olmasıdır. Bu çözümler, kaynakların talep üzerine ayrıldığı dinamik kullanım alanları için yeterli değildir.

Ayrıca, Android işletim sistemi dışında kullanılan API'ler dağınıktır ve Keymint ve Gatekeeper gibi temel öğeler de dahil olmak üzere kullanım alanlarını Android ölçeğinde dağıtmamızı kısıtlar.

Bu sınırlamaları gidermek ve Android'in yeni nesil kullanım alanları için sağlam bir temel sunmasını sağlamak amacıyla Android 13, Android Virtualization Framework (AVF) olarak güvenli sanallaştırmayı kullanıma sunar.

AVF'nin ana hedefi, yeni nesil kullanım alanları için güvenli ve gizli bir yürütme ortamı sağlamaktır.