MTE dapat diaktifkan secara independen di kernel Android dan di proses di sistem Android. Google tidak mewajibkan dan bertujuan untuk memberikan fleksibilitas maksimum pada perangkat web.
Dokumen ini menjelaskan setelan dan cakupan MTE yang, menurut pendapat kami, memberikan kompromi yang baik antara keamanan dan biaya untuk Android pengguna sebagai mitigasi kerentanan yang selalu aktif.
Kernel
MTE di {i>kernel<i} dikonfigurasi melalui baris perintah. Tujuan default adalah AKTIF dalam mode Sinkronisasi. Hal ini sewaktu-waktu dapat berubah untuk beberapa alasan:
- Solusi ini telah terbukti memengaruhi performa dan kebutuhan secara signifikan pengoptimalan.
- Kualitas kode kernel secara luas dianggap tidak memadai untuk dikirim MTE dalam mode penegakan (yaitu, panic-on-failure).
Rekomendasi saat ini adalah menonaktifkan MTE kernel di
perangkat produksi. Untuk melakukannya, tambahkan kasan=off
ke
command line {i>kernel<i}.
{i>Userspace<i}
Google menyediakan daftar biner userspace default yang perlu dilindungi dengan MTE. Daftar ini disusun dengan input dari Android Security dan termasuk komponen yang dilindungi hak istimewa dan/atau menangani input. Daftar terbaru biner native yang direkomendasikan dengan MTE dapat ditemukan di tindakan memtag-common.mk di build Android sistem file. Selain itu, beberapa aplikasi sistem juga termasuk: 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 perlu perubahan). Selain itu, sebaiknya Anda mengevaluasi BSP dan OEM menambahkan sistem inti dan mengaktifkan MTE pada sistem yang sensitif terhadap keamanan.
Aplikasi
Tiga aplikasi sistem yang tercantum di atas adalah satu-satunya yang menggunakan
MTE saat ini. Agar aplikasi pihak
ketiga dapat mengaktifkan
MTE, AndroidManifest.xml
-nya harus menentukan
android:memtagMode
dengan nilai lainnya
dari off
. Dengan demikian, rangkaian tolok ukur umum seperti
Geekbench atau AnTuTu tidak berjalan dengan MTE. Jika MTE kernel juga
dinonaktifkan (lihat kasan=off
di atas), maka benchmark-nya adalah
yang diperkirakan menunjukkan dampak performa yang sangat terbatas, jika ada.
Untuk aplikasi lainnya, ada pengembangan aktif dukungan MTE di
Chrome. Versi Play Store Chrome saat ini mencakup
Setelan memtagMode=async
dalam manifes. Ini juga merupakan ekspektasi kami
bahwa sejumlah aplikasi sadar keamanan
di ekosistem Android
(misalnya, aplikasi perbankan) pada akhirnya akan melakukan hal yang sama. Pada
di sisi lain, kami berharap beberapa aplikasi
yang menuntut CPU puncak
performa seperti game akan memilih
untuk tetap menonaktifkan MTE.
Moda lainnya
Petunjuk di atas hanya menggunakan mode MTE Asinkron di mana saja. Tergantung pada perangkat kerasnya, mode lain mungkin hampir, atau dengan sangat cepat. Mereka juga memberikan diagnostik yang lebih baik dan properti mitigasi kerentanan yang lebih kuat.
Sebaiknya uji satu atau dua konfigurasi lainnya untuk melihat apakah konfigurasi tersebut
cukup baik untuk kebutuhan performa/daya Anda. Mode MTE
dapat diatur untuk setiap inti CPU
dalam sistem dengan menulis ke
/sys/devices/system/cpu/cpu*/mte_tcf_preferred
. Misalnya, menulis
sync
(atau asymm
) akan menyebabkan proses userspace yang meminta
Mode asinkron ditingkatkan secara otomatis ke versi Sinkronisasi (atau Asymm) saat
yang berjalan pada inti tersebut. Penyiapan ini dapat dilakukan dalam file .rc di perangkat
waktu booting.
Sebaiknya ukur satu atau dua konfigurasi lainnya untuk memeriksa apakah perangkat tersebut memenuhi persyaratan kinerja dan daya Anda. Agak besar konfigurasi yang menarik untuk dipelajari:
- Asim di semua core.
- Asim pada inti besar, Sinkronkan pada inti lain.
Untuk memverifikasi bahwa proses meminta mode Asinkron (jika memungkinkan upgrade otomatis), pastikan baris berikut menyertakan keduanya PR_MTE_TCF_SYNC dan PR_MTE_TCF_ASYNC:
debuggerd <PID> | head -30 | grep tagged_addr
Sayangnya, tidak ada cara mudah untuk melihat mode efektif untuk proses; tetapi setiap proses yang menunjukkan kedua nilai yang tercantum di atas tunduk pada perilaku upgrade otomatis.