Kernel Linux 5.4 telah menerima tampalan untuk mengehadkan akses root kepada dalaman kernel

Linus Torvalds diterima termasuk dalam keluaran kernel Linux 5.4 yang akan datang ialah satu set patch "kuncian", dicadangkan David Howells (Red Hat) dan Matthew Garrett (Matthew garrett, berfungsi di Google) untuk menyekat akses pengguna root kepada kernel. Kefungsian berkaitan penguncian disertakan dalam modul LSM yang dimuatkan secara pilihan (Modul Keselamatan Linux), yang meletakkan penghalang antara UID 0 dan kernel, menyekat fungsi tahap rendah tertentu.

Jika penyerang mencapai pelaksanaan kod dengan hak akar, dia boleh melaksanakan kodnya pada peringkat kernel, contohnya, dengan menggantikan kernel menggunakan kexec atau membaca/menulis memori melalui /dev/kmem. Akibat yang paling jelas daripada aktiviti sedemikian mungkin melencong UEFI Secure Boot atau mendapatkan semula data sensitif yang disimpan pada peringkat kernel.

Pada mulanya, fungsi sekatan akar telah dibangunkan dalam konteks mengukuhkan perlindungan but yang disahkan, dan pengedaran telah menggunakan tampung pihak ketiga untuk menyekat pintasan UEFI Secure Boot untuk beberapa lama. Pada masa yang sama, sekatan tersebut tidak termasuk dalam komposisi utama kernel kerana perselisihan faham dalam pelaksanaannya dan kebimbangan akan gangguan kepada sistem sedia ada. Modul "lockdown" menyerap patch yang telah digunakan dalam pengedaran, yang direka bentuk semula dalam bentuk subsistem berasingan yang tidak terikat dengan UEFI Secure Boot.

Mod Lockdown mengehadkan akses kepada /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, mod nyahpepijat kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Struktur Maklumat Kad), beberapa antara muka ACPI dan CPU Daftar MSR, panggilan kexec_file dan kexec_load disekat, mod tidur adalah dilarang, penggunaan DMA untuk peranti PCI adalah terhad, import kod ACPI daripada pembolehubah EFI adalah dilarang,
Manipulasi dengan port I/O tidak dibenarkan, termasuk menukar nombor gangguan dan port I/O untuk port bersiri.

Secara lalai, modul penguncian tidak aktif, ia dibina apabila pilihan SECURITY_LOCKDOWN_LSM ditentukan dalam kconfig dan diaktifkan melalui parameter kernel "lockdown=", fail kawalan "/sys/kernel/security/lockdown" atau pilihan pemasangan LOCK_DOWN_KERNEL_FORCE_*, yang boleh mengambil nilai "integriti" dan "kerahsiaan". Dalam kes pertama, ciri yang membenarkan perubahan dibuat pada kernel yang sedang berjalan dari ruang pengguna disekat, dan dalam kes kedua, fungsi yang boleh digunakan untuk mengekstrak maklumat sensitif daripada kernel juga dilumpuhkan.

Adalah penting untuk ambil perhatian bahawa penguncian hanya mengehadkan akses standard kepada kernel, tetapi tidak melindungi daripada pengubahsuaian akibat daripada eksploitasi kelemahan. Untuk menyekat perubahan pada kernel yang sedang berjalan apabila eksploitasi digunakan oleh projek Openwall sedang berkembang modul berasingan LKRG (Linux Kernel Runtime Guard).

Sumber: opennet.ru

Tambah komen