Menemukan kerentanan di subsistem tty kernel Linux

Peneliti dari tim Google Project Zero merilis baru-baru ini melalui posting blog metode baru untuk mengeksploitasi kerentanan (CVE-2020-29661) dalam implementasi ioctl handler TIOCSPGRP dari Subsistem tty kernel Linux, serta mekanisme perlindungan terperinci yang dapat memblokir kerentanan ini.

Disebutkan dalam postingan bahwa masalahnya disebabkan oleh kesalahan dalam pengaturan kunci, yang mengarah ke kondisi balapan dalam kode /tty/tty_jobctrl.c, yang digunakan untuk membuat kondisi untuk mengakses memori setelah peluncuran (use-after-free), dieksploitasi oleh ruang pengguna melalui manipulasi dengan ioct- dengan memanggil TIOCSPGRP.

Selain informasi yang dipublikasikan, juga demo eksploitasi fungsional dilakukan untuk eskalasi hak istimewa di Debian 10 dengan kernel 4.19.0-13-amd64 dan yang juga tidak menutup kemungkinan dapat mempengaruhi berbagai distro, di antaranya tentu saja yang berbasis dan berasal dari Debian.

Banyak teknik eksploitasi individu dan opsi mitigasi yang saya jelaskan di sini bukanlah hal baru. Namun, saya pikir ada baiknya menuliskannya bersama-sama untuk menunjukkan bagaimana berbagai mitigasi berinteraksi dengan eksploitasi after-free yang cukup normal.

Cuplikan kode dalam posting blog ini yang relevan dengan exploit diambil dari versi 4.19.160 sebelumnya, karena itulah basis kernel Debian target; beberapa cuplikan kode lainnya berasal dari jalur utama Linux.

Pada saat yang sama, dalam artikel yang diterbitkan, penekanannya tidak begitu banyak pada teknik menciptakan eksploitasi fungsional, tetapi pada alat mana ada di dalam kernel untuk melindungi diri sendiri terhadap kerentanan seperti itu.

Kesimpulannya mengecewakan, seperti disebutkan bahwa metode seperti segmentasi memori di heap dan mengontrol akses ke memori setelah dibebaskan tidak diterapkan dalam praktik karena mengarah pada penurunan kinerja dan perlindungan berdasarkan CFI (Control Flow Integrity), yang memblokir eksploitasi di kemudian hari tahap serangan, membutuhkan perbaikan.

Jenis khusus dari perangkat terminal adalah terminal semu, yang digunakan ketika, misalnya, Anda membuka aplikasi terminal di lingkungan grafis atau terhubung ke mesin jarak jauh melalui SSH. Sementara perangkat terminal lain terhubung ke beberapa jenis perangkat keras, kedua ujung terminal semu dikendalikan oleh ruang pengguna, dan terminal semu dapat dibuat secara bebas oleh ruang pengguna (tanpa hak istimewa).

Setiap kali / dev / ptmx dibuka (kependekan dari "pseudo-terminal multiplexer"), deskriptor file yang dihasilkan mewakili sisi perangkat (disebut dalam dokumentasi dan sumber kernel sebagai "master pseudo-terminal") dari perangkat. terminal.

 Perangkat terminal yang sesuai (yang biasanya terhubung dengan shell) dibuat secara otomatis oleh kernel di bawah / dev / pts / .

Ketika melihat apa yang dapat membuat perbedaan dalam jangka panjang, penekanannya adalah pada penggunaan penganalisis statis tingkat lanjut atau menggunakan bahasa yang aman dari memori seperti dialek Rust dan C dengan anotasi yang diperluas (seperti C yang telah terbukti) untuk membangun pemeriksa status, kunci, objek dan pointer. Metode perlindungan juga menyebutkan mengaktifkan mode panic_on_oops, membuat struktur kernel hanya-baca dan membatasi akses ke panggilan sistem melalui mekanisme seperti seccomp.

Kesalahan yang menyebabkan masalah itu diperbaiki di kernel Linux pada 3 Desember tahun lalu. Masalah memanifestasikan dirinya dalam kernel sebelum versi 5.9.13, tetapi sebagian besar distribusi telah memperbaiki masalah dalam pembaruan paket kernel yang ditawarkan tahun lalu.

Kerentanan serupa juga disebutkan (CVE-2020-29660) yang ditemukan secara bersamaan dalam implementasi panggilan ioctl TIOCGSID, tetapi juga dihapus di mana-mana.

Akhirnya Jika Anda tertarik untuk mengetahui lebih banyak tentang itu, Anda dapat memeriksa detailnya Di tautan berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.