Projekti Openwall lëshimi i modulit të bërthamës (Linux Kernel Runtime Guard), i krijuar për të identifikuar dhe bllokuar sulmet dhe shkeljet e integritetit të strukturave të bërthamës. Për shembull, moduli mund të mbrojë nga ndryshimet e paautorizuara në bërthamën e punës dhe përpjekjet për të ndryshuar privilegjet e proceseve përdoruesish (përcaktimi i përdorimit të eksploiteve). Moduli është i përshtatshëm si për organizimin e mbrojtjes nga eksploitet e njohura për bërthamën Linux (për shembull, në situatat kur është problematike të azhurnohet bërthama në sistem), ashtu edhe për të përballuar eksploitet për dobësitë e panjohura. në përputhje me licencën GPLv2.
Ndër ndryshimet në versionin e ri:
- Pozicionimi i projektit LKRG është ndryshuar, i cili tani nuk ndahet në nën-sisteme të veçanta për verifikimin e integritetit dhe përcaktimin e përdorimit të eksploiteve, por paraqitet si një produkt i plotë për identifikimin e sulmeve dhe shkeljeve të ndryshme të integritetit;
- Siguruar përputhshmëria me bërthamat Linux nga 5.3 deri në 5.7, si dhe me bërthamat e ndërtuara me optimizime agresive GCC, pa opsionet CONFIG_USB dhe CONFIG_STACKTRACE ose me opsionin CONFIG_UNWINDER_ORC, si dhe me bërthamat ku mungojnë funksionet LKRG që kapen, nëse pa to mund të bëhet;
- Gjatë ndërtimit është siguruar kontrolli i disa konfigurimeve të detyrueshme të bërthamës CONFIG_* për të formuar mesazhe kuptimplota të gabimeve në vend të dështimeve të paqarta;
- Shtuar mbështetje për modet e pritjes (ACPI S3, suspend to RAM) dhe gjumin (S4, suspend to disk);
- Shtuar mbështetje në Makefile për DKMS;
- Implementuar mbështetje eksperimentale për platforma 32-bit ARM (testuar në Raspberry Pi 3 Model B). Mbështetje e mëparshme për AArch64 (ARM64) është ndihmuar për të siguruar përputhshmërinë me bordin Raspberry Pi 4;
- Shtuar menaxherë të rinj (hook), përfshirë menaxherin e thirrjes capable() për të përcaktuar më mirë eksploitet që manipulojnë "" për identifikimin e procesit ();
- Propozuar një logjikë të re për përcaktimin e përpjekjeve për të dalë nga kufijtë e hapësirave të emrave (për shembull, nga kontejnerët Docker);
- Në sistemet x86-64, siguruar verifikimi dhe zbatimi i bitit SMAP (Supervisor Mode Access Prevention), i cili është menduar për të bllokuar qasjen në të dhënat në hapësirën e përdoruesit nga kodi privilegjuar që ekzekutohet në nivelin e bërthamës. Mbrojtja SMEP (Supervisor Mode Execution Prevention) është realizuar më parë;
- Gjatë punës është siguruar vendosja e konfigurimeve të LKRG në faqen e memories, e cila zakonisht është e qasshme vetëm për lexim;
- Ădo informacion logaritĂ«sh qĂ« mund tĂ« jetĂ« mĂ« i dobishĂ«m pĂ«r sulmet (p.sh., informacion mbi adresat nĂ« bĂ«rthamĂ«) Ă«shtĂ« i kufizuar nga mĂ«nyra e debugimit (log_level=4 dhe mĂ« lart), e cila Ă«shtĂ« e çaktivizuar siç Ă«shtĂ« parazgjedhur.
- Skalimi i rritur i bazĂ«s sĂ« tĂ« dhĂ«nave pĂ«r ndjekjen e proceseve â nĂ« vend tĂ« njĂ« pemĂ« RB qĂ« mbr defendedh me njĂ« spinlock, Ă«shtĂ« pĂ«rdorur njĂ« tabelĂ« hashi me 512 pemĂ« RB, tĂ« mbrojtura pĂ«rkatĂ«sisht nga 512 bllokime tĂ« leximit-shkruajtjes;
- ĂshtĂ« zbatuar dhe aktivizuar si parazgjedhje njĂ« mĂ«nyrĂ« qĂ« verifikimi i integritetit tĂ« identifikuesve tĂ« proceseve shpesh kryhet vetĂ«m pĂ«r detyrĂ«n aktuale, si dhe opcionalisht pĂ«r detyrat e disa aktivizuar (tĂ« zgjuar). PĂ«r detyrat e tjera, qĂ« janĂ« nĂ« gjendje gjumi ose qĂ« punojnĂ« pa u referuar ndonjĂ« kontrolli nĂ« API-nĂ« LKRG tĂ« bĂ«rthamĂ«s, verifikimi kryhet mĂ« rrallĂ«.
- Shtohen sysctl të rinj dhe parametra moduli për rregullimin e LKRG, si dhe dy sysctl për thjeshtimin e konfigurot përmes zgjedhjes nga sete të përgatitura rreth rregullimeve të imëta (profiles);
- Rregullat e parazgjedhura janë ndryshuar për të arritur një balancim më të arsyeshëm midis shpejtësisë së identifikimit të shkeljeve dhe efikasitetit të reagimit nga njëra anë, dhe ndikimit në performancë dhe rrezikut të goditjeve false nga ana tjetër;
- Skedari unit i systemd është riparë për të ngarkuar modulin LKRG në fazën e hershme të ngarkimit (për çaktivizimin e modulit mund të përdoret një parametër i linjës së komandeve të bërthamës);
Duke marrĂ« parasysh optimizimet e propozuara nĂ« versionin e ri, ulja e performancĂ«s me pĂ«rdorimin e LKRG 0.8 vlerĂ«sohet nĂ« nivelin e 2.5% nĂ« mĂ«nyrĂ«n e parazgjedhur (âheavyâ) dhe 2% nĂ« mĂ«nyrĂ«n e lehtĂ«suar (âlightâ).
Në një hetim të fundit efikasiteti i pakove për identifikimin e rrotkëve LKRG rezultate më të mira, pa goditje false, duke identifikuar 8 nga 9 rrotka të testuara që punonin në nivelin e bërthamës (u identifikuan rrotkat Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit dhe Sutekh, por u kalua Keysniffer, i cili është një modul bërthamor me keylogger, e jo një rrotkë në kuptimin e drejtpërdrejtë). Për krahasim, paketat AIDE, OSSEC dhe Rootkit Hunter identifikuan 2 rrotka nga 9, ndërsa Chkrootkit nuk identifikoi asnjë. Megjithatë, LKRG nuk mbështet identifikimin e rrotkëve që vendosen në hapësirën e përdoruesit, prandaj efikasiteti më i lartë arrihet kur përdoret kombinimi AIDE dhe LKRG, i cili identifikoi 14 nga 15 rrotkat e të gjitha llojeve.
Në mënyrë shtesë, mund të theksohet se zhvilluesi i shpërndarjes filloi ofron paketa të gatshme me DKMS për Debian, Whonix, Qubes dhe Kicksecure, ndërsa paketa për është përditësuar në versionin 0.8. Paketa me LKRG gjithashtu janë në dispozicion në Rusia dhe .
Kontrolli i integritetit në LKRG bëhet mbi bazën e krahasimit të kodit dhe të dhënave aktuale të bërthamës dhe moduleve, disa strukturave të rëndësishme të të dhënave dhe cilësimeve të CPU me hash ose kopje të ruajtura të fushave përkatëse të memories, strukturave të të dhënave ose regjistrave. Kontrollimet aktivizohen si në mënyrë periodike me një orar, ashtu edhe kur ndodhin ngjarje të ndryshme.
Identifikimi i mundshëm i shfrytëzimeve dhe bllokimi i sulmeve bëhet në fazën para se bërthama të ofrojë akses në burimet (për shembull, përpara hapjes së një skedari), por pas marrjes së autorizimeve të papranueshme nga procesi (për shembull, ndryshimi i UID). Kur identifikohet një sjellje e paautorizuar e proceseve, ato përfundojnë automatikisht, e cila është e mjaftueshme për të bllokuar shumë shfrytëzime.
Burimi: opennet.ru
