Lëshimi i modulit LKRG 0.8 për mbrojtjen nga shfrytëzimi i dobësive në bërthamën Linux

Projekti Openwall publikoi lëshimi i modulit të bërthamës LKRG 0.8 (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. shpërndahet 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Ă« "capabilities" pĂ«r identifikimin e procesit (credentials);
  • 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 studim efikasiteti i pakove për identifikimin e rrotkëve LKRG tregoi 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 Whonix filloi formimi ofron paketa të gatshme me DKMS për Debian, Whonix, Qubes dhe Kicksecure, ndërsa paketa për Arch Linux është përditësuar në versionin 0.8. Paketa me LKRG gjithashtu janë në dispozicion në Rusia ALT Linux dhe Astra Linux.

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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster