SĂŒdamikusse Linux 5.12 KFence alamsĂŒsteem vĂ”eti kasutusele mĂ€luga töötamisel vigade tuvastamiseks

Tuum on vĂ€ljatöötamisel Linux 5.12 sisaldab KFence'i (Kernel Electric Fence) mehhanismi implementatsiooni, mis kontrollib mĂ€lukasutust, puhvri ĂŒletĂ€itumist, mĂ€lupöördusi pĂ€rast vabastamist ja muid sarnaseid vigu.

Sarnased funktsioonid olid kernelis juba olemas KASAN-i ehitusvaliku nĂ€ol (kerneli aadresside puhastaja, kasutab tĂ€napĂ€evastes gcc-s ja clangis Address Sanitizerit) - see oli siiski paigutatud peamiselt silumiseks. KFence'i alamsĂŒsteem erineb KASANist oma suure töökiiruse poolest, mis vĂ”imaldab seda funktsiooni kasutada ka töösĂŒsteemide tuumadel.

TootmissĂŒsteemides rakendamine vĂ”imaldab tuvastada mĂ€lutĂ”rkeid, mis ei ilmne testkĂ€ibes ja ilmnevad ainult töökoormuse vĂ”i pikaajalise töö ajal (suure tööajaga). Lisaks vĂ”imaldab KFence'i kasutamine tootmissĂŒsteemides oluliselt suurendada nende masinate arvu, mis on seotud mĂ€luga tuuma töö kontrollimisega.

KFence saavutab minimaalse koormusest sĂ”ltumatu ĂŒldkulud, sisestades kindlate intervallidega hunnikusse kaitselehti. PĂ€rast jĂ€rgmise kaitseintervalli möödumist lisab KFence standardse mĂ€lujaotussĂŒsteemi (SLAB vĂ”i SLUB jaotaja) kaudu jĂ€rgmise kaitselehe KFence'i objektide kogumist ja kĂ€ivitab uue ajaloenduri raporti. Iga KFence'i objekt asub eraldi mĂ€lulehel ning vasak- ja parempoolsel ÀÀrisel olevad mĂ€lulehed moodustavad valvelehed, mille suurus valitakse juhuslikult.

Seega on objektidega lehed ĂŒksteisest eraldatud kaitselehtedega, mis on konfigureeritud tekitama igal juurdepÀÀsul lehetĂ”rkeid. Objekti lehtede sees asuvate piiriĂŒleste kirjutamiste tuvastamiseks kasutatakse lisaks mustripĂ”hiseid "punaseid tsoone", mis hĂ”ivavad objektide poolt kasutamata mĂ€lu, mis jÀÀb alles, kui mĂ€lulehtede suurus on joondatud. —+————+————+————+————+————+— | xxxxxxxxxx | O: | xxxxxxxxxx | :O | xxxxxxxxxx | | xxxxxxxxxx | B: | xxxxxxxxxx | :B | xxxxxxxxxx | | x VALVE x | J : PUNANE- | x VALVE x | PUNANE- : J | x VALVE x | | xxxxxxxxxx | E: TSOON | xxxxxxxxxx | TSOON: E | xxxxxxxxxx | | xxxxxxxxxx | C: | xxxxxxxxxx | :C | xxxxxxxxxx | | xxxxxxxxxx | T: | xxxxxxxxxx | : T | xxxxxxxxxx | —+————+————+————+————+————+—

Kui ĂŒritatakse pÀÀseda puhvri piiridest vĂ€ljapoole jÀÀvale alale, mĂ”jutab toiming kaitselehte, mis toob kaasa “lehe vea”, mis pĂŒĂŒab kinni KFence’i ja logib tuvastatud probleemi kohta teavet. Vaikimisi KFence ei blokeeri tĂ”rkeid ja kuvab logis ainult hoiatuse, kuid on olemas sĂ€te "panic_on_warn", mis vĂ”imaldab tĂ”rke tuvastamisel kerneli paanikaseisundisse viia.

Allikas: opennet.ru

Ostke DDoS-kaitsega saitide jaoks usaldusvÀÀrne hostimine, VPS VDS-serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega, VPS VDS serverid | ProHoster