Kernel Linux 5.4 menerima tambalan untuk membatasi akses root ke internal kernel

Linus Torvalds diterima termasuk dalam rilis mendatang dari kernel Linux 5.4 adalah serangkaian tambalan "kuncian« diajukan David Howells (Red Hat) dan Matthew Garrett (Matthew garrett, bekerja di Google) untuk membatasi akses pengguna root ke kernel. Fungsionalitas terkait penguncian disertakan dalam modul LSM yang dimuat secara opsional (Modul Keamanan Linux), yang menempatkan penghalang antara UID 0 dan kernel, sehingga membatasi fungsionalitas tingkat rendah tertentu.

Jika penyerang mencapai eksekusi kode dengan hak root, ia dapat mengeksekusi kodenya di tingkat kernel, misalnya dengan mengganti kernel menggunakan kexec atau memori baca/tulis melalui /dev/kmem. Konsekuensi paling nyata dari aktivitas tersebut mungkin adalah jalan pintas UEFI Secure Boot atau mengambil data sensitif yang disimpan di tingkat kernel.

Awalnya, fungsi pembatasan root dikembangkan dalam konteks memperkuat perlindungan boot terverifikasi, dan distribusi telah menggunakan patch pihak ketiga untuk memblokir bypass UEFI Secure Boot selama beberapa waktu. Pada saat yang sama, pembatasan tersebut tidak termasuk dalam komposisi utama kernel karena perbedaan pendapat dalam implementasinya dan kekhawatiran akan gangguan terhadap sistem yang ada. Modul “lockdown” menyerap patch yang sudah digunakan dalam distribusi, yang didesain ulang dalam bentuk subsistem terpisah yang tidak terikat dengan UEFI Secure Boot.

Mode penguncian membatasi akses ke /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, mode debug kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Struktur Informasi Kartu), beberapa antarmuka ACPI dan CPU Register MSR, panggilan kexec_file dan kexec_load diblokir, mode tidur dilarang, penggunaan DMA untuk perangkat PCI dibatasi, impor kode ACPI dari variabel EFI dilarang,
Manipulasi dengan port I/O tidak diperbolehkan, termasuk mengubah nomor interupsi dan port I/O untuk port serial.

Secara default, modul lockdown tidak aktif, modul ini dibuat ketika opsi SECURITY_LOCKDOWN_LSM ditentukan di kconfig dan diaktifkan melalui parameter kernel “lockdown=”, file kontrol “/sys/kernel/security/lockdown” atau opsi perakitan LOCK_DOWN_KERNEL_FORCE_*, yang dapat mengambil nilai "integritas" dan "kerahasiaan". Dalam kasus pertama, fitur yang memungkinkan perubahan dilakukan pada kernel yang berjalan dari ruang pengguna diblokir, dan dalam kasus kedua, fungsionalitas yang dapat digunakan untuk mengekstrak informasi sensitif dari kernel juga dinonaktifkan.

Penting untuk dicatat bahwa lockdown hanya membatasi akses standar ke kernel, namun tidak melindungi terhadap modifikasi akibat eksploitasi kerentanan. Untuk memblokir perubahan pada kernel yang sedang berjalan ketika eksploitasi digunakan oleh proyek Openwall sedang berkembang modul terpisah LKRG (Penjaga Waktu Proses Kernel Linux).

Sumber: opennet.ru

Tambah komentar