Kutolewa kwa moduli ya LKRG 0.8 ili kulinda dhidi ya unyonyaji wa udhaifu katika kernel ya Linux.

Mradi wa Openwall kuchapishwa kutolewa kwa moduli ya kernel LKRG 0.8 (Linux Kernel Runtime Guard), iliyoundwa kugundua na kuzuia mashambulizi na ukiukaji wa uadilifu wa miundo ya kernel. Kwa mfano, moduli inaweza kulinda dhidi ya mabadiliko yasiyoidhinishwa kwa kernel inayoendesha na inajaribu kubadilisha ruhusa za michakato ya mtumiaji (kugundua matumizi ya ushujaa). Moduli hiyo inafaa kwa kuandaa ulinzi dhidi ya matumizi ambayo tayari yanajulikana kwa kernel ya Linux (kwa mfano, katika hali ambapo ni vigumu kusasisha kernel katika mfumo), na kwa kukabiliana na ushujaa kwa udhaifu ambao bado haujulikani. Msimbo wa mradi kusambazwa na iliyopewa leseni chini ya GPLv2.

Miongoni mwa mabadiliko katika toleo jipya:

  • Nafasi ya mradi wa LKRG imebadilishwa, ambayo haijagawanywa tena katika mifumo ndogo tofauti ya kuangalia uadilifu na kuamua matumizi ya ushujaa, lakini imewasilishwa kama bidhaa kamili ya kutambua mashambulizi na ukiukwaji mbalimbali wa uadilifu;
  • Utangamano umetolewa na kokwa za Linux kutoka 5.3 hadi 5.7, pamoja na kokwa zilizokusanywa na uboreshaji wa GCC wa fujo, bila chaguzi za CONFIG_USB na CONFIG_STACKTRACE au chaguo la CONFIG_UNWINDER_ORC, na vile vile kokwa ambazo hazina vitendaji vya LKRG, ikiwa zinaweza kuunganishwa. kutengwa na;
  • Wakati wa kujenga, baadhi ya mipangilio ya lazima ya CONFIG_* kernel huangaliwa ili kutoa ujumbe wa hitilafu wenye maana badala ya kuacha kufanya kazi kwa siri;
  • Msaada ulioongezwa kwa modes za kusubiri (ACPI S3, kusimamisha kwa RAM) na usingizi (S4, kusimamisha kwa diski) modes;
  • Imeongeza usaidizi wa DKMS kwa Makefile;
  • Usaidizi wa majaribio kwa mifumo ya 32-bit ARM umetekelezwa (iliyojaribiwa kwenye Raspberry Pi 3 Model B). Usaidizi uliopatikana hapo awali wa AArch64 (ARM64) umepanuliwa ili kutoa upatanifu na ubao wa Raspberry Pi 4;
  • Kulabu mpya zimeongezwa, pamoja na kidhibiti cha simu kinachoweza () ili kutambua vyema unyonyaji ambao hudanganya "uwezo", sio vitambulisho vya kuchakata (sifa);
  • Mantiki mpya imependekezwa kwa ajili ya kugundua majaribio ya kuepuka vikwazo vya nafasi ya majina (kwa mfano, kutoka kwa vyombo vya Docker);
  • Kwenye mifumo ya x86-64, biti ya SMAP (Uzuiaji wa Ufikiaji wa Njia ya Msimamizi) huangaliwa na kutumiwa, iliyoundwa ili kuzuia ufikiaji wa data ya nafasi ya mtumiaji kutoka kwa msimbo uliobahatika unaoendeshwa katika kiwango cha kernel. Ulinzi wa SMEP (Uzuiaji wa Utekelezaji wa Njia ya Msimamizi) ulitekelezwa hapo awali;
  • Wakati wa operesheni, mipangilio ya LKRG imewekwa kwenye ukurasa wa kumbukumbu ambao kawaida husomwa tu;
  • Taarifa ya kumbukumbu ambayo inaweza kuwa muhimu zaidi kwa mashambulizi (kwa mfano, taarifa kuhusu anwani katika kernel) ni mdogo kwa hali ya utatuzi (log_level=4 na zaidi), ambayo imezimwa kwa chaguo-msingi.
  • Uwezekano wa hifadhidata ya ufuatiliaji wa mchakato umeongezwa - badala ya mti mmoja wa RB unaolindwa na spinlock moja, jedwali la hashi la miti 512 ya RB inayolindwa na kufuli 512 za kusoma-kuandika hutumiwa;
  • Hali imetekelezwa na kuwezeshwa kwa chaguo-msingi, ambayo uadilifu wa vitambulisho vya mchakato mara nyingi huangaliwa tu kwa kazi ya sasa, na pia kwa hiari kwa kazi zilizoamilishwa (kuamka). Kwa kazi zingine ambazo ziko katika hali ya kulala au kufanya kazi bila kufikia API ya kernel inayodhibitiwa na LKRG, ukaguzi unafanywa mara chache.
  • Imeongeza vigezo vipya vya sysctl na moduli za kurekebisha vizuri LKRG, pamoja na sysctl mbili za usanidi uliorahisishwa kwa kuchagua kutoka kwa seti za mipangilio ya kurekebisha (wasifu) iliyoandaliwa na watengenezaji;
  • Mipangilio ya chaguo-msingi imebadilishwa ili kufikia usawa zaidi kati ya kasi ya kugundua ukiukaji na ufanisi wa majibu, kwa upande mmoja, na athari kwenye utendaji na hatari ya chanya za uwongo, kwa upande mwingine;
  • Faili ya kitengo cha mfumo imeundwa upya kupakia moduli ya LKRG mapema wakati wa kuwasha (chaguo la mstari wa amri ya kernel linaweza kutumika kuzima moduli);

Kwa kuzingatia uboreshaji unaopendekezwa katika toleo jipya, kupunguza utendaji unapotumia LKRG 0.8 inakadiriwa kuwa 2.5% katika hali chaguo-msingi (β€œnzito”) na 2% katika hali ya mwanga (β€œmwanga”).

Katika hafla iliyofanyika hivi karibuni utafiti ufanisi wa vifurushi vya kugundua rootkits LKRG ilionyeshwa matokeo bora, kubainisha mizizi 8 kati ya 9 iliyojaribiwa inayofanya kazi katika kiwango cha kernel bila chanya za uwongo (rootkits Diamorphine, Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit na Sutekh zilitambuliwa, lakini Keysniffer, ambayo ni punje. moduli, ilikosekana na kiloja funguo, sio rootkit kwa maana halisi). Kwa kulinganisha, vifurushi vya AIDE, OSSEC na Rootkit Hunter viligundua mizizi 2 kati ya 9, wakati Chkrootkit haikugundua yoyote. Wakati huo huo, LKRG haiunga mkono ugunduzi wa rootkits ziko katika nafasi ya mtumiaji, hivyo ufanisi mkubwa unapatikana wakati wa kutumia mchanganyiko wa AIDE na LKRG, ambayo ilifanya iwezekanavyo kutambua mizizi 14 kati ya 15 ya aina zote.

Zaidi ya hayo, inaweza kuzingatiwa kuwa msanidi wa usambazaji Whonix kuanza kuchagiza vifurushi vilivyotengenezwa tayari na DKMS kwa Debian, Whonix, Qubes na Kicksecure, na kifurushi cha Arch Linux tayari imesasishwa hadi toleo la 0.8. Vifurushi vilivyo na LKRG pia vinapatikana kwa Kirusi ALT-Linux ΠΈ AstraLinux.

Ukaguzi wa uadilifu katika LKRG unafanywa kwa kulinganisha msimbo halisi na data ya kernel na modules, baadhi ya miundo muhimu ya data na mipangilio ya CPU na heshi zilizohifadhiwa au nakala za maeneo ya kumbukumbu yanayofanana, miundo ya data au rejista. Hundi huwashwa mara kwa mara kwa kipima muda na juu ya kutokea kwa matukio mbalimbali.

Kuamua uwezekano wa matumizi ya ushujaa na kuzuia mashambulizi hufanyika katika hatua kabla ya kernel kutoa upatikanaji wa rasilimali (kwa mfano, kabla ya kufungua faili), lakini baada ya mchakato kupokea ruhusa zisizoidhinishwa (kwa mfano, kubadilisha UID). Wakati tabia isiyoidhinishwa inavyogunduliwa, taratibu zinalazimika kukomesha kwa default, ambayo inatosha kuzuia ushujaa mwingi.

Chanzo: opennet.ru

Kuongeza maoni