Nauja „Linux Kernel“ kryžminės talpyklos ataka, pavadinta „SLUBStick“, sėkmingai paverčia ribotą krūvos pažeidžiamumą į savavališką atminties skaitymo ir rašymo galimybę, leidžiančią tyrėjams padidinti privilegijas arba pabėgti nuo konteinerių.
Atradimą padarė Graco technologijos universiteto mokslininkų komanda, kuri pademonstravo ataką prieš 5.9 ir 6.2 (naujausias) Linux branduolio versijas, naudodama devynis esamus CVE tiek 32, tiek 64 bitų sistemose, o tai rodo didelį universalumą.
Be to, ataka veikė su visomis šiuolaikinėmis branduolio apsaugos priemonėmis, tokiomis kaip prižiūrėtojo režimo vykdymo prevencija (SMEP), prižiūrėtojo režimo prieigos prevencija (SMAP) ir branduolio adresų erdvės išdėstymo atsitiktine tvarka (KASLR).
„SLUBStick“ bus išsamiai pristatytas artėjančioje „Usenix Security Symposium“ konferencijoje vėliau šį mėnesį. Tyrėjai demonstruos privilegijų eskalavimą ir konteinerių pabėgimą naujausioje „Linux“ su įjungtomis pažangiausiomis apsaugos priemonėmis.
Tuo tarpu paskelbtame techniniame dokumente yra visa informacija apie ataką ir galimus išnaudojimo scenarijus.
SLUBSstick detalės
Vienas iš būdų, kaip „Linux“ branduolys efektyviai ir saugiai valdo atmintį, yra atminties dalių, vadinamų „plokštėmis“, paskirstymas ir panaikinimas įvairių tipų duomenų struktūroms.
Šio atminties valdymo proceso trūkumai gali leisti užpuolikams sugadinti arba manipuliuoti duomenų struktūromis, vadinamomis kryžminės talpyklos atakomis. Tačiau jie yra veiksmingi maždaug 40 % laiko ir paprastai anksčiau ar vėliau sukelia sistemos gedimus.
SLUBStick išnaudoja krūvos pažeidžiamumą, pvz., dvigubą, be vartotojo arba neribotą rašymą, kad manipuliuotų atminties paskirstymo procesu.

Šaltinis: stefangast.eu
Tada jis naudoja šoninį laiko kanalą, kad nustatytų tikslų atminties dalių paskirstymo / paskirstymo momentą, leidžiantį užpuolikui numatyti ir valdyti atminties pakartotinį naudojimą.
Naudojant šią laiko informaciją kryžminio keitimo išnaudojimo sėkmė padidinama iki 99%, todėl SLUBStick yra labai praktiškas.

Šaltinis: stefangast.eu
Krūvos trūkumas konvertuojamas į savavališką atminties skaitymo ir rašymo primityvą atliekamas trimis etapais:
- Atlaisvinkite konkrečias atminties dalis ir palaukite, kol branduolys juos panaudos dar kartą.
- Kontroliuojamai perskirstykite šiuos gabalus ir užtikrinkite, kad jie būtų pakartotinai panaudoti svarbioms duomenų struktūroms, pvz., puslapių lentelėms.
- Atgavus, užpuolikas perrašo puslapio lentelės įrašus, įgydamas galimybę skaityti ir rašyti bet kurią atminties vietą.

Šaltinis: stefangast.eu
Realaus pasaulio poveikis
Kaip ir daugeliui atakų, susijusių su šoniniu kanalu, SLUBStick reikalauja vietinės prieigos prie tikslinio kompiuterio su kodo vykdymo galimybėmis. Be to, atakai reikalingas „Linux“ branduolio pažeidžiamumas, kuris vėliau bus naudojamas norint gauti skaitymo ir rašymo prieigą prie atminties.
Nors dėl to ataka gali pasirodyti nepraktiška, užpuolikams ji suteikia tam tikrų pranašumų.
Netgi užpuolikams, turintiems kodo vykdymo galimybes, SLUBStick suteikia galimybę pasiekti privilegijų eskalavimą, apeiti branduolio apsaugą, atlikti konteinerio pabėgimą arba naudoti jį kaip sudėtingos atakų grandinės dalį.
Privilegijų eskalavimas gali būti naudojamas norint suteikti root teises, leidžiančias atlikti neribotas operacijas, o konteinerio pabėgimas gali būti naudojamas norint išeiti iš smėlio dėžės aplinkos ir pasiekti pagrindinę sistemą.
Be to, pasibaigus išnaudojimui, SLUBStick gali modifikuoti branduolio struktūras arba kabliukus, kad išlaikytų patvarumą, todėl gynėjams bus sunkiau aptikti kenkėjiškas programas.

Šaltinis: stefangast.eu
Tie, kurie nori pasinerti į SLUBStick ir eksperimentuoti su Graco universiteto mokslininkų naudojamais išnaudojimais, gali juos rasti tyrėjo GitHub saugykloje.