Projekat Openwall je nedavno najavio izdavanje LKRG 0.9.4 kernel modula (Linux Kernel Runtime Guard), dizajniran za otkrivanje i blokiranje napada i kršenja integriteta struktura kernela.
LKRG je upakovan kao modul kernela koji se može učitati koji pokušava otkriti neovlaštene promjene u pokrenutom kernelu (provjera integriteta) ili promjene u dozvolama korisničkih procesa (otkrivanje ranjivosti).
Provjera integriteta se vrši na osnovu poređenja izračunatih hashova za najvažnija memorijska područja i strukture podataka kernela (IDT (Interrupt Description Table), MSR, tablice sistemskih poziva, sve procedure i funkcije, rukovaoci prekida, liste učitanih modula, sadržaj .text odjeljka modula, procesnih atributa, itd.).
Procedura verifikacije se periodično aktivira pomoću tajmera i kada se dogode različiti događaji kernela (na primjer, kada se izvršavaju sistemski pozivi setuid, setreuid, fork, exit, execve, do_init_module, itd.).
O Linux Kernel Runtime Guard
Detekcija moguće upotrebe eksploatacije i blokiranje napada se izvode u fazi prije nego što kernel omogući pristup resursima (na primjer, prije otvaranja datoteke), ali nakon što su procesu dodijeljene neovlaštene dozvole (na primjer, promjena UID-a) .
Kada se otkrije neovlašteno ponašanje procesa, oni se prisilno prekidaju, što je dovoljno da blokira mnoge eksploatacije. Budući da je projekat u fazi razvoja i optimizacije još nisu izvršene, ukupni operativni troškovi modula iznose oko 6.5%, ali se u budućnosti planira značajno smanjenje ove cifre.
Modul pogodan je i za organiziranje zaštite od već poznatih eksploatacija za Linux kernel da se suprotstavi eksploataciji još nepoznatih ranjivosti, ako ne koriste posebne mjere da zaobiđu LKRG.
Autori ne isključuju prisustvo grešaka u LKRG kodu i moguće lažne pozitivne rezultate, stoga se korisnici pozivaju da uporede rizike mogućih grešaka u LKRG-u sa prednostima predložene metode zaštite.
Od pozitivnih svojstava LKRG-a, napominje se da je zaštitni mehanizam napravljen u obliku modula koji se može učitati, a ne zakrpe kernela, što mu omogućava da se koristi s regularnim distribucijskim jezgrama.
Glavne nove karakteristike LKRG 0.9.4
U ovoj novoj verziji modula koja je predstavljena, to je istaknuto dodata podrška za OpenRC sistem pokretanja, kao i dodavanje uputstava za instalaciju koristeći DMMS.
Još jedna promjena koja se ističe u ovoj novoj verziji je to pruža kompatibilnost sa LTS-jezgrima iz Linuxa 5.15.40+.
Osim toga, također je naglašeno da je dizajn izlaza poruke u dnevnik redizajniran kako bi se pojednostavila automatska analiza i olakšala percepcija tokom ručne analize i da LKRG poruke imaju svoje kategorije dnevnika, što ih olakšava odvajanje od ostatak poruka kernela.
S druge strane, također se spominje da promijenio naziv modula kernela iz p_lkrg u lkrg i to stara verzija LKRG 0.9.3 je i dalje funkcionalna u novijim verzijama kernela (5.19-rc* do sada). Međutim, za dugoročnu kompatibilnost sa Kernelima 5.15.40+, nije potrebno primijeniti neke promjene napravljene u verziji 0.9.4.
Takođe se spominje da razmatraju se neke promjene povezano (ali vjerovatno drugačije) za uključivanje u samoodbranu LKRG, na primjer, njegova runtime konfiguracija je na memorijskoj stranici koja se većinu vremena drži samo za čitanje, između ostalih poboljšanja.
Konačno ako ste zainteresirani da saznate više o tome, detalje možete provjeriti u sljedeći link.
Konkretno, modul je testiran sa RHEL kernelom, OpenVZ/Virtuozzo i Ubuntuom. U budućnosti će biti moguće organizirati proces izgradnje s binarnom kompatibilnošću za različite popularne distribucije.