Bu sayfada, AVF'nin yaygın kullanım alanları yer almaktadır.
İzole derleme
Yazılımla güvenli bir enclave olarak korumalı sanal makine (VM), güvenlikle ilgili hassas kodları derlemek için güvenli bir ortam sağlar.
Bu ortam, bootclasspath
ve sistem sunucusu JAR'larının derlenmesinin (APEX güncellemesi tarafından tetiklenir) erken başlatmadan yeniden başlatma öncesine taşınmasına olanak tanır ve APEX güncellemesi sonrası başlatma süresini önemli ölçüde kısaltır.
Uygulama, com.android.compos
APEX'inde bulunur. 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ışı bağımsız olarak üretmektir. Güvenilmeyen bir istemci olarak Android, derleme çıkışını başarısız olmasına neden olmak dışında (Android, başlatma zamanı derlemesine geri döndüğünde) hiçbir şekilde değiştiremez.
Sanal makinedeki derleme hizmeti, yalnızca derlemenin tamamı sırasında hata oluşmazsa imza oluşturur. Android, imza doğrulaması için ortak anahtarı VM'den alabilir.
Sanal makinenin anahtarı, sanal makineye monte edilen APEX'ler ve APK'lar tarafından tanımlanan sanal makinenin DICE profilinden ve hata ayıklanabilirlik gibi diğer sanal makine parametrelerinden oluşturulur.
Ortak anahtarın beklenmedik bir sanal makineye ait olup olmadığını belirlemek için Android, anahtarın doğru olup olmadığını belirlemek üzere sanal makineyi başlatır. Sanal makine, her APEX güncellemesinden sonra erken başlatma sırasında başlatılır.
Korumalı sanal makinenin 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 etmeye karar verebilir. Örneğin, yalnızca adı ve fs-verity
özetinin izin verilenler listesinde tanımlandığı giriş dosyalarını kabul edebilir.
Sanal makineden kullanıma sunulan tüm API'ler saldırı yüzeyidir. Tüm giriş dosyalarının ve parametrelerin güvenilmeyen bir istemciden geldiği varsayılır. Bu nedenle, işlenmeden önce doğrulanmalı ve incelenmelidir.
Giriş ve çıkış dosyası bütünlüğü, dosyalar Android'de güvenilmeyen bir dosya sunucusu olarak depolanırken sanal makine tarafından aşağıdaki şekilde doğrulanır:
- Bir giriş dosyasının içeriği, kullanılmadan önce
fs-verity
algoritması kullanılarak doğrulanmalıdır. Bir giriş dosyasının VM'de kullanılabilir olması için 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, saldırıyı yapan kişi algılanmadan girişi kurcalayamaz. - Çıkış dosyasının bütünlüğü sanal makinede korunmalıdır. Çıkış dosyası Android'de depolansa bile oluşturma sırasında bütünlük aynı
fs-verity
ağacı biçimiyle korunur ancak dinamik olarak güncellenebilir. Son çıkış dosyası, VM'de izole edilmiş olan kök karma ile tanımlanabilir. Sanal makinedeki hizmet, çıkış dosyalarını imzayla korur.
Linux geliştirme ortamı
Android, geleneksel olarak kullanıcıların platformun kendisinde uygulama geliştirmesine izin vermeyen tek büyük işletim sistemi olmuştur. Linux geliştirme ortamının kullanıma sunulmasıyla, geliştirici olan Android kullanıcılarına Linux tabanlı bir geliştirme ortamı sağlamayı amaçlıyoruz. Gelecekte, iş ortaklarımızın grafik kullanıcı arayüzü uygulamaları ve hatta oyunlar çalıştırmak gibi yenilikçi sanal makine kullanım alanları uygulamasına olanak tanımak için bu çalışmayı genişletmeyi planlıyoruz.
Linux geliştirme ortamı belirli cihazlarda kullanılabilir ve korumasız bir sanal makinede çalışır.
Linux VM'nin üst düzey bileşenleri şunlardır:
- Terminal uygulaması: Terminal arayüzü sağlayan bir Android uygulaması. Etkileşim için sanal makinede çalışan bir web hizmetine bağlanmak üzere WebView kullanır. Bu uygulama varsayılan olarak devre dışıdır. Geliştirici ayarları'nda etkinleştirin.
- Android Sanallaştırma Çerçevesi (AVF): Android'in sanal makine oluşturma ve yönetme için mevcut alt sistemi. Bu özelliği desteklemek için özel işletim sistemi görüntülerinde minimum değişiklik yapılması gerekir.
- Sanal makine: AVF'nin oluşturduğu bir VM. Terminal hizmetini barındırır ve AVF, bu hizmeti Terminal uygulamasının işlevselliği için özel olarak oluşturur.
- OS görüntüsü: Yukarı akış Debian'dan alınan, biraz değiştirilmiş Debian tabanlı bir OS görüntüsü. Terminal uygulaması bu resmi harici bir Google sunucusundan indirir. VM'nin çalışması için temel oluşturur.
- Misafir Aracısı: Sanal makinedeki yeni yazılım. AVF'ye işletim sisteminin durumunu bildirir ve sanal makinenin kontrolünü sağlar.
- ttyd: HTTP üzerinden terminal emülasyonu uygulayan, sanal makinede çalışan açık kaynaklı yazılım. Terminal uygulamasının WebView'u buna bağlanır.
- Tethering Manager: Mevcut bir Android alt sistemi. Sanal makineyi Android destekli cihaza bağlayarak sanal makineye ağ erişimi sağlar.