SWAPGS — uus haavatavus CPU spetsulatiivse tĂ€itmise mehhanismis

Bitdefenderi teadlased tuvastasid uue haavatavuse (CVE-2019-1125) spetsulatiivse tĂ€itmise instrutsioonide mehhanismis kaasaegsete CPU-de seas, mille nimi on SWAPGS, mis vastab probleemiks oleva protsessoriinstruktsiooni nimetusele. Haavatavus kaugelt sulgeda vahekaarte, mis on avatud teistel seadmetel. vĂ”imaldab mitteprivileegitud rĂŒndajal kindlaks teha tuumamĂ€lu alade vĂ”i kĂ€ivitatud virtuaalmasinate sisu. Probleem on kinnitatud Intel (x86_64) protsessorites ja osaliselt puudutab AMD protsessorites, kus peamine rĂŒndevetor ei avaldu. Varem rakendatud meetodid Spectre ja Meltdown haavatavuste vastu ei kaitse SWAPGS rĂŒnnaku eest Intel'i protsessoritel, kuid Linuxi, ChromeOS, Androidi ja Windowsi jaoks on juba pakutud parandusi.

Haavatavus kuulub Spectre v1 klassi ja pĂ”hineb ideel taastada andmeid protsessorikihist, mis jÀÀb pĂ€rast spetsulatiivset tĂ€itmist. Kaasaegsete CPU-de haruennustuse blokid rakendavad teatud instruktsioonide ennetavat tĂ€itmist, mis tĂ”enĂ€oliselt tĂ€idetakse, kuid ei oota kĂ”igi tĂ€itmist mÀÀravate tegurite arvutamist (nĂ€iteks kui ĂŒlemineku tingimusi vĂ”i juurdepÀÀsuteateid pole veel arvutatud). Kui prognoos ei kinnitu, viskab protsessor vĂ€lja spekulatiivse tĂ€itmise tulemuse, kuid selle aja jooksul töödeldud andmed jÀÀvad protsessorikihisse ja neid saab taastada kanalite kaudu, mis analĂŒĂŒsivad vahemaa andmete kĂ€tte saamise aega.

Uue rĂŒnnaku eripĂ€ra on spekulatiivse tĂ€itmise instruktsiooni SWAPGS kĂ€igus tekkiva leke kasutamine, mida kasutatakse operatsioonisĂŒsteemides registreerija GS vÀÀrtuse asendamiseks, kui juhtimissekkumine toimub kasutajaruumi ja OS tuuma vahel (kasutajaruumi vÀÀrtus GS asendatakse tuuma operatsioonide jaoks kasutatava vÀÀrtusega). Linuxi tuumas hoiab GS per_cpu suunajat, mis on vajalik tuuma andmetele juurdepÀÀsuks, ning kasutajaruumi suunajad TLS (Thread Local Storage) jaoks.

Kaksikordse SWAPGS-kĂ€skluse vĂ€ljakutse vĂ€ltimiseks tuumast ruumi juurde pÀÀsemisel vĂ”i siis, kui tĂ€idetakse koodi, mis ei nĂ”ua GS-registeri vahetamist, teostatakse enne kĂ€skluse kontrollimine ja tingimuslik hĂŒpe. Spekulatiivse tĂ€itmise mehhanism lĂ€heb ette Ă€ra SWAPGS-kĂ€su tĂ€itmisele, ootamata kontrolli tulemusi, ning kui valitud haru ei kinnitu, tĂ”ukab see tulemuse kĂ”rvale. Seega vĂ”ib juhtuda, et spekulatiivselt valitakse haru, mis ei hĂ”lma SWAPGS-i tĂ€itmist, kuid spekulatiivse tĂ€itmise kĂ€igus muudetakse GS-registeri vÀÀrtust SWAPGS-kĂ€suga ja seda kasutatakse mĂ€lu sĂ”ltuvates operatsioonides, mis jÀÀvad CPU vahemĂ€llu.

Uurijad on pakkunud vĂ€lja kaks rĂŒnnakustsenaariumi, mille jaoks on vĂ€lja töötatud eksploiteerimise prototĂŒĂŒbid. Esimene stsenaarium pĂ”hineb olukorral, kus SWAPGS-i kĂ€sklust ei tĂ€ideta spekulatiivselt, kuigi seda kasutatakse tegeliku tĂ€itmise kĂ€igus, ja teine, vastupidi, kus SWAPGS-i kĂ€sklust tĂ€idetakse spekulatiivselt, kuigi see ei peaks seda tegema. Iga stsenaariumi puhul on ettenĂ€htud kaks ekspluateerimise varianti: rĂŒndaja vĂ”ib mÀÀrata vÀÀrtuse teatud aadressil tuumas ja rĂŒndaja vĂ”ib otsida teatud vÀÀrtust juhuslikes aadressides tuumas. RĂŒnnaku teostamine vĂ”tab kaua aega ja lekke korraldamiseks vĂ”ib osutuda vajalikuks eksploiti tĂ€ita mitu tundi.

MĂ€ngi videot

Linuxi tuumas probleem on kĂ”rvaldatud SWAPGS-kĂ€su vĂ€ljakutse (spekulatiivse tĂ€itmise blokeerimine) loogika muutmise kaudu, sarnaselt teiste Spectre v1 klassi haavatavuste parandamisega. Arvatakse, et lisatud kaitse mĂ”jutab minimaalset tĂŒĂŒpiliste töökoormuste jĂ”udlust. Viivitus toimub kasutaja ja tuuma vahelise vahetuse etapis, mis vĂ”ib pĂ”hjustada jĂ”udluse langust, nĂ€iteks rakenduse kaudu intensiivsete sĂŒsteemikutsete tegemisel vĂ”i sagedase NMI ja katkestuste genereerimise korral.

Parandus nĂ”uab tuuma vĂ€rskenduse installimist nii pĂ”h sĂŒsteemis kui ka kĂŒlgkeskkondades, millele jĂ€rgneb sĂŒsteemi taaskĂ€ivitamine. Linuxis kaitse keelamiseks vĂ”ib kasutada valikut «nospectre_v1», mis samuti keelab meetmed SWAPGS haavatavuse blokeerimiseks. Parandus on saadaval kujul patch Linuxi tuuma, mis on juba lisatud vĂ€ljaannete koosseisu 4.19.65, 5.2.7, 4.14.137, 4.9.188 ja 4.4.188. VĂ€rskendusi Linuxi distributsioonide jaoks ei ole veel vĂ€lja antud (Debian, RHEL, Fedora, Arch Linux, SUSE/openSUSE, Ubuntu). Windowsis lahendati probleem ilma suurema tĂ€helepanuta juuli vĂ€rskenduses. Google valmistas parandus tuumale 4.19, mis tarnitakse ChromeOS-iga ja Android.

Bitdefenderi teadlaste sĂ”nul teavitati Intelit probleemist juba eelmisel aastal augustis. Probleemi lahendamine otsustati teha tarkvaraliselt, mille jaoks kaasati koordineeritud parandusprotsessi Microsofti, Google'i ja Linuxi tuuma arendajad. Vanade Intel'i protsessorite, kuni Ivy Bridge'ini, rĂŒndamine on oluliselt keerulisem WRGSBASE kĂ€su toetamise puudumise tĂ”ttu, mis kasutati eksploitides. ARM, POWER, SPARC, MIPS ja RISC-V sĂŒsteemid ei ole probleemile vastuvĂ”tlikud, kuna nad ei toeta SWAPGS kĂ€sku.

Probleem ohustab peamiselt Intel'i protsessorite omanikke —
AMD sĂŒsteemides suudeti taastada ainult teine rĂŒnnaku stsenaarium, mis on piiratud spekulatiivse pĂ”hregistri GS töötlemisega, mida saab kasutada teatud vÀÀrtuste leidmiseks juhuslikes mĂ€lu piirkondades. Selle rĂŒndevariandi blokeerimiseks piisab on olemas meetodid, et kaitsta Spectre v1 haavatavuste eest.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster