SWAPGS naujas spekuliacinis vykdymo pažeidžiamumas

SWAPGS-exploit-2

Los „Bitdefender“ tyrėjai nustatė naują pažeidžiamumą spekuliacinio instrukcijų vykdymo šiuolaikiniuose procesoriuose mechanizme, kuris gavo SWAPGS pavadinimą, Atitinka problemą sukeliančio procesoriaus nurodymo pavadinimą.

Pažeidžiamumas leidžia neprivilegijuotam užpuolikui nustatyti branduolio atminties sričių turinį arba veikia virtualios mašinos. Ši problema patvirtinta „Intel“ procesoriuose (x86_64) ir iš dalies veikia AMD procesorius, kuriems pagrindinis atakos vektorius nėra.

Anksčiau įgyvendinti „Spectre“ ir „Meltdown“ apsaugos nuo pažeidžiamumo metodai neapsaugo nuo SWAPGS atakų naudojant „Intel“ procesorius, tačiau jau buvo pasiūlyti „Linux“, „ChromeOS“, „Android“ ir „Windows“ sprendimai.

Pažeidžiamumas priklauso „Spectre v1“ klasei ir remiasi idėja gauti duomenis iš procesoriaus talpyklos, kuri lieka spekuliaciškai vykdant instrukcijas.

Šiuolaikinių procesorių konversijos numatymo blokai naudoja aktyvų kai kurių nurodymų, kurie greičiausiai bus vykdomi, vykdymą, siekiant pagerinti našumą, tačiau nelaukiant, kol bus apskaičiuoti visi veiksniai, lemiantys jų vykdymą (pvz., Kai instrukcijų perėjimo sąlygos arba prieigos parametrai dar nebuvo apskaičiuoti).

Jei prognozė nepatvirtinama, procesorius atmeta spekuliacinio paleidimo rezultatą, tačiau vykdymo metu apdorotus duomenis procesorius talpina talpykloje ir juos galima atkurti naudojant metodus, skirtus talpyklos turiniui nustatyti kanaluose. keitimas prieigos prie talpykloje ir ne talpykloje saugomų duomenų.

Apie SWAPGS

Naujo išpuolio ypatumas yra nutekėjimo, atsirandančio vykdant spekuliacinį SWAPGS nurodymą, naudojimas, kuri naudojama operacinėse sistemose siekiant pakeisti GS registro vertę, kai valdymas perkeliamas iš vartotojo vietos į operacinės sistemos branduolį (vartotojo erdvėje naudojama GS vertė pakeičiama reikšme, naudojama atliekant branduolio operacijas).

„Linux“ branduolys GS saugo „per_cpu“ žymeklį, kuris naudojamas norint pasiekti branduolio duomenis, ir nurodo TLS (Thread Local Storage) vartotojo erdvėje.

Jei norite atmesti dvigubą SWAPGS komandos iškvietimą po pakartotinės prieigos prie branduolio iš branduolio vietos arba vykdant kodą, kuriam nereikia GS registro pakeisti, prieš komandą atliekamas patikrinimas ir sąlyginis perėjimas.

Spekuliacinis vykdymo mechanizmas yra ankstesnis už kodo vykdymą su SWAPGS instrukcija, nelaukdamas patikrinimo rezultato ir, jei pasirinktas filialas nepatvirtinamas, jis atmeta rezultatą.

Todėl gali susidaryti situacija, kai spekuliaciškai pasirenkamas filialas, nurodantis SWAPGS vykdymą, tačiau spekuliacinio vykdymo metu GS registro reikšmė bus pakeista SWAPGS instrukcija ir bus naudojama nuo atminties priklausančiose operacijose, kurias talpina procesorius.

Tyrėjai pasiūlė du atakos scenarijus kuriems buvo parengti išnaudoti prototipai.

  • Pirmasis scenarijus pagrįstas situacija, kai SWAPGS instrukcija nėra vykdoma spekuliaciškai, net jei ji naudojama realiai vykdant, o antrasis scenarijus yra priešingas, kai SWAPGS instrukcija vykdoma spekuliaciškai, nors taip ir neturėtų būti.
  • Kiekvienam scenarijui yra dvi operacinės parinktys: užpuolikas gali nustatyti vertę konkrečiu adresu pagrindinėje srityje, o užpuolikas gali ieškoti konkrečios vertės atsitiktiniais adresais pagrindinėje dalyje.

Sprendimui reikia įdiegti branduolio atnaujinimą pagrindinėje ir svečių aplinkose, po to paleisti sistemą iš naujo. Norėdami išjungti apsaugą sistemoje „Linux“, galite naudoti parinktį „nospectre_v1“, kuri taip pat išjungia SWAPGS pažeidžiamumo blokavimo priemones.

Sprendimas prieinamas kaip „Linux“ branduolio pleistras, kuris jau įtrauktas į 4.19.65, 5.2.7, 4.14.137, 4.9.188 ir 4.4.188 versijas, o skirtingiems „Linux“ paskirstymams atitinkami pataisymai bus pateikti šios ir kitos savaitės laikotarpiu.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.