Bu dokümanda, AVF'nin yaygın kullanım alanları açıklanmaktadır.
İzole derleme
Yazılımla güvenli bir çit alanı olarak korunan sanal makine, güvenlik açısından hassas kodu derlemek için güvenli bir ortam sağlar. Bu ortam, bootclasspath
ve sistem sunucusu JAR'larının derlemesini (bir APEX güncellemesi tarafından tetiklenir) erken önyüklemeden yeniden başlatmadan önceye taşımanıza olanak tanır ve APEX güncellemesinden sonraki ö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 eklenebilir.
Güvenlik hedefi, doğrulanmış girişi doğru bir şekilde derlemek ve çıkışı izolasyonda üretmektir. Güvenilir olmayan bir istemci olarak Android, derleme çıkışını başarısızlığa uğratmaktan (Android önyükleme zamanı derlemesine geri döndüğünde) başka bir şekilde değiştiremez.
Sanal makinedeki derleme hizmeti, yalnızca derleme boyunca herhangi bir hata olmaması durumunda imza oluşturur. Android, imza doğrulaması için ortak anahtarı sanal makineden alabilir.
Sanal makinenin anahtarı, sanal makineye monte edilen APEX'ler ve APK'lar tarafından tanımlanan sanal makinenin DICE profilinden, hata ayıklama özelliği gibi diğer sanal makine parametrelerine ek olarak oluşturulur.
Android, ortak anahtarın beklenmedik bir sanal makineden gelip gelmediğini belirlemek için anahtarın doğru olup olmadığını belirlemek üzere sanal makineyi başlatır. Sanal makine, her APEX güncellemesinden sonra erken önyükleme aşamasında başlatılır.
Korumalı Sanal Makine'nin Doğrulanmış Başlatma özelliği sayesinde derleme hizmeti yalnızca doğrulanmış kodu çalıştırır. Bu nedenle kod, yalnızca belirli koşulları karşılayan girişleri kabul etmeyi belirleyebilir. Örneğin, yalnızca adı ve fs-verity
özeti izin verilenler listesinde tanımlanan giriş dosyalarını kabul edebilir.
Sanal makineden açık olan tüm API'ler saldırı yüzeyleridir. Tüm giriş dosyalarının ve parametrelerinin güvenilmeyen bir istemciden geldiği varsayılır ve işlenmeden önce doğrulanmaları ve incelenmeleri gerekir.
Giriş/çıkış dosyası bütünlüğü, Android'de güvenilmeyen bir dosya sunucusu olarak depolanan dosyalar için sanal makine tarafından aşağıdaki şekilde doğrulanır:
- Giriş dosyasının içeriği, kullanılmadan önce
fs-verity
algoritması kullanılarak doğrulanmalıdır. Bir giriş dosyasının sanal makinede kullanılabilir olması için kök karmasının, sanal makinenin DICE profiline katkıda bulunan bir kapsayıcıda (APK) sağlanması gerekir. Güvenilir kök karması sayesinde, saldırganlar tespit edilmeden girişle oynayamaz. - Çıkış dosyasının bütünlüğü sanal makinede korunmalıdır. Bir çıkış dosyası Android'de depolanmış olsa bile, oluşturma sırasında bütünlük aynı
fs-verity
ağaç biçiminde korunur ancak dinamik olarak güncellenebilir. Nihai çıkış dosyası, sanal makinede izole edilen kök karmasıyla tanımlanabilir. Sanal makinedeki hizmet, çıkış dosyalarını imzayla korur.