Ikhtisar Ekstensi Penandaan Memori (Armv8.5-A)

Publikasi ini menyajikan terjemahan whitepaper untuk Armv8.5-A: Memory Tagging Extension (MTE) baru dari ARM. MTE berupaya meningkatkan keamanan kode yang ditulis dalam bahasa yang tidak aman tanpa memerlukan perubahan pada kode sumber, dan dalam beberapa kasus, tanpa memerlukan kompilasi ulang. Penyebaran sederhana mekanisme untuk mendeteksi dan mencegah konsekuensi dari pelanggaran keamanan memori dapat mencegah eksploitasi kelas kerentanan besar.



pengantar


Pada tahun 1988, worm internet melumpuhkan sepersepuluh dari jaringan yang masih dalam masa pertumbuhan, dan bagian yang tersisa melambat secara signifikan ( Worm Morris ). Lebih dari tiga puluh tahun kemudian, dua kelas kerentanan memori tetap relevan dan penting untuk kode yang ditulis dalam bahasa pemrograman mirip-C. Menurut presentasi BlueHat 2019 , 70% dari semua masalah keamanan yang diselesaikan dalam produk Microsoft disebabkan oleh pelanggaran keamanan memori. Data serupa diperoleh Google untuk Android : lebih dari 75% kerentanan adalah pelanggaran keamanan memori. Meskipun banyak dari pelanggaran ini tidak mungkin terjadi dalam bahasa aman yang lebih modern, basis kode yang ditulis dalam C dan C ++ sangat luas. Linux Debian sendiriberisi lebih dari setengah miliar baris .


Pelanggaran keamanan memori terbagi dalam dua kategori utama: keamanan spasial dan keamanan sementara. Eksploitasi pelanggaran tipe pertama biasanya ditujukan untuk:


  • pengiriman muatan berbahaya;
  • mendapatkan kontrol atas sistem (dalam rantai dengan jenis kerentanan lainnya);
  • organisasi kebocoran informasi istimewa.

Pelanggaran keamanan spasial terjadi ketika banding ke suatu objek melampaui batas yang sebenarnya. Sebagai contoh: buffer overflow pada stack, yang memungkinkan penulisan ulang alamat kembali dari fungsi, yang pada gilirannya dapat membentuk dasar dari beberapa jenis serangan.


́ , , , , . , , , .


MTE . MTE , . . MTE , . ( ) .



MTE , , . .


MTE , . (legacy) MTE .


MTE . MTE , . MTE MTE , Branch Target Identification (BTI) Pointer Authentication Code (PAC), , , .


MTE


Memory Tagging Extension "-" (lock & key). (lock) . ( ), . ( ) .


16 . (Tag Granule). (lock).


(, , ) , .


, ́ , MTE Top Byte Ignore (TBI) Armv8-A. TBI , . . MTE .


"-" :


MTE , . ( 4), , . , , , , , , .


MTE - . , , 100%.



, Memory Tagging Extension Armv8-A. , :


  • Architectural Details
  • Deploying MTE at Scale
  • Deploying MTE in Hardware
  • Deploying MTE in Software
  • Optimizing for MTE

, Google MTE Android (Arm). /, .


a13xp0p0vdan publikasi yang sangat baik , CVE-2019-18683: Memanfaatkan Kerentanan dalam Subsistem Linux V4L2 , yang memicu minat pada mesin MTE .


All Articles