MTE dapat diaktifkan secara independen di kernel Android dan dalam proses apa pun di sistem Android. Google tidak mewajibkan konfigurasi tertentu dan bertujuan untuk memberikan fleksibilitas maksimum kepada pembuat perangkat.
Dokumen ini menjelaskan setelan dan cakupan MTE yang, menurut kami, memberikan kompromi yang baik antara keamanan dan biaya bagi pengguna Android sebagai mitigasi kerentanan yang selalu aktif.
Biji Jagung Meletup
MTE di kernel dikonfigurasi melalui command line. Setelan defaultnya adalah AKTIF dalam mode Sinkronisasi. Hal ini dapat berubah pada masa mendatang karena beberapa alasan:
- Hal ini terbukti memengaruhi performa secara signifikan dan memerlukan pekerjaan pengoptimalan.
- Kualitas kode kernel secara luas dianggap tidak memadai untuk mengirimkan MTE dalam mode penerapan (yaitu, panik saat gagal).
Rekomendasi saat ini adalah menonaktifkan MTE kernel di
perangkat produksi. Untuk melakukannya, tambahkan kasan=off
ke
command line kernel.
Ruang pengguna
Google menyediakan daftar default biner ruang pengguna yang akan dilindungi dengan MTE. Daftar ini disusun dengan input dari Android Security dan menyertakan komponen yang memiliki hak istimewa dan/atau menangani input yang tidak tepercaya. Daftar terbaru biner native yang direkomendasikan dengan MTE dapat ditemukan di file memtag-common.mk di sistem build Android. Selain itu, beberapa aplikasi sistem juga disertakan: saat ini, Nfc, Bluetooth, dan SecureElement. Biner dan aplikasi ini diaktifkan dalam mode Asinkron secara default.
Rekomendasi saat ini adalah menggunakan daftar target default (tidak diperlukan perubahan). Selain itu, sebaiknya evaluasi penambahan BSP dan OEM ke sistem inti dan aktifkan MTE pada sistem yang sensitif terhadap keamanan.
Aplikasi
Tiga aplikasi sistem yang tercantum di atas adalah satu-satunya aplikasi yang menggunakan
MTE saat ini. Agar aplikasi pihak ketiga dapat mengaktifkan
MTE, AndroidManifest.xml
-nya harus menentukan
android:memtagMode
dengan nilai selain
off
. Oleh karena itu, suite benchmark umum seperti
Geekbench atau AnTuTu tidak berjalan dengan MTE. Jika MTE kernel juga
dinonaktifkan (lihat kasan=off
di atas), benchmark
diharapkan akan menunjukkan dampak performa yang sangat terbatas, jika ada.
Untuk aplikasi lainnya, ada pengembangan aktif dukungan MTE di
Chrome. Chrome versi Play Store saat ini menyertakan
setelan memtagMode=async
dalam manifes. Kami juga berharap
sejumlah aplikasi yang mengutamakan keamanan di ekosistem Android
(misalnya, aplikasi perbankan) pada akhirnya akan melakukan hal yang sama. Di sisi
lain, kami memperkirakan bahwa beberapa aplikasi yang menuntut performa CPU
puncak seperti game akan memilih untuk tetap menonaktifkan MTE.
Mode lainnya
Petunjuk di atas hanya menggunakan mode MTE Asinkron di mana saja. Bergantung pada hardware, mode lain mungkin hampir, atau sama cepatnya. Alat ini juga memberikan diagnostik yang lebih baik dan properti mitigasi kerentanan yang lebih kuat.
Sebaiknya uji satu atau dua konfigurasi lain untuk melihat apakah konfigurasi tersebut
cukup baik untuk persyaratan performa/daya Anda. Mode MTE
dapat ditetapkan untuk setiap core CPU dalam sistem dengan menulis ke
/sys/devices/system/cpu/cpu*/mte_tcf_preferred
. Misalnya, menulis
sync
(atau asymm
) akan menyebabkan proses ruang pengguna yang telah meminta
mode Asinkron diupgrade secara otomatis ke Sinkron (atau Asim) saat
berjalan di core tersebut. Penyiapan ini dapat dilakukan dalam file .rc pada waktu
booting perangkat.
Sebaiknya ukur satu atau dua konfigurasi lain untuk memeriksa apakah konfigurasi tersebut memenuhi persyaratan performa dan daya Anda. Beberapa konfigurasi menarik untuk dijelajahi:
- Asymm di semua core.
- Asymm pada core besar, Sync pada core lainnya.
Untuk memverifikasi bahwa proses meminta mode Asinkron (dengan kemungkinan upgrade otomatis), pastikan baris berikut menyertakan PR_MTE_TCF_SYNC dan PR_MTE_TCF_ASYNC:
debuggerd <PID> | head -30 | grep tagged_addr
Sayangnya, tidak ada cara mudah untuk melihat mode yang efektif untuk proses; tetapi setiap proses yang menampilkan kedua nilai yang tercantum di atas tunduk pada perilaku upgrade otomatis.