Projekt Openwall je nedavno najavio izdanje modula kernela LKRG 0.9.4 (Linux Kernel Runtime Guard), dizajniran za otkrivanje i blokiranje napada i kršenja integriteta struktura jezgre.
LKRG je pakiran kao kernel modul koji se može učitavati i koji pokušava otkriti neovlaštene promjene u pokrenutom kernelu (provjera integriteta) ili promjene u dopuštenjima korisničkih procesa (otkrivanje ranjivosti).
Provjera integriteta provodi se na temelju usporedbe 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, rukovatelji prekidima, popisi učitanih modula, sadržaji odjeljka .text modula, atributa procesa itd.).
Postupak provjere se periodički aktivira pomoću mjerača vremena i kada se dogode različiti kernel događaji (na primjer, kada se setuid, setreuid, fork, exit, execve, do_init_module itd. izvršavaju sistemski pozivi).
O Linux Kernel Runtime Guard
Detekcija moguće upotrebe exploita i blokiranje napada provodi se 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 za blokiranje mnogih exploita. Budući da je projekt u fazi razvoja i još nisu napravljene optimizacije, ukupni operativni troškovi modula iznose cca 6.5%, no u budućnosti se planira znatno smanjiti tu brojku.
Modul prikladan je i za organiziranje zaštite od već poznatih izraba za Linux kernel za suzbijanje iskorištavanja još nepoznatih ranjivosti, ako ne koriste posebne mjere za zaobilaženje LKRG.
Autori ne isključuju prisutnost pogrešaka u LKRG kodu i moguće lažno pozitivne rezultate, stoga se pozivaju korisnici da usporede rizike mogućih pogrešaka u LKRG-u s 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ćuje korištenje s regularnim distribucijskim kernelima.
Glavne nove značajke LKRG 0.9.4
U ovoj novoj verziji modula koja je predstavljena, istaknuto je da dodana podrška za OpenRC sustav pokretanja, kao i dodavanje uputa za instalaciju pomoću DMMS.
Još jedna promjena koja se ističe u ovoj novoj verziji je ta pruža kompatibilnost s LTS-kernelima iz Linuxa 5.15.40+.
Osim toga, također je naglašeno da je dizajn izlaza poruke u dnevnik redizajniran kako bi se pojednostavila automatizirana analiza i olakšala percepcija tijekom ručne analize te da LKRG poruke imaju svoje vlastite kategorije dnevnika, što olakšava njihovo odvajanje od ostatak poruka jezgre.
S druge strane, također se spominje da promijenio naziv kernel modula iz p_lkrg u lkrg i stara verzija LKRG 0.9.3 još uvijek radi u novijim verzijama kernela (5.19-rc* do sada). Međutim, za dugoročnu kompatibilnost s kernelima 5.15.40+, nije tako da se moraju primijeniti neke promjene napravljene u verziji 0.9.4.
Također se spominje da neke promjene se razmatraju povezani (ali vjerojatno različiti) za uključivanje u LKRG samoobranu, na primjer, njegova runtime konfiguracija je u memorijskoj stranici koja je većinu vremena samo za čitanje, među ostalim poboljšanjima.
Konačno ako vas zanima više o tome, detalje možete provjeriti u sljedeći link.
Konkretno, modul je testiran s RHEL kernelom, OpenVZ/Virtuozzo i Ubuntu. U budućnosti će biti moguće organizirati proces izgradnje s binarnom kompatibilnošću za različite popularne distribucije.