LKRG 0.9.4 stiže s podrškom za OpenRC, Linux 5.15.40+ i više

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.