Patch diperkenalkan untuk mengacak alamat tumpukan kernel Linux untuk panggilan sistem

Kees Cook, mantan kepala administrator sistem kernel.org dan pemimpin Tim Keamanan Ubuntu, yang sekarang bekerja di Google untuk mengamankan Android dan ChromeOS, menerbitkan serangkaian patch untuk mengacak offset di tumpukan kernel saat memproses panggilan sistem. Patch meningkatkan keamanan kernel dengan mengubah penempatan tumpukan, membuat serangan pada tumpukan menjadi lebih sulit dan kurang berhasil. Implementasi awal mendukung prosesor ARM64 dan x86/x86_64.

Ide awal untuk patch ini adalah milik proyek PaX RANDKSTACK. Pada tahun 2019, Elena Reshetova, seorang insinyur dari Intel, mencoba membuat implementasi ide ini yang cocok untuk dimasukkan ke dalam kernel Linux utama. Kemudian, inisiatif tersebut diambil oleh Kees Cook, yang memperkenalkan implementasi yang cocok untuk versi utama kernel. Tambalan tersebut rencananya akan disertakan sebagai bagian dari rilis 5.13. Mode ini akan dinonaktifkan secara default. Untuk mengaktifkannya, parameter baris perintah kernel β€œrandomize_kstack_offset=on/off” dan pengaturan CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT diusulkan. Biaya tambahan untuk mengaktifkan mode ini diperkirakan sekitar 1% kehilangan kinerja.

Inti dari perlindungan yang diusulkan adalah memilih offset tumpukan acak untuk setiap panggilan sistem, yang mempersulit penentuan tata letak tumpukan di memori, bahkan setelah menerima data alamat, karena panggilan sistem berikutnya akan mengubah alamat dasar tumpukan. Berbeda dengan implementasi PaX RANDKSTACK, pada patch yang diusulkan untuk dimasukkan ke dalam kernel, pengacakan dilakukan bukan pada tahap awal (cpu_current_top_of_stack), tetapi setelah pengaturan struktur pt_regs, sehingga tidak mungkin menggunakan metode berbasis ptrace untuk menentukan offset acak selama panggilan sistem yang berjalan lama.

Sumber: opennet.ru

Tambah komentar