Ang Linux 5.4 kernel ay nakatanggap ng mga patch upang paghigpitan ang root access sa mga kernel internals

Linus Torvalds tinanggap kasama sa paparating na release ng Linux 5.4 kernel ay isang set ng mga patch "LockdownΒ« iminungkahi David Howells (Red Hat) at Matthew Garrett (Si Matthew garrett, gumagana sa Google) upang paghigpitan ang pag-access ng root user sa kernel. Ang functionality na nauugnay sa Lockdown ay kasama sa isang opsyonal na naka-load na LSM module (Module ng Seguridad ng Linux), na naglalagay ng hadlang sa pagitan ng UID 0 at ng kernel, na naghihigpit sa ilang mababang antas ng pag-andar.

Kung nakamit ng isang attacker ang code execution na may root rights, maaari niyang i-execute ang kanyang code sa kernel level, halimbawa, sa pamamagitan ng pagpapalit ng kernel gamit ang kexec o reading/writing memory sa pamamagitan ng /dev/kmem. Ang pinaka-halatang kahihinatnan ng naturang aktibidad ay maaaring bypass UEFI Secure Boot o pagkuha ng sensitibong data na nakaimbak sa antas ng kernel.

Sa una, ang mga function ng paghihigpit sa ugat ay binuo sa konteksto ng pagpapalakas ng proteksyon ng na-verify na boot, at ang mga distribusyon ay gumagamit ng mga patch ng third-party upang harangan ang bypass ng UEFI Secure Boot sa loob ng mahabang panahon. Kasabay nito, ang mga naturang paghihigpit ay hindi kasama sa pangunahing komposisyon ng kernel dahil sa mga hindi pagkakasundo sa kanilang pagpapatupad at takot sa pagkagambala sa mga umiiral na sistema. Ang "lockdown" na module ay sumisipsip ng mga patch na ginamit na sa mga distribusyon, na muling idinisenyo sa anyo ng isang hiwalay na subsystem na hindi nakatali sa UEFI Secure Boot.

Pinaghihigpitan ng Lockdown mode ang access sa /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes debug mode, mmiotrace, tracefs, BPF, PCMCIA CIS (Card Information Structure), ilang ACPI interface at CPU Ang mga rehistro ng MSR, ang mga tawag sa kexec_file at kexec_load ay naka-block, ipinagbabawal ang sleep mode, ang paggamit ng DMA para sa mga PCI device ay limitado, ang pag-import ng ACPI code mula sa mga variable ng EFI ay ipinagbabawal,
Ang mga manipulasyon sa mga I/O port ay hindi pinapayagan, kabilang ang pagpapalit ng interrupt number at I/O port para sa serial port.

Bilang default, ang module ng lockdown ay hindi aktibo, ito ay binuo kapag ang SECURITY_LOCKDOWN_LSM na opsyon ay tinukoy sa kconfig at na-activate sa pamamagitan ng kernel parameter na "lockdown=", ang control file "/sys/kernel/security/lockdown" o mga opsyon sa pagpupulong LOCK_DOWN_KERNEL_FORCE_*, na maaaring kunin ang mga halagang "integridad" at "kumpidensyal". Sa unang kaso, ang mga feature na nagbibigay-daan sa mga pagbabago na gawin sa tumatakbong kernel mula sa user space ay na-block, at sa pangalawang kaso, ang functionality na maaaring magamit upang kunin ang sensitibong impormasyon mula sa kernel ay hindi rin pinagana.

Mahalagang tandaan na nililimitahan lamang ng lockdown ang karaniwang pag-access sa kernel, ngunit hindi pinoprotektahan laban sa mga pagbabago bilang resulta ng pagsasamantala sa mga kahinaan. Upang harangan ang mga pagbabago sa tumatakbong kernel kapag ang mga pagsasamantala ay ginagamit ng proyekto ng Openwall ay umuunlad hiwalay na modyul LKRG (Linux Kernel Runtime Guard).

Pinagmulan: opennet.ru

Magdagdag ng komento