Gefa út LKRG 0.8 eininguna til að vernda gegn misnotkun á veikleikum í Linux kjarnanum

Openwall verkefni birt útgáfu kjarnaeiningarinnar LKRG 0.8 (Linux Kernel Runtime Guard), hannað til að greina og hindra árásir og brot á heilleika kjarnamannvirkja. Til dæmis getur einingin varið gegn óheimilum breytingum á keyrandi kjarna og tilraunum til að breyta heimildum notendaferla (uppgötva notkun hetjudáða). Einingin hentar bæði til að skipuleggja vernd gegn þegar þekktum hetjudáðum fyrir Linux kjarnann (til dæmis í aðstæðum þar sem erfitt er að uppfæra kjarnann í kerfinu), og til að vinna gegn hetjudáð vegna enn óþekktra veikleika. Verkefnakóði dreift af leyfi samkvæmt GPLv2.

Meðal breytinga í nýju útgáfunni:

  • Staðsetningu LKRG verkefnisins hefur verið breytt, sem er ekki lengur skipt í aðskilin undirkerfi til að athuga heilleika og ákvarða notkun hetjudáða, heldur er það sett fram sem fullkomin vara til að bera kennsl á árásir og ýmis heilindisbrot;
  • Samhæfni er veitt með Linux kjarna frá 5.3 til 5.7, sem og með kjarna sem eru settir saman með árásargjarnri GCC hagræðingu, án CONFIG_USB og CONFIG_STACKTRACE valkostanna eða með CONFIG_UNWINDER_ORC valmöguleikanum, sem og með kjarna sem eru ekki með LKRG hooked aðgerðir, ef þeir geta vera sleppt;
  • Við smíði eru nokkrar lögboðnar CONFIG_* kjarnastillingar athugaðar til að búa til þýðingarmikil villuboð í stað óljósra hruna;
  • Bætt við stuðningi fyrir biðstöðu (ACPI S3, bið í vinnsluminni) og svefnstillingu (S4, bið á diski);
  • Bætti DKMS stuðningi við Makefile;
  • Tilraunastuðningur fyrir 32-bita ARM palla hefur verið innleiddur (prófaður á Raspberry Pi 3 Model B). Áður fáanlegur AArch64 (ARM64) stuðningur hefur verið stækkaður til að veita eindrægni við Raspberry Pi 4 borðið;
  • Nýjum krókum hefur verið bætt við, þar á meðal fær() kallastjórnun til að auðkenna betur hetjudáð sem vinna með "getu", ekki vinnsluauðkenni (persónuskilríki);
  • Ný rökfræði hefur verið lögð til til að greina tilraunir til að komast undan nafnrýmistakmörkunum (til dæmis frá Docker gámum);
  • Á x86-64 kerfum er SMAP (Supervisor Mode Access Prevention) bitinn athugaður og notaður, hannaður til að loka fyrir aðgang að notendarýmisgögnum frá forréttindakóða sem keyrir á kjarnastigi. SMEP (Supervisor Mode Execution Prevention) vernd var innleidd áður;
  • Meðan á notkun stendur eru LKRG stillingarnar settar á minnissíðu sem er venjulega skrifvarinn;
  • Skráningarupplýsingar sem geta verið gagnlegastar fyrir árásir (til dæmis upplýsingar um vistföng í kjarnanum) takmarkast við villuleitarham (log_level=4 og hærra), sem er sjálfgefið óvirkt.
  • Sveigjanleiki gagnagrunns ferlisrakningar hefur verið aukinn - í stað eins RB-trés sem varið er af einum spinlock, er notuð kjötkássatafla með 512 RB-tré sem vernduð eru af 512 les- og skriflásum;
  • Sjálfgefið hefur verið innleitt og virkjað ham, þar sem heilleiki vinnsluauðkenna er oft aðeins athugaður fyrir núverandi verkefni, og einnig valfrjálst fyrir virkjuð (vaknandi) verkefni. Fyrir önnur verkefni sem eru í svefnstöðu eða vinna án þess að fá aðgang að kjarna API sem stjórnað er af LKRG er athugað sjaldnar framkvæmt.
  • Bætti við nýjum sysctl og mátbreytum til að fínstilla LKRG, auk tveggja sysctl fyrir einfaldaða stillingar með því að velja úr settum fínstillingarstillinga (sniða) sem hönnuðir hafa útbúið;
  • Sjálfgefnum stillingum hefur verið breytt til að ná meira jafnvægi á milli hraða uppgötvunar brota og skilvirkni viðbragða annars vegar og áhrifa á frammistöðu og hættu á fölskum jákvæðum;
  • Systemd einingaskráin hefur verið endurhönnuð til að hlaða LKRG einingunni snemma í ræsingu (hægt er að nota kjarna skipanalínuvalkost til að slökkva á einingunni);

Að teknu tilliti til hagræðinganna sem lagðar eru til í nýju útgáfunni er afköst minnkun þegar LKRG 0.8 er notuð áætluð 2.5% í sjálfgefna stillingu ("þungur") og 2% í léttri stillingu ("létt").

Í nýlega haldinn rannsóknir skilvirkni pakka til að greina rootkits LKRG sýndi bestu niðurstöður, auðkenndu 8 af 9 prófuðum rótarsettum sem virka á kjarnastigi án falskra jákvæðra (rootkits Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit og Sutekh voru auðkennd, en Keysniffer, sem er kjarna mát, var saknað með keylogger, ekki rootkit í bókstaflegri merkingu). Til samanburðar greindu AIDE, OSSEC og Rootkit Hunter pakkarnir 2 af 9 rootkits, en Chkrootkit fann enga. Á sama tíma styður LKRG ekki uppgötvun rótarkjara sem staðsett eru í notendarými, þannig að mesta hagkvæmni næst þegar notað er sambland af AIDE og LKRG, sem gerði það mögulegt að bera kennsl á 14 af 15 rótarsettum af öllum gerðum.

Að auki má geta þess að dreifingaraðili Whonix byrjaði mótun tilbúnir pakkar með DKMS fyrir Debian, Whonix, Qubes og Kicksecure og pakka fyrir Arch Linux þegar uppfært í útgáfu 0.8. Pakkar með LKRG eru einnig fáanlegir á rússnesku alt linux и AstraLinux.

Heildarathugun í LKRG er framkvæmd með því að bera saman raunverulegan kóða og gögn kjarnans og eininga, nokkurra mikilvægra gagnabygginga og örgjörvastillinga við vistuð kjötkássa eða afrit af samsvarandi minnissvæðum, gagnabyggingum eða skrám. Ávísanir eru virkjaðar bæði reglulega með tímamæli og þegar ýmsir atburðir gerast.

Ákvörðun mögulegrar notkunar hetjudáða og hindra árásir fer fram á stigi áður en kjarninn veitir aðgang að auðlindum (til dæmis áður en skrá er opnuð), en eftir að ferlið hefur fengið óheimilar heimildir (til dæmis að breyta UID). Þegar óviðkomandi hegðun greinist, neyðast ferli sjálfkrafa til að hætta, sem nægir til að hindra marga hetjudáð.

Heimild: opennet.ru

Bæta við athugasemd