„Cisco Talos“ tyrėjai išleido Prieš kelias dienas „Linux“ branduolio pažeidžiamumas, kurį galima panaudoti norint pavogti duomenis taip pat tarnauja kaip priemonė išplėsti privilegijas ir pakenkti sistemai.
Pažeidžiamumas apibūdinamas kaip „informacijos atskleidimo pažeidžiamumas kuris galėtų leisti užpuolikui pamatyti branduolio kamino atmintį “.
CVE-2020-28588 yra pažeidžiamumas atrasta ARM įrenginiuose proc / pid / syscall 32 bitų, kuriuose veikia operacinė sistema. Pasak „Cisco Talos“, problema pirmiausia buvo atrasta įrenginyje, kuriame veikia „Azure Sphere“.
Informacijos atskleidimo pažeidžiamumas yra „Linux Kernel 5.1 Stable“ ir 5.4.66 „/ proc / pid / syscall“ funkcijose. Tiksliau tariant, ši problema buvo įvesta versijoje v5.1-rc4 (įsipareigoja 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) ir vis dar yra versijoje v5.10-rc4, todėl tikėtina, kad tai paveiks visas tarpines versijas. Užpuolikas gali skaityti / proc / pid / syscall, kad suaktyvintų šį pažeidžiamumą, todėl branduolys praranda atminties turinį.
Proc yra speciali pseudofailų sistema „Unix“ tipo operacinėse sistemose naudojama dinamiškai pasiekti proceso duomenis rasta branduolyje. Proceso informaciją ir kitą sistemos informaciją pateikia hierarchine, į failą panašia struktūra.
Pavyzdžiui, jame yra pakatalogiai / proc / [pid], kiekviename iš jų yra failai ir pakatalogiai, kuriuose pateikiama informacija apie konkrečius procesus, kuriuos galima perskaityti naudojant atitinkamą proceso ID. „Syscall“ failo atveju tai yra teisėtas „Linux“ operacinės sistemos failas, kuriame yra branduolio naudojamų sistemos skambučių žurnalai.
Bendrovei lĮsilaužėliai galėjo pasinaudoti trūkumu ir pasiekti operacinę sistemą bei „syscall“ failą per sistemą, naudojamą sąveikai tarp branduolio duomenų struktūrų, Proc. „Syscall procfs“ įrašą būtų galima išnaudoti, jei įsilaužėliai išleistų komandas, kad sugeneruotų 24 baitus neinicijuotos kaupo atminties, o tai paskatintų apeiti branduolio adresų erdvės išdėstymo atsitiktinės atrankos principą (KASLR).
Žvelgiant į šią specifinę funkciją, viskas atrodo gerai, tačiau verta paminėti, kad
args
gautas parametras kilo išproc_pid_syscall
funkcija ir kaip tokia yra iš tikrųjų tipo__u64 args
. ARM sistemoje funkcijos apibrėžimas konvertuojaarg
masyvas keturių baitų elementais nuo aštuonių baitų (nuounsigned long
ARM tai yra 4 baitai), o tai lemia taimemcpy
yra nukopijuotas į 20 baitų (plius 4 užargs[0]
).Panašiai ir i386, kur
unsigned long
tai tik 4 baitaiargs
parašomi pirmieji 24 argumento baitai, likę 24 baitai nepažeisti.Abiem atvejais, jei atsigręžtume į
proc_pid_syscall
funkcija.Tuo tarpu 32 bitų ARM ir i386 failuose mes nukopijuojame tik 24 baitus
args
masyvo, formato eilutė baigia nuskaityti 48 baitusargs
matrica, nes%llx
Formato eilutė yra aštuoni baitai 32 ir 64 bitų sistemose. Taigi 24 baitai neinicijuotos kaupinės atminties gauna išvestį, o tai gali sukelti KASLR apėjimą.
Tyrėjai teigia, kad šios atakos „neįmanoma aptikti nuotoliniu būdu tinkle“ nes jis skaito teisėtą failą iš „Linux“ operacinės sistemos. „Jei jis bus tinkamai naudojamas, įsilaužėlis galėtų pasinaudoti šia informacijos nutekėjimo galimybe, kad sėkmingai išnaudotų kitas neištaisytas„ Linux “spragas“, - sako „Cisco“.
Šiuo atžvilgiu „Google“ neseniai pasakė:
„Atminties saugumo trūkumai dažnai kelia grėsmę įrenginių, ypač programų ir operacinių sistemų, saugumui. Pavyzdžiui, „Android“ mobiliojoje operacinėje sistemoje, kurią palaiko ir „Linux“ branduolys, „Google“ teigia atradusi, kad daugiau nei pusė 2019 m. Pašalintų saugumo spragų atsirado dėl atminties saugumo klaidų.
Paskutinis, bet ne prasčiausias Rekomenduojama atnaujinti „Linux“ branduolio 5.10-rc4, 5.4.66, 5.9.8 versijas, nes Šis pažeidžiamumas buvo išbandytas ir patvirtintas, kad jis gali naudoti šias „Linux“ branduolio versijas.
Pagaliau jei norite sužinoti daugiau apie tai Apie įrašą galite sužinoti išsamią informaciją sekanti nuoroda.