Linux 5.4 kernel imepokea viraka ili kupunguza ufikiaji wa mizizi kwa vifaa vya ndani vya kernel

Linus Torvalds kukubaliwa iliyojumuishwa katika toleo lijalo la Linux 5.4 kernel ni seti ya viraka "kufuliΒ« iliyopendekezwa David Howells (Kofia Nyekundu) na Matthew Garrett (Mathayo garrett, inafanya kazi kwa Google) ili kuzuia ufikiaji wa mtumiaji wa mizizi kwenye kernel. Utendaji unaohusiana na kufuli umejumuishwa katika moduli ya LSM iliyopakiwa kwa hiari (Moduli ya Usalama ya Linux), ambayo huweka kizuizi kati ya UID 0 na kernel, ikizuia utendakazi fulani wa kiwango cha chini.

Mshambulizi akifanikisha utekelezaji wa msimbo na haki za mizizi, anaweza kutekeleza msimbo wake katika kiwango cha kernel, kwa mfano, kwa kubadilisha kernel kwa kutumia kexec au kumbukumbu ya kusoma/kuandika kupitia /dev/kmem. Matokeo ya dhahiri zaidi ya shughuli hiyo inaweza kuwa mchepuko UEFI Secure Boot au kurejesha data nyeti iliyohifadhiwa katika kiwango cha kernel.

Hapo awali, kazi za kizuizi cha mizizi zilitengenezwa katika muktadha wa kuimarisha ulinzi wa buti iliyoidhinishwa, na usambazaji umekuwa ukitumia viraka vya mtu wa tatu kuzuia kupita kwa UEFI Secure Boot kwa muda mrefu. Wakati huo huo, vikwazo vile havikujumuishwa katika utungaji mkuu wa kernel kutokana na kutoelewana katika utekelezaji wao na hofu ya kuvurugika kwa mifumo iliyopo. Moduli ya "kuzima" ilifyonza viraka vilivyotumika tayari katika usambazaji, ambavyo viliundwa upya katika mfumo wa mfumo mdogo tofauti ambao haujafungwa kwenye UEFI Secure Boot.

Hali ya kufunga inazuia ufikiaji wa /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, kprobes modi ya utatuzi, mmiotrace, tracefs, BPF, PCMCIA CIS (Muundo wa Taarifa ya Kadi), baadhi ya miingiliano ya ACPI na CPU. Rejesta za MSR, simu za kexec_file na kexec_load zimezuiwa, hali ya kulala imepigwa marufuku, matumizi ya DMA kwa vifaa vya PCI ni mdogo, uingizaji wa msimbo wa ACPI kutoka kwa vigeu vya EFI umepigwa marufuku,
Udanganyifu na bandari za I/O haziruhusiwi, ikiwa ni pamoja na kubadilisha nambari ya kukatiza na mlango wa I/O kwa mlango wa mfululizo.

Kwa chaguo-msingi, moduli ya kufunga haifanyi kazi, hujengwa wakati chaguo la SECURITY_LOCKDOWN_LSM limebainishwa katika kconfig na huwashwa kupitia kigezo cha kernel "lockdown=", faili ya kudhibiti "/sys/kernel/security/lockdown" au chaguzi za mkusanyiko. LOCK_DOWN_KERNEL_FORCE_*, ambayo inaweza kuchukua maadili "uadilifu" na "usiri". Katika kesi ya kwanza, vipengele vinavyoruhusu mabadiliko kufanywa kwa kernel inayoendesha kutoka kwa nafasi ya mtumiaji vimezuiwa, na katika kesi ya pili, utendakazi ambao unaweza kutumika kutoa taarifa nyeti kutoka kwa kernel pia umezimwa.

Ni muhimu kutambua kwamba kufuli kunazuia tu ufikiaji wa kawaida kwa kernel, lakini hailinde dhidi ya marekebisho kama matokeo ya unyonyaji wa udhaifu. Ili kuzuia mabadiliko kwenye kernel inayoendesha wakati matumizi yanatumiwa na mradi wa Openwall yanaendelea moduli tofauti LKRG (Linux Kernel Runtime Guard).

Chanzo: opennet.ru

Kuongeza maoni