Bu belge AVF'nin yaygın kullanım örneklerini içermektedir.
İzole derleme
Yazılım açısından güvenli bir bölge olarak korumalı bir VM, güvenliğe duyarlı kodu derlemek için güvenli bir ortam sağlar. Bu ortam, bootclasspath
ve sistem sunucusu JAR'larının (APEX güncellemesiyle tetiklenen) derlemesinin erken önyüklemeden yeniden başlatma öncesine taşınmasına olanak tanır 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üvenliğin amacı, doğrulanmış girdiyi doğru bir şekilde derlemek ve çıktıyı yalıtılmış olarak üretmektir; Güvenilmeyen bir istemci olarak Android, derleme çıktısını, başarısız olmasına neden olmak dışında herhangi bir şekilde değiştiremez (Android, önyükleme zamanı derlemesine geri döndüğünde).
VM'deki derleme hizmeti, yalnızca derlemenin tamamı boyunca herhangi bir hata olmaması durumunda bir imza oluşturur. Android, imza doğrulaması için ortak anahtarı VM'den alabilir.
VM'nin anahtarı, hata ayıklama gibi diğer VM parametrelerinin yanı sıra VM'ye monte edilen APEX'ler ve APK'lar tarafından tanımlanan VM'nin DICE profilinden oluşturulur.
Genel anahtarın beklenmedik bir VM'den olup olmadığını belirlemek için Android, anahtarın doğru olup olmadığını belirlemek üzere VM'yi önyükler. VM, her APEX güncellemesinden sonra erken önyüklemede 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 girişleri kabul etmeyi belirleyebilir; örneğin, bir giriş dosyasını yalnızca adının ve fs-verity
özetinin bir izin verilenler listesinde tanımlandığı durumlarda kabul edin.
VM'den açığa çıkan tüm API'ler saldırı yüzeyleridir. Tüm girdi dosyalarının ve parametrelerinin güvenilmeyen bir istemciden geldiği varsayılır ve işlenmeden önce doğrulanıp incelenmelidir.
Giriş/çıkış dosyası bütünlüğü, Android'de güvenilmeyen bir dosya sunucusu olarak depolanan dosyalar ile VM tarafından aşağıdaki şekilde doğrulanır:
- Bir giriş dosyasının içeriği
fs-verity
algoritması kullanılarak kullanılmadan önce doğrulanmalıdır. Bir giriş dosyasının VM'de kullanılabilir olması için, bunun kök karmasının, VM'nin DICE profiline katkıda bulunan bir kapsayıcıda (APK) sağlanması gerekir. Güvenilir kök karması sayesinde, bir saldırgan tespit edilmeden girdiye müdahale edemez. - Çıktı dosyasının bütünlüğü VM'de korunmalıdır. Bir çıktı dosyası Android'de saklansa bile, oluşturma sırasında bütünlük aynı
fs-verity
ağaç formatıyla korunur ancak dinamik olarak güncellenebilir. Nihai çıktı dosyası, VM'de izole edilen kök karması ile tanımlanabilir. VM'deki hizmet, çıktı dosyalarını imzayla korur.