Kasus penggunaan

Halaman ini berisi kasus penggunaan umum untuk AVF.

Kompilasi terisolasi

Sebagai enklave yang aman secara software, virtual machine (VM) yang dilindungi memberikan lingkungan yang aman untuk mengompilasi kode yang sensitif terhadap keamanan. Lingkungan ini memungkinkan pemindahan kompilasi bootclasspath dan JAR server sistem (dipicu oleh update APEX) dari booting awal ke sebelum reboot, dan secara signifikan mengurangi waktu booting pasca-update APEX.

Implementasinya ada di com.android.compos APEX. Komponen ini bersifat opsional dan dapat disertakan menggunakan makefile.

Kompilasi terisolasi

Gambar 1. Mengompilasi JAR pada update Mainline. Mengompilasi JAR pada update Mainline

Tujuan keamanan adalah mengompilasi input terverifikasi dengan benar dan menghasilkan output secara terisolasi; Android sebagai klien yang tidak tepercaya tidak dapat mengubah output kompilasi dengan cara apa pun selain menyebabkan kompilasi gagal (saat Android kembali ke kompilasi waktu booting).

Layanan kompilasi di VM hanya menghasilkan tanda tangan jika tidak ada error selama seluruh kompilasi. Android dapat mengambil kunci publik dari VM untuk verifikasi tanda tangan.

Kunci VM dibuat dari profil DICE VM, yang ditentukan oleh APEX dan APK yang terpasang ke VM, selain parameter VM lainnya, seperti kemampuan debug.

Untuk menentukan apakah kunci publik bukan dari VM yang tidak terduga, Android melakukan booting VM untuk menentukan apakah kunci tersebut benar. VM di-booting pada booting awal setelah setiap update APEX.

Dengan Booting Terverifikasi VM yang Dilindungi, layanan kompilasi hanya menjalankan kode terverifikasi. Oleh karena itu, kode dapat menentukan untuk hanya menerima input yang memenuhi kondisi tertentu, misalnya, menerima file input hanya jika nama dan ringkasan fs-verity ditentukan dalam daftar yang diizinkan.

API apa pun yang diekspos dari VM adalah permukaan serangan. Semua file dan parameter input diasumsikan berasal dari klien yang tidak tepercaya, dan harus diverifikasi serta diperiksa sebelum diproses.

Integritas file input dan output diverifikasi oleh VM, dengan file yang disimpan di Android sebagai server file yang tidak tepercaya, sebagai berikut:

  • Konten file input harus diverifikasi sebelum digunakan menggunakan algoritma fs-verity. Agar file input tersedia di VM, hash root-nya harus disediakan dalam container (APK) yang berkontribusi pada profil DICE VM. Dengan hash root tepercaya, penyerang tidak dapat merusak input tanpa terdeteksi.
  • Integritas file output harus dipertahankan di VM. Meskipun file output disimpan di Android, selama pembuatan, integritas dipertahankan dengan format pohon fs-verity yang sama, tetapi dapat diupdate secara dinamis. File output akhir dapat diidentifikasi dengan hash root, yang diisolasi di VM. Layanan di VM melindungi file output dengan tanda tangan.

Lingkungan pengembangan Linux

Android secara tradisional merupakan satu-satunya sistem operasi utama yang tidak mengizinkan pengguna mengembangkan aplikasi di platform itu sendiri. Dengan diperkenalkannya lingkungan pengembangan Linux, kami bertujuan untuk menyediakan lingkungan pengembangan berbasis Linux kepada pengguna Android yang merupakan developer. Pada masa mendatang, kami berencana untuk memperluas upaya ini agar partner kami dapat menerapkan kasus penggunaan VM inovatif seperti menjalankan aplikasi antarmuka pengguna grafis dan bahkan game.

Lingkungan pengembangan Linux tersedia di perangkat tertentu dan berjalan di virtual machine yang tidak dilindungi.

Kasus penggunaan lingkungan pengembangan Linux

Gambar 2. Kasus penggunaan lingkungan pengembangan Linux.

Alur tingkat tinggi adalah sebagai berikut:

  1. Untuk menggunakan lingkungan pengembangan Linux, aktifkan opsi developer.
  2. Setelah Anda mengaktifkan opsi developer, aplikasi Terminal akan muncul di peluncur utama.
  3. Luncurkan aplikasi Terminal dari peluncur utama.
  4. Jika diperlukan, aplikasi Terminal akan mendownload image OS dari Play.
  5. Aplikasi Terminal menggunakan Android Virtualization Framework (AVF) untuk membuat virtual machine (VM).
  6. AVF kemudian menjalankan VM dengan image OS.
  7. Virtual machine melakukan booting OS dari image.
  8. Setelah VM melakukan booting, WebView di aplikasi Terminal akan terhubung ke layanan web di virtual machine. Layanan ini menyediakan akses terminal melalui HTTP.
  9. Anda berinteraksi dengan terminal dengan memasukkan perintah dan melihat output di aplikasi.

Komponen tingkat tinggi VM Linux adalah sebagai berikut:

  • Aplikasi Terminal: Aplikasi Android yang menyediakan antarmuka terminal. Aplikasi ini menggunakan WebView untuk terhubung ke layanan web yang berjalan di VM untuk interaksi. Aplikasi ini dinonaktifkan secara default. Aktifkan di Setelan Developer.
  • Android Virtualization Framework (AVF): Subsistem Android yang ada untuk pembuatan dan pengelolaan VM. Subsistem ini memerlukan modifikasi minimal untuk mendukung image OS kustom untuk fitur ini.
  • virtual machine: VM yang dibuat AVF. VM ini menghosting layanan terminal, dan AVF membuatnya khusus untuk fungsi aplikasi Terminal.
  • Image OS: Image OS berbasis Debian yang sedikit dimodifikasi dari Debian upstream. Aplikasi Terminal mendownload image ini dari server Google eksternal. Image ini berfungsi sebagai dasar untuk operasi VM.
  • Agen Tamu: Software baru di VM. Software ini melaporkan status OS ke AVF dan menyediakan kontrol virtual machine.
  • ttyd: Software open source yang berjalan di VM yang mengimplementasikan emulasi terminal melalui HTTP. WebView aplikasi Terminal terhubung ke software ini.
  • Pengelola Tethering: Subsistem Android yang ada. Subsistem ini menyediakan akses jaringan ke virtual machine dengan melakukan tethering VM ke perangkat yang didukung Android.

Keamanan Konten Di Perangkat

Keamanan Konten Di Perangkat adalah solusi keamanan konten yang menjaga privasi dan dibuat oleh Tim Keamanan Konten Di Perangkat. Solusi ini melakukan klasifikasi keamanan konten untuk berbagai produk Google di perangkat pihak pertama/pihak ketiga, dan melindungi lebih dari 1 miliar pengguna dari konten yang melanggar, tanpa mengharuskan data pengguna dikirim kembali ke server Google. Solusi ini dirancang untuk mematuhi prinsip Private Compute Core (PCC) guna memverifikasi komunikasi yang transparan dan menjaga privasi antara klien, virtual machine (VM), dan mencegah eksfiltrasi data pengguna. Solusi ini dapat digunakan untuk hal-hal seperti mengaktifkan deteksi penyalahgunaan di perangkat, seperti deteksi ancaman real-time Play Protect.

Dalam kasus penggunaan ini, sistem menggunakan virtual machine yang dilindungi untuk menjalankan klasifikasi modelnya untuk deteksi ancaman real-time Play Protect yang kemudian meningkatkan keamanan model dan perlindungannya secara signifikan. Hal ini mencegah rekayasa balik dan manipulasi oleh penyerang, bahkan di perangkat yang di-root, dengan hanya memverifikasi kode yang disetujui dan operasinya disembunyikan dari proses eksternal.

Alur tingkat tinggi adalah sebagai berikut:

  1. Deteksi ancaman real-time melakukan ping ke Private Compute Services untuk memulai VM. Private Compute Services adalah perantara yang berfokus pada privasi antara PCC dan server cloud
  2. Private Compute Services memulai VM dan mendapatkan kunci publiknya dari VM
  3. Private Compute Services menyerahkan kepemilikan VM ke deteksi ancaman real-time Play Protect
  4. Private Compute Services mengirimkan pengesahan dan kunci publik ke server
  5. Server memverifikasi pengesahan dan mengenkripsi perlindungan dengan kunci publik VM
  6. Server kemudian mengirimkan perlindungan terenkripsi kembali ke perangkat
  7. Kemudian, deteksi ancaman real-time di perangkat dapat menggunakan perlindungan terenkripsi dalam VM. VM adalah satu-satunya entity dengan kunci pribadi yang dapat mendekripsi perlindungan

Komponen tingkat tinggi adalah sebagai berikut:

  • Server: Enkripsi dan kirim perlindungan terenkripsi ke VM
  • Private Compute Services: Digunakan untuk memulai VM dan memediasi komunikasi ke VM serta menunjukkan transparansi bahwa tidak ada data pengguna yang melalui Astrea ke server
  • Deteksi ancaman real-time Play Protect:
    • Berisi dan menggunakan pengklasifikasi model yang disediakan oleh Keamanan Konten di perangkat
    • Menerima kepemilikan VM dan menyimpannya untuk penggunaan klasifikasi
    • Memulai dan menghentikan VM sesuai kebutuhan.

OEM

OEM dapat menggunakan AVF untuk kasus penggunaan kustom. Misalnya, OPPO menggunakan AVF untuk mengaktifkan ruang komputasi pribadi AI. Aplikasi pertama ruang ini menyediakan solusi kontrol risiko di perangkat untuk klien aplikasi, yang berjalan di virtual machine. Sistem ini melawan ancaman dari aktivitas ilegal, yang menawarkan perlindungan terhadap berbagai bahaya.