Mae prosiect Openwall wedi rhyddhau'r modiwl cnewyllyn LKRG 1.0.0 (Linux Mae Kernel Runtime Guard (Kernel Runtime Guard) wedi'i gynllunio i wirio cyfanrwydd strwythurau'r cnewyllyn a chanfod ymdrechion i fanteisio ar wendidau'r cnewyllyn. Mae rhyddhau fersiwn 1.0.0 yn nodi aeddfedrwydd y prosiect. Mae cod y prosiect wedi'i ddosbarthu o dan y drwydded GPLv2.
Mae'r modiwl yn addas ar gyfer y ddau amddiffyniad rhag ymosodiadau, trin gwendidau sydd eisoes yn hysbys yn y cnewyllyn Linux, i wrthweithio camfanteision sy'n manteisio ar wendidau anhysbys o'r blaen, oni bai eu bod yn defnyddio mesurau arbennig i osgoi LKRG. Mae amddiffyniad yn seiliedig ar ganfod newidiadau anawdurdodedig i'r cnewyllyn sy'n rhedeg (gwirio uniondeb) a monitro newidiadau mewn breintiau prosesau defnyddwyr (canfod camfanteision).
Perfformir y gwiriad cyfanrwydd yn seiliedig ar gymharu hashes a gyfrifir ar gyfer y meysydd pwysicaf o gof a strwythurau data cnewyllyn, megis IDT (Tabl Disgrifio Ymyriadau), MSR, tablau galwadau system, yr holl weithdrefnau a swyddogaethau, trinwyr ymyriadau, rhestrau o fodiwlau wedi'u llwytho, cynnwys yr adran ".text" o fodiwlau a phriodoleddau proses. Caiff y weithdrefn wirio ei actifadu'n gyfnodol gan amserydd neu pan fydd digwyddiadau penodol yn digwydd yn y cnewyllyn, er enghraifft, wrth weithredu galwadau system setuid, setreuid, fork, exit, execve a do_init_module.
Caiff y modd y gellir adnabod camfanteisio a rhwystro ymosodiadau eu gwneud ar y cam cyn i'r cnewyllyn roi mynediad i adnoddau (er enghraifft, cyn agor ffeil), ond ar Γ΄l i'r broses dderbyn breintiau heb awdurdod (er enghraifft, newid yr UID). Pan ganfyddir ymddygiad prosesau heb awdurdod, cΓ’nt eu terfynu'n orfodol, sy'n ddigon i rwystro llawer o gamfanteision. Amcangyfrifir bod costau uwchben y modiwl yn 2-2.5%.
Mae pensaernΓ―aeth a gefnogir yn cynnwys x86-64, AArch64 (ARM64), ARM32, a x86. Mae LKRG 1.0.0 wedi'i brofi gyda chnewyllyn o wahanol ddosraniadau, gan ddechrau gyda chnewyllyn 3.10 o RHEL.CentOS 7 ac yn gorffen gyda 6.17-rc4 o'r storfa lle mae Fedora 44 yn cael ei baratoi ar gyfer ei ryddhau. Mae pecynnau ar gael ar gyfer dosraniadau ALT. Linux, Arch Linux, Astra Linux, Gentoo, Guix, NixOS, Rocky Linux, Whonix, Yocto ac OpenBMC. Wedi'i gasglu ar gyfer Rocky Linux gellir defnyddio pecynnau yn RHEL 8/9 a dosraniadau deilliadol fel AlmaLinux 8/9, a phecynnau ar gyfer Whonix yn Debian ΠΈ Ubuntu.
Ymhlith y newidiadau yn y fersiwn newydd:
- Sicrheir cydnawsedd Γ’ chnewyllynnau Linux hyd at ryddhad 6.17-rc4.
- Pan gaiff ei ddefnyddio gyda chnewyllyn ers 6.13, mae rhyng-gipio galwadau o bell i override_creds() a revert_creds() wedi'i atal, sydd wedi cyfyngu ar ganfod ymosodiadau sy'n ailddiffinio'r pwyntydd cred. Gwnaed ymdrechion i wneud iawn am y cyfyngiadau trwy ychwanegu gwiriadau ar gyfer ailysgrifennu'r pwyntydd cred mewn man arall yn y cnewyllyn.
- Stopiwyd olrhain gormodol manylion mewngofnodi nad ydynt wedi'u gwirio am eu cyfanrwydd. Gostyngodd y newid y sylfaen cod tua 1500 o linellau.
- Ychwanegwyd cefnogaeth ar gyfer yr hyn a ymddangosodd yn y cnewyllyn Linux Mecanwaith 6.10 ar gyfer creu ffeiliau dros dro yn system ffeiliau OverlayFS gan ddefnyddio'r opsiwn O_TMPFILE (ovl_tmpfile). Mae'r gefnogaeth hon yn angenrheidiol i atal canlyniadau positif ffug sy'n digwydd wrth ddefnyddio cynwysyddion ynysig ar systemau gyda chnewyllyn 6.10-6.12.
- Ar gyfer systemau x86_64, mae cefnogaeth wedi'i hychwanegu ar gyfer Intel CET (Technoleg Gorfodi Llif Rheoli) i amddiffyn cod gweithredadwy gan ddefnyddio cyfarwyddiadau IBT (olrhain cangen anuniongyrchol), yn ogystal Γ’ diogelwch meddalwedd kCFI (Cyfanrwydd Llif Rheoli'r Cnewyllyn) i rwystro torri'r drefn weithredu arferol (llif rheoli) o ganlyniad i ddefnyddio manteision sy'n newid pwyntyddion i swyddogaethau sydd wedi'u storio yn y cof.
- I gysylltu llawer o drinwyr, yn lle kretprobes, defnyddir y mecanwaith kprobes, sy'n symleiddio'r cod gosod bachyn ac yn caniatΓ‘u cyflawni perfformiad uwch.
- Mae'r ffordd y mae cloeon data sy'n benodol i brosesau (cloeon) yn y cnewyllyn (data cysgod fesul tasg) yn cael eu trin wedi'u hailweithio. Drwy ddileu cloeon diangen, roedd hi'n bosibl cynyddu perfformiad cyrchu data o'r fath.
- Trwsiwyd bygiau a achosodd amodau ras, problemau gwirio uniondeb, a chanlyniadau positif ffug.
- Cefnogaeth well ar gyfer adeiladu gan ddefnyddio Clang.
Ffynhonnell: opennet.ru
