Cisco Talos pētnieki atbrīvoja Pirms dažām dienām ievainojamība Linux kodolā, kuru var izmantot, lai nozagtu datus un kalpo arī kā līdzeklis privilēģiju eskalācijai un sistēmas kompromitēšanai.
Neaizsargātība aprakstīta kā “informācijas atklāšanas ievainojamība kas varētu ļaut uzbrucējam redzēt kodola kaudzes atmiņu. '
CVE-2020-28588 ir ievainojamība atklāts ARM ierīcēs proc / pid / syscall funkcionalitātē 32 biti, kas vada operētājsistēmu. Pēc Cisco Talos teiktā, problēma vispirms tika atklāta ierīcē, kurā darbojas Azure Sphere.
Informācijas atklāšanas ievainojamība pastāv Linux kodola 5.1 Stable un 5.4.66 / proc / pid / syscall funkcionalitātē. Konkrētāk, šis jautājums ir ieviests v5.1-rc4 (apņemas 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) un joprojām ir sastopams v5.10-rc4, tāpēc, visticamāk, tas ietekmēs visas starpposma versijas. Uzbrucējs var lasīt / proc / pid / syscall, lai aktivizētu šo ievainojamību, kā rezultātā kodols zaudē atmiņas saturu.
Proc ir īpaša pseidofailu sistēma par Unix līdzīgām operētājsistēmām izmanto, lai dinamiski piekļūtu procesa datiem atrasts kodolā. Procesa informāciju un citu sistēmas informāciju parāda hierarhiskā, failiem līdzīgā struktūrā.
Piemēram, tajā ir apakšdirektoriji / proc / [pid], katrā no tiem ir faili un apakšdirektoriji, kas atklāj informāciju par konkrētiem procesiem, ko var nolasīt, izmantojot atbilstošo procesa ID. "Syscall" faila gadījumā tas ir likumīgs Linux operētājsistēmas fails, kas satur kodola izmantoto sistēmas izsaukumu žurnālus.
Uzņēmumam lHakeri varēja izmantot kļūdu un piekļūt operētājsistēmai un syscall failam izmantojot sistēmu, ko izmanto, lai mijiedarbotos starp kodola datu struktūrām, Proc. Syscall procfs ierakstu varētu izmantot, ja hakeri izdotu komandas, lai ģenerētu 24 baitus neinicializētas kaudzes atmiņas, kā rezultātā tiek apiets kodola adrešu izkārtojuma nejaušināšana (KASLR).
Aplūkojot šo specifisko funkciju, viss izskatās labi, taču ir vērts atzīmēt, ka
args
nodotais parametrs nāca noproc_pid_syscall
funkcija un kā tāda faktiski ir tipa__u64 args
. ARM sistēmā funkcijas definīcija pārveido lielumuarg
masīvs četru baitu elementos no astoņiem baitiem (kopšunsigned long
ARM tas ir 4 baiti), kā rezultātāmemcpy
tiek iekopēts 20 baitos (plus 4 parargs[0]
).Līdzīgi i386, kur
unsigned long
tas ir 4 baiti, vienkāršiargs
tiek uzrakstīti pirmie 24 baiti argumenta, atstājot atlikušos 24 baitus neskartus.Abos gadījumos, ja mēs atskatāmies uz
proc_pid_syscall
funkciju.Kamēr 32 bitu ARM un i386 sistēmā mēs kopējam tikai 24 baitus
args
masīvs, formāta virkne beidzot nolasa 48 baitus noargs
matrica, kopš%llx
Formāta virkne ir astoņi baiti 32 un 64 bitu sistēmās. Tātad 24 baiti neinicializētas kaudzes atmiņas iegūst rezultātu, kas var novest pie KASLR apvedceļa.
Pētnieki apgalvo, ka šo uzbrukumu "nav iespējams attālināti atklāt tīklā" jo tas tiek lasīts no likumīga Linux operētājsistēmas faila. "Ja hakeris tiek pareizi izmantots, tas var izmantot šīs informācijas noplūdes priekšrocības, lai veiksmīgi izmantotu citas nenovērstas Linux ievainojamības," saka Cisco.
Šajā sakarā Google nesen teica:
“Atmiņas drošības trūkumi bieži apdraud ierīču, īpaši lietojumprogrammu un operētājsistēmu, drošību. Piemēram, Android mobilajā operētājsistēmā, ko atbalsta arī Linux kodols, Google saka, ka tā atklāja, ka vairāk nekā puse no 2019. gadā novērtajām drošības ievainojamībām bija atmiņas drošības kļūdu rezultāts.
Pēdējais bet ne sliktākais Kopš tā laika ieteicams atjaunināt Linux kodola versijas 5.10-rc4, 5.4.66, 5.9.8 Šī ievainojamība ir pārbaudīta un apstiprināta, lai varētu izmantot šādas Linux kodola versijas.
Beidzot ja jūs interesē uzzināt vairāk par to Par ziņu varat pārbaudīt sīkāku informāciju šī saite.