Derbyniodd cnewyllyn Linux 5.4 glytiau i gyfyngu ar fynediad gwreiddiau i fewnolion cnewyllyn

Linus Torvalds derbyn wedi'i gynnwys yn y datganiad sydd i ddod o'r cnewyllyn Linux 5.4 yn set o glytiau "cloi«, arfaethedig David Howells (Red Hat) a Matthew Garrett (Matthew garrett, yn gweithio yn Google) i gyfyngu mynediad defnyddiwr gwraidd i'r cnewyllyn. Mae swyddogaeth sy'n gysylltiedig â chlo i lawr wedi'i chynnwys mewn modiwl LSM sydd wedi'i lwytho'n ddewisol (Modiwl Diogelwch Linux), sy'n gosod rhwystr rhwng UID 0 a'r cnewyllyn, gan gyfyngu ar rai ymarferoldeb lefel isel.

Os yw ymosodwr yn cyflawni gweithrediad cod gyda hawliau gwraidd, gall weithredu ei god ar lefel y cnewyllyn, er enghraifft, trwy ddefnyddio kexec yn lle'r cnewyllyn neu gof darllen / ysgrifennu trwy /dev/kmem. Efallai mai canlyniad mwyaf amlwg gweithgaredd o'r fath yw ffordd osgoi UEFI Secure Boot neu adfer data sensitif sydd wedi'i storio ar lefel y cnewyllyn.

I ddechrau, datblygwyd swyddogaethau cyfyngu gwreiddiau yng nghyd-destun cryfhau amddiffyniad cist wedi'i ddilysu, ac mae dosbarthiadau wedi bod yn defnyddio clytiau trydydd parti i rwystro ffordd osgoi Cist Diogel UEFI ers cryn amser. Ar yr un pryd, ni chynhwyswyd cyfyngiadau o'r fath ym mhrif gyfansoddiad y cnewyllyn oherwydd anghytundebau yn eu gweithrediad ac ofnau o darfu ar systemau presennol. Roedd y modiwl “cloi i lawr” yn amsugno clytiau a ddefnyddiwyd eisoes mewn dosbarthiadau, a gafodd eu hailgynllunio ar ffurf is-system ar wahân nad oedd ynghlwm wrth UEFI Secure Boot.

Mae'r modd cloi yn cyfyngu ar fynediad i /dev/mem, /dev/kmem, /dev/port, /proc/kcore, debugfs, modd dadfygio kprobes, mmiotrace, tracefs, BPF, PCMCIA CIS (Strwythur Gwybodaeth Cerdyn), rhai rhyngwynebau ACPI a CPU Mae cofrestrau MSR, galwadau kexec_file a kexec_load wedi'u rhwystro, mae modd cysgu wedi'i wahardd, mae defnydd DMA ar gyfer dyfeisiau PCI yn gyfyngedig, gwaherddir mewnforio cod ACPI o newidynnau EFI,
Ni chaniateir trin â phorthladdoedd I/O, gan gynnwys newid y rhif ymyrraeth a'r porthladd I/O ar gyfer y porthladd cyfresol.

Yn ddiofyn, nid yw'r modiwl cloi yn weithredol, mae'n cael ei adeiladu pan fydd yr opsiwn SECURITY_LOCKDOWN_LSM wedi'i nodi yn kconfig ac yn cael ei actifadu trwy'r paramedr cnewyllyn "cloi i lawr =", y ffeil rheoli "/ sys / cnewyllyn / diogelwch / cloi i lawr" neu opsiynau cydosod LOCK_DOWN_KERNEL_FORCE_*, a all gymryd y gwerthoedd "uniondeb" a "chyfrinachedd". Yn yr achos cyntaf, mae nodweddion sy'n caniatáu i newidiadau gael eu gwneud i'r cnewyllyn rhedeg o ofod defnyddwyr yn cael eu rhwystro, ac yn yr ail achos, mae ymarferoldeb y gellir ei ddefnyddio i dynnu gwybodaeth sensitif o'r cnewyllyn hefyd yn anabl.

Mae'n bwysig nodi bod cloi dim ond yn cyfyngu ar fynediad safonol i'r cnewyllyn, ond nid yw'n amddiffyn rhag addasiadau o ganlyniad i ecsbloetio gwendidau. I rwystro newidiadau i'r cnewyllyn rhedeg pan fydd gorchestion yn cael eu defnyddio gan brosiect Openwall yn datblygu modiwl ar wahân LKRG (Linux Kernel Runtime Guard).

Ffynhonnell: opennet.ru

Ychwanegu sylw