Projektas neseniai Grsecurity paskelbta publikacijoje detales ir demo atakos metodas naujam pažeidžiamumui (jau nurodyta kaip CVE-2021-26341) AMD procesoriuose, susijusiuose su spekuliacinių instrukcijų vykdymu po besąlyginių perėjimo į priekį operacijų.
Pažeidžiamumas leidžia procesoriui spekuliaciniu būdu apdoroti instrukcija iškart po šuolio (SLS) instrukcijos atmintyje spekuliacinio vykdymo metu. Tuo pačiu metu toks optimizavimas veikia ne tik sąlyginio šuolio operatoriams, bet ir instrukcijoms, kurios apima tiesioginį besąlyginį šuolį, pvz., JMP, RET ir CALL.
Po besąlyginių šakų nurodymų gali būti pateikiami savavališki duomenys, kurie nėra skirti vykdyti. Nustačius, kad filialas nevykdo kito pareiškimo, procesorius tiesiog atšaukia būseną ir ignoruoja spekuliacinį vykdymą, tačiau komandų vykdymo pėdsakas lieka bendrojoje talpykloje ir yra prieinamas analizei naudojant šoninio kanalo paieškos metodus.
AMD pateikia rekomenduojamo švelninimo, G-5 mažinimo, atnaujinimą „AMD procesorių spekuliacijų valdymo programinės įrangos metodai“. G-5 mažinimas padeda pašalinti galimus pažeidžiamumus, susijusius su spekuliatyviu filialų nurodymų elgesiu.
AMD procesoriai gali laikinai vykdyti instrukcijas, vadovaudamiesi besąlygine pirmyn šaka, o tai gali sukelti talpyklos veiklą
Kaip ir naudojant Spectre-v1 ataka reikalauja tam tikrų sekų buvimo instrukcijų (įtaisų) branduolyje, o tai lemia spekuliacinį vykdymą.
Šiuo atveju pažeidžiamumo blokavimas apsiriboja tokių įrenginių identifikavimu kode ir papildomų instrukcijų pridėjimu prie jų, blokuojančių spekuliacinį vykdymą. Sąlygos spekuliaciniam vykdymui taip pat gali būti sukurtos naudojant neprivilegijuotas programas, veikiančias eBPF virtualioje mašinoje.
Atlikus šį tyrimą buvo aptiktas naujas pažeidžiamumas CVE-2021-26341 [1] , kurį išsamiai aptarsime šiame straipsnyje. Kaip įprasta, daugiausia dėmesio skirsime techniniams pažeidžiamumo aspektams, AMD siūlomoms švelninimo priemonėms ir išnaudojimo aspektams.
Norėdami blokuoti galimybę kurti įrenginius naudojant eBPF, rekomenduojama išjungti neprivilegijuotą prieigą prie eBPF sistemoje ("sysctl -w kernel.unprivileged_bpf_disabled=1").
Pažeidžiamumas paveikia procesorius, pagrįstus Zen1 ir Zen2 mikroarchitektūra:
Rašomasis stalas
- AMD Athlon™ X4 procesorius
- AMD Ryzen™ Threadripper™ PRO procesorius
- XNUMX-osios kartos AMD Ryzen™ Threadripper™ procesoriai
- XNUMX kartos AMD Ryzen™ Threadripper™ procesoriai
- XNUMX-osios kartos AMD A serijos APU
- AMD Ryzen™ 2000 serijos stalinių kompiuterių procesoriai
- AMD Ryzen™ 3000 serijos stalinių kompiuterių procesoriai
- AMD Ryzen™ 4000 serijos stalinių kompiuterių procesoriai su Radeon™ grafika
Mobilus
- AMD Ryzen™ 2000 serijos mobilusis procesorius
- AMD Athlon™ 3000 serijos mobilieji procesoriai su Radeon™ grafika
- AMD Ryzen™ 3000 serijos mobilieji procesoriai arba XNUMX-osios kartos AMD Ryzen™ mobilieji procesoriai su Radeon™ grafika
- AMD Ryzen™ 4000 serijos mobilieji procesoriai su Radeon™ grafika
- AMD Ryzen™ 5000 serijos mobilieji procesoriai su Radeon™ grafika
"Chromebook"
- AMD Athlon™ mobilieji procesoriai su Radeon™ grafika
Serveris
- Pirmosios kartos AMD EPYC™ procesoriai
- XNUMX-osios kartos AMD EPYC™ procesoriai
Paminėta, kad jei ataka sėkminga, pažeidžiamumas leidžia nustatyti savavališkų atminties sričių turinį.
Dėl šio pažeidžiamumo gali būti įmanoma nustatyti nekenksmingas kodo konstrukcijas, kurios sudaro ribotus, bet potencialiai išnaudojamus SLS įrenginius paveiktuose procesoriuose. Kaip parodyta eBPF pavyzdyje, pažeidžiamumą taip pat galima išnaudoti naudojant rankomis pagamintus, savaime įleidžiamus įrenginius. Pateiktas metodas gali būti naudojamas, pavyzdžiui, norint nutraukti „Linux“ branduolio KASLR mažinimą.
Pavyzdžiui, mokslininkai parengė išnaudojimą, leidžiantį nustatyti adreso išdėstymą ir apeiti KASLR (branduolių atminties atsitiktinių imčių) apsaugos mechanizmą, vykdant kodą be privilegijų eBPF branduolio posistemyje, be kitų atakų scenarijų, kurie gali nutekėti branduolio atminties turinys neatmestas.
Pagaliau jei jus domina šiek tiek daugiau apie tai, galite patikrinti išsamią informaciją Šioje nuorodoje.