Android 14 mungkin menambahkan fitur perlindungan memori tingkat lanjut untuk melindungi perangkat Anda dari bug keamanan memori

Android 14 mungkin menambahkan fitur beta baru yang disebut "perlindungan memori tingkat lanjut" yang dapat melindungi dari bug keamanan memori pada perangkat yang kompatibel.

Keamanan memori telah menjadi prioritas utama Google akhir-akhir ini, karena bug keamanan memori cenderung menjadi bug paling parah dalam pengembangan perangkat lunak. Faktanya, kerentanan keamanan memori merupakan penyebab sebagian besar masalah Android yang parah kerentanan hingga tahun 2022, yaitu saat Google menulis sebagian besar versi asli Android yang baru kode di Bahasa pemrograman karat bukannya C/C++. Google telah berupaya mendukung cara lain untuk mengurangi kerentanan keamanan memori di Android, salah satunya disebut penandaan memori. Pada perangkat yang didukung berjalan Android 14, mungkin ada pengaturan “perlindungan memori lanjutan” baru yang dapat mengaktifkan fitur ini.

Memory Tagging Extension (MTE) adalah fitur perangkat keras wajib CPU Arm v9 yang melindungi terhadap memori bug keamanan (dengan sedikit overhead biaya kinerja runtime) dengan memberikan informasi rinci tentang memori pelanggaran.

Seperti yang dijelaskan Google, “pada tingkat tinggi, MTE menandai setiap alokasi/dealokasi memori dengan metadata tambahan. Ini memberikan tag ke lokasi memori, yang kemudian dapat dikaitkan dengan pointer yang mereferensikan lokasi memori tersebut. Saat runtime, CPU memeriksa apakah penunjuk dan tag metadata cocok pada setiap pemuatan dan penyimpanan.”

Google telah berupaya untuk mendukung MTE di seluruh tumpukan perangkat lunak Android untuk beberapa rilis sekarang. Di Android 12, scudo, pengalokasi heap Android, menambahkan dukungan untuk tiga mode operasi MTE pada perangkat yang kompatibel: mode sinkron, mode asinkron, dan mode asimetris. Google juga memungkinkan untuk mengaktifkan MTE untuk proses sistem pada waktu pembangunan atau melalui properti sistem dan/atau variabel lingkungan. Aplikasi dapat memilih untuk mendukung MTE melalui android: memtagMode atribut. Saat MTE diaktifkan untuk proses di Android, seluruh kelas bug keamanan memori seperti use-after-free dan buffer overflows memicu crash, bukan kerusakan memori diam-diam.

Di dalam Android 13, Google menambahkan ABI untuk ruang pengguna guna mengomunikasikan mode operasi MTE yang diminta ke bootloader. Ini dapat digunakan untuk mengaktifkan MTE pada perangkat yang kompatibel yang tidak dikirimkan dengan mengaktifkannya secara default, atau sebagai alternatif, ini dapat digunakan untuk menonaktifkannya pada perangkat kompatibel yang mengaktifkannya bawaan. Menyetel properti sistem ro.arm64.memtag.bootctl_supported ke “true” di Android 13 akan memberi tahu sistem bahwa bootloader mendukung ABI dan juga memicu munculnya tombol di menu Opsi Pengembang yang memungkinkan pengguna untuk mengaktifkan MTE berikutnya menyalakan ulang. Hal ini ditujukan untuk pengembang yang ingin menguji perilaku aplikasi mereka dengan MTE diaktifkan.

Namun, di Android 14, mengaktifkan MTE pada perangkat yang kompatibel mungkin memerlukan lebih banyak waktu untuk masuk ke Opsi Pengembang. Jika perangkat dilengkapi CPU Arm v8.5+ dengan dukungan MTE, implementasi perangkat mendukung ABI untuk mengomunikasikan mode operasi MTE yang diminta ke bootloader, dan yang baru properti sistem 'ro.arm64.memtag.bootctl_settings_toggle' disetel ke true, maka halaman “perlindungan memori lanjutan” baru mungkin muncul di Pengaturan > Keamanan & privasi > Keamanan lebih lanjut pengaturan. Halaman ini juga dapat diluncurkan melalui yang baru ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS tindakan niat.

Khususnya, chipset Tensor G2 di Google Piksel 7 seri ini menggunakan inti CPU Arm v8.2, sehingga tidak mendukung MTE. Jika seri Google Pixel 8 mendatang menggunakan inti CPU Arm v9 baru seperti banyak perangkat Android andalan lainnya, maka perangkat tersebut akan memiliki perangkat keras yang mampu mendukung MTE. Namun masih harus dilihat apakah fitur "perlindungan memori tingkat lanjut" ini benar-benar akan masuk ke dalam rilis stabil.

Terima kasih kepada peneliti keamanan @flawedworlddev atas bantuan mereka pada artikel ini!