Projekt Openwall nedavno je najavio izdavanje LKRG 0.9.4 kernel modula (Linux Kernel Runtime Guard), dizajniranog za otkrivanje i blokiranje napada i kršenja integriteta kernel struktura.
LKRG je zapakiran kao učitavajući kernel modul 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.).
Postupak verifikacije se periodično aktivira pomoću tajmera i kada se u kernelu dogode različiti događaji (na primjer, kada se izvrše 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 je pogodan i za organiziranje zaštite od poznatih exploita za Linux kernel i za suzbijanje eksploita ranjivosti koje su još uvijek nepoznate, ako se ne koriste posebne mjere za zaobilaženje LKRG-a.
Autori ne isključuju prisustvo grešaka u LKRG kodu i moguće lažno pozitivne rezultate, pa 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
Ova nova verzija modula ističe dodatak podrške za OpenRC init sistem , kao i dodatak instalacijskih uputa pomoću DKMS-a.
Još jedna značajna promjena u ovoj novoj verziji je ta što pruža kompatibilnost s Linux 5.15.40+ LTS kernelima.
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.
Nadalje, također se spominje da je naziv modula kernela promijenjen iz p_lkrg u lkrg , te da je prethodna verzija LKRG 0.9.3 i dalje funkcionalna u novijim verzijama kernela (5.19-rc* do sada). Međutim, radi dugoročne kompatibilnosti s kernelima 5.15.40+, nije, te se stoga moraju primijeniti neke promjene napravljene u verziji 0.9.4.
Također se spominje da se neke povezane (ali vjerovatno različite) promjene razmatraju za uključivanje u LKRG samoodbranu, na primjer, njegova konfiguracija tokom izvođenja 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 ovome , detalje možete pronaći na sljedećem linku.
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.