Vydali vědci společnosti Cisco Talos Před pár dny chyba zabezpečení v linuxovém jádře, kterou lze zneužít ke krádeži dat a také slouží jako prostředek k eskalaci privilegií a kompromisu systému.
Zranitelnost popsána jako „zranitelnost při zveřejňování informací což by útočníkovi umožnilo vidět paměť zásobníku jádra. “
CVE-2020-28588 je tato chyba zabezpečení objeveno ve funkcích ARM proc / pid / syscall zařízení 32bitová zařízení, na kterých běží operační systém. Podle společnosti Cisco Talos byl problém poprvé objeven na zařízení se systémem Azure Sphere.
Ve funkcích / proc / pid / syscall ve verzi Linux Kernel 5.1 Stable a 5.4.66 existuje chyba zabezpečení týkající se zpřístupnění informací. Přesněji řečeno, tento problém byl zaveden ve v5.1-rc4 (zavazuje 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) a je stále přítomen ve v5.10-rc4, takže budou pravděpodobně ovlivněny všechny přechodné verze. Útočník může tuto chybu zabezpečení aktivovat pomocí příkazu / proc / pid / syscall, což způsobí, že jádro ztratí obsah paměti.
Proc je speciální pseudo-souborový systém na unixových operačních systémech slouží k dynamickému přístupu k procesním datům nalezen v jádře. Představuje informace o procesu a další systémové informace v hierarchické struktuře podobné souborům.
Například obsahuje podadresáře / proc / [pid], z nichž každý obsahuje soubory a podadresáře, které zpřístupňují informace o konkrétních procesech, čitelné pomocí odpovídajícího ID procesu. V případě souboru „syscall“ se jedná o legitimní soubor operačního systému Linux, který obsahuje protokoly systémových volání použitých jádrem.
Pro společnost, lHackeři by mohli chybu využít a získat přístup k souboru operačního systému a systému Syscall prostřednictvím systému používaného k interakci mezi datovými strukturami jádra, Proc. Položka syscall procfs může být zneužita, pokud hackeři vydávají příkazy ke generování 24 bajtů neinicializované paměti haldy, což vede k obejití randomizace rozložení adresního prostoru jádra (KASLR).
Při pohledu na tuto konkrétní funkci vypadá všechno dobře, ale stojí za zmínku, že
args
předaný parametr pochází zproc_pid_syscall
funkce a jako takový je vlastně typu__u64 args
. V systému ARM převádí definice funkce velikost souboruarg
pole ve čtyřbajtových prvcích od osmi bajtů (odunsigned long
v ARM jsou to 4 bajty), což má za následekmemcpy
je zkopírován do 20 bajtů (plus 4 proargs[0]
).Podobně pro i386, kde
unsigned long
jsou to jen 4 bajtyargs
zapíše se prvních 24 bajtů argumentu, zbývajících 24 bajtů zůstane nedotčeno.V obou případech, pokud se podíváme zpět na
proc_pid_syscall
funkce.Zatímco v 32bitových ARM a i386 kopírujeme pouze 24 bajtů do
args
pole, formátovací řetězec skončí čtením 48 bajtůargs
matice, protože%llx
Řetězec formátu je osm bajtů na 32bitových a 64bitových systémech. Takže 24 bajtů neinicializované paměti haldy nakonec získá výstup, což by mohlo vést k bypassu KASLR.
Vědci to tvrdí tento útok „nelze vzdáleně detekovat v síti“ protože čte legitimní soubor z operačního systému Linux. „Při správném použití může hacker využít tento únik informací k úspěšnému zneužití dalších neopravených chyb zabezpečení systému Linux,“ říká Cisco.
V této souvislosti Google nedávno řekl:
"Chyby zabezpečení paměti často ohrožují bezpečnost zařízení, zejména aplikací a operačních systémů." Například v mobilním operačním systému Android podporovaném také linuxovým jádrem Google říká, že zjistil, že více než polovina bezpečnostních chyb řešených v roce 2019 byla výsledkem chyb zabezpečení paměti.
V neposlední řadě Doporučujeme aktualizovat verze 5.10-rc4, 5.4.66, 5.9.8 linuxového jádra, protože Tato chyba zabezpečení byla testována a potvrzena, aby bylo možné zneužít následující verze jádra Linuxu.
Konečně pokud máte zájem o tom vědět více O příspěvku můžete zkontrolovat podrobnosti v následující odkaz.