Openwall projekt tuuma modul (Linux Kernel Runtime Guard) on loodud tuvastama ja blokeerima rünnakuid ning tuuma struktuuri terviklikkuse rikkumisi. Näiteks võib moodul kaitsta volitamata muudatuste tegemise eest töötavas tuumas ning kasutaja protsesside õiguste muutmise katsete (exploitide rakendamise määramine) eest. Moodul sobib nii teadaolevate Linuxi tuuma exploitide kaitsmiseks (näiteks olukordades, kus süsteemis on tuuma uuendamine keeruline) kui ka veel avastamata haavatavuste exploitide vastu. GPLv2 litsentsi all.
Uue versiooni muudatuste hulgas on:
- Projekti LKRG positsioneerimine on muudetud, nüüd ei jagata seda eraldi süsteemideks terviklikkuse kontrollimiseks ja exploitide rakendamise määramiseks, vaid tutvustatakse ühtse tootena rünnakute ja terviklikkuse lahknevuste tuvastamiseks.
- Tagatud on ühilduvus Linuxi kernidega versioonidest 5.3 kuni 5.7, samuti kernelitega, mis on ehitatud agressiivsete GCC optimeerimisega, ilma CONFIG_USB ja CONFIG_STACKTRACE valikuteta või CONFIG_UNWINDER_ORC valikuga, samuti kernidega, kus puuduvad LKRG funktsioonid, kui neid on võimalik vältida.
- Kogumise käigus kontrollitakse teatud kohustuslikke CONFIG_* tuuma seadeid, et genereerida arusaadavate veateadete asemel selged tõrketeated;
- Lisatud tugi ooterežiimile (ACPI S3, suspend to RAM) ja une (S4, suspend to disk) režiimidele;
- Makefile'isse on lisatud DKMS-i tugi;
- Käivitati eksperimentaalne tugi 32-bitistele ARM platvormidele (testitud Raspberry Pi 3 Model B-l). Varem olemas olnud AArch64 (ARM64) tugi on täiendatud Raspberry Pi 4-le ühilduvuse tagamiseks;
- Lisatud on uued käitlejad (hook), sealhulgas kutsumise käitleja capable(), et paremini määrata ära eksploitatsioonid, mis manipuleerivad ««, mitte protsesside identifikaatorite ();
- Pakutud on uus loogika nimede ruumide piirangutest (nt Docker konteineritest) väljumise katsete määramiseks;
- x86-64 süsteemides on tagatud SMAP (Supervisor Mode Access Prevention) bitide kontroll ja rakendamine, mis on mõeldud kasutajaruumi andmete kaitsmiseks privileegitud koodi juuresolekust, mis töötab tuumatasemel. SMEP (Supervisor Mode Execution Prevention) kaitse on varem ellu viidud;
- Töötamise käigus on LKRG seadistuste paigutamine saavutatud tavaliselt ainult lugemiseks mõeldud mälulehe,
- Logides on info, mis võib olla kõige kasulikum rünnakute jaoks (näiteks teave kärnadi aadresside kohta), piiratud tõrketaseme (log_level=4 ja kõrgem) abil, mis on vaikimisi välja lülitatud.
- Protsesside jälgimise andmebaasi skaleeritavust on suurendatud - ühe RB puu asemel, mida kaitseb üks spinlock, on kasutusele võetud 512 RB puu hulk, mida vastavalt kaitseb 512 lugemis-kirjutamisblokeeringut.
- Rakendatud ja vaikimisi lubatud režiim, kus protsessi identifikaatorite terviklikkuse kontrollimist teostatakse tihti ainult praeguse ülesande jaoks ja valikuliselt aktiveeritavate (ärkava) ülesannete jaoks. Muude ülesannete puhul, mis on unerežiimis või töötavad LKRG API-le kontrollitava kerniga sidumiseta, toimub kontroll harvemini.
- Uued sysctl ja mooduli parameetrid on lisatud LKRG täpsustamiseks, samuti kaks sysctl-i, et lihtsustada seadistamist arendajate ettevalmistatud peenhäälestuskomplektide (profiles) valimise kaudu.
- Vaikeseaded on muudetud, et saavutada tasakaal jälgimise ja reageerimise efektiivsuse ning jõudluse mõju ja valehäirete riski vahel.
- Systemd unit-fail on ümber töötatud LKRG mooduli laadimiseks varajases laadimisfaasis (mooduli keelamiseks saab kasutada kerneli käskluse parameetrit).
Uue versiooni optimeerimisi arvesse võttes hinnatakse LKRG 0.8 jõudluse langus vaikerežiimil ('heavy') 2.5% ja kerge režiimi ('light') puhul 2% tasemele.
Hiljuti korraldati LKRG paketide efektiivsuse analüüs juurkomplektide tuvastamiseks. parimaid tulemusi, ilma valehäireteta, tuvastades 8 9 testitud rootkitist, mis töötavad tuumatasemel (tuletati esile rootkitid Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit ja Sutekh, kuid jäeti välja Keysniffer, mis on tuumamooduli ja kägija, mitte tõeline rootkit). Võrdluseks, paketid AIDE, OSSEC ja Rootkit Hunter tuvastasid 2 rootkitist 9-st, samas kui Chkrootkit ei tuvastanud ühtegi. Samuti ei toeta LKRG kasutajaruumi pandud rootkitide tuvastamist, seega saavutatakse parim efektiivsus AIDE ja LKRG ühendamise abil, mis aitas tuvastada 14 15-st kõigist tüüpidest rootkitidest.
Lisaks võib märkida, et jaotuse arendaja alustasin valmistatud pakettide DKMS jaoks Debianile, Whonixile, Qubesile ja Kicksecure'ile, ning pakett on juba uuendatud versioonile 0.8. LKRG paketid on samuti saadaval Venemaa ja .
LKRG-s toimimist kontrollitakse, võrreldes praegust koodi ja tuuma ning moodulite andmeid, olulisi andmestruktuure ja CPU seadeid salvestatud hash'ide või vastavate mälu, andmestruktuuride või registrite kopeerimisega. Kontrollid aktiveeruvad nii perioodiliselt ajastuse järgi kui ka erinevate sündmuste toimumisel.
Võimalike kuritarvituste määramine ja rünnakute blokeerimine toimub tuuma ressources'i juurdepääsu andmise eelõhtul (näiteks enne faili avamist), kuid pärast pahatahtliku autoriseerimise saamist protsessi poolt (näiteks UID vahetus). Kui protsesside volituste rikkumist tuvastatakse, lõpetatakse need vaikesätete kohaselt, mis on piisav paljude kuritarvituste blokeerimiseks.
Allikas: opennet.ru
