Konfigurasi MTE

MTE dapat diaktifkan secara mandiri di kernel Android dan dalam proses apa pun di sistem Android. Google tidak mewajibkan konfigurasi khusus apa pun dan bertujuan untuk memberikan fleksibilitas maksimum kepada pembuat perangkat.

Dokumen ini menjelaskan pengaturan dan cakupan MTE yang, menurut pendapat kami, memberikan keseimbangan yang baik antara keamanan dan biaya bagi pengguna Android sebagai mitigasi kerentanan yang selalu aktif.

Inti

MTE di kernel dikonfigurasi melalui baris perintah. Standarnya adalah AKTIF dalam mode Sinkronisasi. Hal ini dapat berubah di masa depan karena beberapa alasan:

  • Telah terbukti secara signifikan mempengaruhi kinerja dan memerlukan pekerjaan pengoptimalan.
  • Kualitas kode kernel secara luas dianggap tidak cukup untuk mengirimkan MTE dalam mode penegakan (yaitu, panik jika gagal).

Rekomendasi saat ini adalah menonaktifkan kernel MTE pada perangkat produksi. Untuk melakukan ini, tambahkan kasan=off ke baris perintah kernel.

Ruang pengguna

Google menyediakan daftar default biner ruang pengguna untuk dilindungi dengan MTE. Daftar ini disusun dengan masukan dari Android Security dan mencakup komponen yang memiliki hak istimewa dan/atau menangani masukan yang tidak tepercaya. Daftar biner asli terkini 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 Async secara default.

Rekomendasi saat ini adalah menggunakan daftar target default (tidak diperlukan perubahan). Selain itu, disarankan untuk mengevaluasi penambahan BSP dan OEM ke sistem inti dan mengaktifkan MTE pada sistem yang sensitif terhadap keamanan.

Aplikasi

Ketiga aplikasi sistem yang tercantum di atas adalah satu-satunya yang menggunakan MTE saat ini. Agar aplikasi pihak ketiga dapat mengaktifkan MTE, AndroidManifest.xml nya perlu menentukan android:memtagMode dengan nilai selain off . Oleh karena itu, rangkaian benchmark umum seperti Geekbench atau AnTuTu tidak berjalan dengan MTE. Jika kernel MTE juga dinonaktifkan (lihat kasan=off di atas), maka benchmark diharapkan menunjukkan dampak kinerja yang sangat terbatas, jika ada.

Sedangkan untuk aplikasi lainnya, ada pengembangan aktif dukungan MTE di Chrome. Versi Chrome Play Store saat ini menyertakan pengaturan memtagMode=async dalam manifes. Kami juga berharap bahwa sejumlah aplikasi yang sadar akan keamanan di ekosistem Android (misalnya, aplikasi perbankan) pada akhirnya akan melakukan hal yang sama. Di sisi lain, kami berharap beberapa aplikasi yang menuntut kinerja CPU puncak seperti game akan memilih untuk tetap menonaktifkan MTE.

Mode lainnya

Petunjuk di atas hanya menggunakan mode MTE Asinkron di mana pun. Tergantung pada perangkat kerasnya, mode lain mungkin hampir, atau sama cepatnya. Mereka juga memberikan diagnostik yang lebih baik dan sifat mitigasi kerentanan yang lebih kuat.

Kami merekomendasikan pengujian satu atau dua konfigurasi lain untuk melihat apakah konfigurasi tersebut cukup baik untuk kebutuhan kinerja/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 ruang pengguna apa pun yang meminta mode Async untuk ditingkatkan secara otomatis secara diam-diam ke Sync (atau Asymm) saat berjalan pada inti tersebut. Penyiapan ini dapat dilakukan dalam file .rc pada saat boot perangkat.

Kami merekomendasikan untuk mengukur satu atau dua konfigurasi lainnya untuk memeriksa apakah konfigurasi tersebut memenuhi kebutuhan kinerja dan daya Anda. Beberapa konfigurasi menarik untuk dijelajahi:

  • Asimm pada semua core.
  • Asimm pada inti besar, Sinkronkan pada inti lainnya.

Untuk memverifikasi bahwa suatu proses meminta mode Async (dengan kemungkinan peningkatan otomatis), periksa apakah baris berikut menyertakan PR_MTE_TCF_SYNC dan PR_MTE_TCF_ASYNC :

  debuggerd  | head -30 | grep tagged_addr

Sayangnya, tidak ada cara mudah untuk melihat mode efektif suatu proses; namun proses apa pun yang menampilkan kedua nilai yang tercantum di atas tunduk pada perilaku peningkatan otomatis.