Titik pemeriksaan menunjukkan teknik keselamatan Menghubungkan Selamat

Titik semak (penyedia penyelesaian keselamatan IT global) dikeluarkan beberapa hari yang lalu pengenalan mekanisme keselamatan "Pautan Selamat", bahawa menjadikannya sukar untuk membuat eksploitasi yang memanipulasi definisi atau perubahan penunjuk kepada penyangga yang diperuntukkan semasa membuat panggilan malloc.

Mekanisme «Pautan Selamat» yang baru tidak sepenuhnya menghalang kemungkinan mengeksploitasi kerentanan, tetapi dengan overhead minimum merumitkan penciptaan kategori eksploitasi tertentuSebagai tambahan kepada luapan buffer yang dieksploitasi, perlu mencari kelemahan lain yang menyebabkan maklumat mengenai lokasi timbunan dalam memori.

Tambalan pelaksanaan Safe-Linking disiapkan untuk Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) dan Google TCMalloc, serta cadangan untuk memodenkan perlindungan di Chromium (sejak 2012 Chromium telah disatukan dengan penyelesaian untuk masalah yang sama) Teknik perlindungan MaskPtr, tetapi penyelesaian Checkpoint menunjukkan prestasi yang lebih baik).

Tambalan yang dicadangkan telah disetujui untuk dihantar pada pelepasan Glibc 3.32 pada bulan Ogos dan Safe-Linking akan diaktifkan secara lalai. Di uClibc-NG, sokongan pautan selamat disertakan dalam versi 1.0.33 dan diaktifkan secara lalai. Dalam gperftools (tcmalloc lama) perubahan diterima, tetapi akan ditawarkan sebagai pilihan dalam rilis yang akan datang.

Pembangun TCMalloc enggan menerima perubahan tersebut, cdengan kejayaan prestasi yang baik dan keperluan untuk menambahkan ujian lanjutan untuk secara berkala mengesahkan bahawa semuanya berfungsi dengan baik.

Ujian dilakukan oleh Jurutera check point menunjukkan bahawa kaedah Safe-Linking tidak menyebabkan penggunaan memori tambahan dan prestasi semasa melakukan operasi timbunan rata-rata hanya menurun sebanyak 0.02%, dan dalam keadaan terburuk sebanyak 1.5%

Mengaktifkan Safe-Linking membawa kepada pelaksanaan 2-3 arahan assembler tambahan dengan setiap panggilan dibebaskan () dan 3-4 arahan ketika memanggil malloc (). Permulaan permulaan dan penjanaan nilai rawak tidak diperlukan.

Safe-Linking dapat digunakan bukan hanya untuk meningkatkan keselamatan pelbagai pelaksanaan timbunan, sjuga untuk menambahkan pemeriksaan integriti ke struktur data apa pun yang menggunakan senarai penunjuk yang dipaut secara berasingan yang terletak di sebelah penyangga.

Kaedah ini sangat mudah dilaksanakan dan hanya memerlukan penambahan makro dan terapkan pada penunjuk ke blok kod seterusnya (sebagai contoh, untuk Glibc hanya beberapa baris yang berubah dalam kod tersebut).

Inti kaedahnya adalah menggunakan data rawak dari mekanisme pengacakan alamat ASLR (mmap_base) untuk melindungi senarai yang dipautkan secara individu seperti Fast-Bins dan TCache. Sebelum menerapkan nilai penunjuk ke item seterusnya dalam senarai, pemeriksaan penukaran dan penjajaran topeng dilakukan di sepanjang tepi halaman memori. Penunjuk diganti dengan hasil operasi "(L >> PAGE_SHIFT) XOR (P)", di mana P adalah nilai penunjuk dan L adalah lokasi dalam memori di mana penunjuk ini disimpan.

Ketika digunakan dalam sistem ASLR (Alamat Ruang Tata Letak Pengacakan), beberapa bit L dengan alamat dasar timbunan berisi nilai rawak yang digunakan sebagai kunci untuk mengekod P (mereka diekstrak dengan operasi shift 12 bit untuk halaman 4096-bait).

Manipulasi sedemikian mengurangkan risiko menangkap pointer dalam eksploitasi, Oleh kerana penunjuk tidak disimpan dalam bentuk asalnya, dan untuk menggantinya, anda perlu mengetahui maklumat mengenai lokasi timbunan.

Kaedah ini berkesan untuk melindungi daripada serangan yang menggunakan definisi semula penunjuk separa (peralihan bait rendah), menulis semula penunjuk yang lengkap (ubah arah ke kod penyerang) dan ubah kedudukan senarai ke arah yang tidak selaras.

Sebagai contoh, ditunjukkan bahawa penggunaan Safe-Linking di malloc akan menyekat eksploitasi kerentanan CVE-2020-6007 yang baru-baru ini ditemui oleh penyelidik yang sama dalam lampu latar pintar Philips Hue Bridge yang disebabkan oleh buffer overflow dan memungkinkan untuk mengawal peranti itu.

Fuente: https://research.checkpoint.com


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.