Patch diperkenalkan untuk rawak alamat tindanan kernel Linux untuk panggilan sistem

Kees Cook, bekas ketua pentadbir sistem kernel.org dan ketua Pasukan Keselamatan Ubuntu, kini bekerja di Google untuk melindungi Android dan ChromeOS, menerbitkan satu set tampalan untuk merawak offset dalam tindanan kernel apabila memproses panggilan sistem. Tampalan meningkatkan keselamatan kernel dengan menukar penempatan tindanan, menjadikan serangan pada tindanan menjadi lebih sukar dan kurang berjaya. Pelaksanaan awal menyokong pemproses ARM64 dan x86/x86_64.

Idea asal untuk tampalan adalah milik projek PaX RANdkSTACK. Pada 2019, Elena Reshetova, seorang jurutera dari Intel, cuba mencipta pelaksanaan idea ini yang sesuai untuk dimasukkan dalam kernel Linux utama. Kemudian, inisiatif itu diambil oleh Kees Cook, yang membentangkan pelaksanaan yang sesuai untuk versi utama kernel. Tampalan itu dirancang untuk dimasukkan sebagai sebahagian daripada keluaran 5.13. Mod akan dilumpuhkan secara lalai. Untuk mendayakannya, parameter baris arahan kernel "randomize_kstack_offset=on/off" dan tetapan CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT dicadangkan. Overhed untuk mendayakan mod dianggarkan pada kira-kira 1% kehilangan prestasi.

Intipati perlindungan yang dicadangkan adalah untuk memilih ofset tindanan rawak untuk setiap panggilan sistem, yang menyukarkan untuk menentukan susun atur tindanan dalam ingatan, walaupun selepas menerima data alamat, kerana panggilan sistem seterusnya akan menukar alamat asas tindanan. Tidak seperti pelaksanaan PaX RANDKSTACK, dalam patch yang dicadangkan untuk dimasukkan ke dalam kernel, rawak dilakukan bukan pada peringkat awal (cpu_current_top_of_stack), tetapi selepas menetapkan struktur pt_regs, yang menjadikannya mustahil untuk menggunakan kaedah berasaskan ptrace untuk menentukan offset rawak semasa panggilan sistem yang berjalan lama.

Sumber: opennet.ru

Tambah komen