Projek itu Openwall telah mengeluarkan pelepasan modul kernel LKRG 0.8 (Pengawal Masa Jalan Kernel Linux), direka untuk mengesan dan menyekat serangan y pelanggaran integriti struktur teras.
Modul ini ia sesuai untuk mengatur perlindungan daripada eksploitasi yang sudah diketahui untuk kernel Linux (misalnya, dalam keadaan di mana mengemas kini kernel pada sistem bermasalah), seperti menentang eksploitasi untuk kelemahan yang tidak diketahui.
Apa yang baru LKRG 0.8?
Dalam versi baru ini kedudukan projek LKRG telah diubah, apa yang perlujam tidak dibahagikan kepada subsistem yang berasingan untuk mengesahkan integriti dan menentukan penggunaan eksploitasi, tetapi ia dipersembahkan sebagai produk yang lengkap untuk mengenal pasti serangan dan pelbagai pelanggaran integriti;
Mengenai keserasian, versi baru ini, kita dapati bahawa ia serasi dengan kernel Linux dari 5.3 hingga 5.7serta kernel yang disusun dengan pengoptimuman GCC yang agresif, tanpa pilihan CONFIG_USB dan CONFIG_STACKTRACE atau dengan pilihan CONFIG_UNWINDER_ORCbegitu juga dengan kernel di mana tidak ada fungsi yang dipintas oleh LKRG jika anda dapat melakukannya tanpa.
Sebagai tambahan kepada sokongan eksperimental untuk platform ARM 32-bit (diuji pada Raspberry Pi 3 Model B), sementara untuk sokongan yang tersedia sebelumnya untuk AArch64 (ARM64) dilengkapi dengan keserasian dengan Raspberry Pi 4.
Selain itu, cangkuk baru telah ditambah, yang merangkumi pengendali panggilan "hook ()" untuk mengenal pasti kelemahan yang lebih baik yang dimanipulasi oleh "kemampuan", dan bukannya pengecam proses.
Pada sistem x86-64, bit SMAP diperiksa dan digunakan (Pencegahan akses dalam mod penyelia), ddireka untuk menyekat akses ke data di ruang pengguna dari kod istimewa yang dilaksanakan di peringkat kernel. Perlindungan SMEP (Supervisor Mode Execution Prevention) telah dilaksanakan lebih awal.
Telah peningkatan skala pangkalan data penjejakan proses: bukannya pokok RB tunggal yang dilindungi oleh spinlock, jadual hash 512 pokok RB terlibat, dilindungi oleh 512 kunci baca dan tulis, masing-masing;
Mod lalai dilaksanakan dan diaktifkan, di mana pemeriksaan integriti pengecam Pemprosesan sering dilakukan hanya untuk tugas semasa, dan juga pilihan untuk tugas yang dipicu (bangun). Untuk tugas-tugas lain yang dalam keadaan ditangguhkan atau berfungsi tanpa panggilan API kernel yang dikendalikan LKRG, pengesahan dilakukan lebih jarang.
Sebagai tambahan kepada fail unit sistemd telah direka semula untuk memuat modul LKRG pada tahap awal pemuatan (pilihan baris perintah kernel dapat digunakan untuk mematikan modul);
Semasa penyusunan, beberapa tetapan kernel CONFIG_ * wajib diperiksa untuk menghasilkan mesej ralat yang bermakna daripada kesalahan yang tidak jelas.
Perubahan lain yang menonjol dalam versi baru ini:
- Menambah sokongan untuk mod Standby (ACPI S3, Suspend to RAM) dan Suspend (S4, Suspend to Disk).
- Menambah sokongan untuk DKMS di Makefile.
- Logik baru dicadangkan untuk menentukan percubaan untuk keluar dari sekatan ruang nama (contohnya, dari kontena Docker).
- Dalam prosesnya, konfigurasi LKRG diletakkan di halaman memori, biasanya hanya baca.
- Output ke log maklumat yang mungkin paling berguna untuk serangan (misalnya, maklumat alamat di kernel) dibatasi oleh mod debug (log_level = 4 dan lebih tinggi), yang dilumpuhkan secara lalai.
- Parameter sysctl dan modul baru telah ditambahkan untuk menyesuaikan LKRG, serta dua sysctl untuk konfigurasi yang dipermudah dengan memilih dari profil yang disediakan oleh pembangun.
- Tetapan lalai diubah untuk mencapai keseimbangan yang lebih seimbang antara kelajuan pengesanan pelanggaran dan keberkesanan reaksi, di satu pihak, dan kesan terhadap produktiviti dan risiko positif palsu di pihak lain.
- Menurut pengoptimuman yang diusulkan dalam versi baru, kinerja menurun ketika menerapkan LKRG 0.8 diperkirakan 2.5% dalam mod lalai ("berat") dan 2% dalam mod cahaya ("cahaya").
Sekiranya anda ingin mengetahui lebih lanjut mengenainya, anda boleh berjumpa perincian di sini.