Bu belge, AVF için yaygın kullanım örneklerini içerir.
İzole derleme
Yazılım açısından güvenli bir yerleşim alanı olarak, korumalı bir VM, güvenlik açısından hassas kodu derlemek için güvenli bir ortam sağlar. Bu ortam, önyükleme sınıfı yolu ve sistem sunucusu bootclasspath
(bir APEX güncellemesi tarafından tetiklenen) derlemesinin erken önyüklemeden yeniden başlatma öncesine taşınmasına izin verir ve APEX güncellemesi sonrası önyükleme süresini önemli ölçüde azaltır.
Uygulama com.android.compos
APEX'tedir. Bu bileşen isteğe bağlıdır ve makefile kullanılarak dahil edilebilir.
Güvenlik hedefi, doğrulanmış girdiyi doğru bir şekilde derlemek ve çıktıyı izole bir şekilde üretmektir; Güvenilmeyen bir istemci olarak Android, derleme çıktısını, başarısız olmasına neden olmaktan başka hiçbir şekilde değiştiremez (Android, önyükleme zamanı derlemesine geri döndüğünde).
VM'deki derleme hizmeti, yalnızca tüm derleme sırasında hata yoksa bir imza oluşturur. Android, imza doğrulaması için ortak anahtarı sanal makineden alabilir.
Sanal makinenin anahtarı, hata ayıklanabilirlik gibi diğer sanal makine parametrelerine ek olarak sanal makineye monte edilen APEX'ler ve APK'lar tarafından tanımlanan sanal makinenin DICE profilinden oluşturulur.
Ortak anahtarın beklenmeyen bir sanal makineden gelmediğini belirlemek için Android, anahtarın doğru olup olmadığını belirlemek için sanal makineyi başlatır. VM, her APEX güncellemesinden sonra erken açılışta başlatılır.
Korumalı VM'nin Doğrulanmış Önyüklemesi ile derleme hizmeti yalnızca doğrulanmış kodu çalıştırır. Bu nedenle kod, yalnızca belirli koşulları karşılayan girdileri kabul etmeyi belirleyebilir; örneğin, yalnızca adının ve fs-verity
özetinin izin verilenler listesinde tanımlandığı bir girdi dosyasını kabul edin.
Sanal makineden açıkta kalan tüm API'ler saldırı yüzeyleridir. Tüm girdi dosyaları ve parametrelerinin güvenilmeyen bir istemciden geldiği varsayılır ve işlenmeden önce doğrulanmalı ve incelenmelidir.
Giriş/çıkış dosya bütünlüğü, Android'de güvenilmeyen bir dosya sunucusu olarak depolanan dosyalar ile VM tarafından aşağıdaki gibi doğrulanır:
- Bir girdi dosyasının içeriği, kullanımdan önce
fs-verity
algoritması kullanılarak doğrulanmalıdır. Bir girdi dosyasının VM'de kullanılabilir hale gelmesi için kök karması, VM'nin DICE profiline katkıda bulunan bir kapsayıcıda (APK) sağlanmalıdır. Güvenilir kök karması ile bir saldırgan, algılanmadan girdiyi kurcalayamaz. - Çıktı dosyasının bütünlüğü VM'de korunmalıdır. Bir çıktı dosyası Android'de depolansa bile, üretim sırasında bütünlük aynı
fs-verity
ağacı biçimiyle korunur ancak dinamik olarak güncellenebilir. Son çıktı dosyası, VM'de izole edilen kök karma ile tanımlanabilir. VM'deki hizmet, çıktı dosyalarını imza ile korur.