SWAPGS — njĂ« cenueshmĂ«ri e re nĂ« mekanizmin e ekzekutimit spekulativ tĂ« CPU

Kërkuesit nga kompania Bitdefender identifikuan një farë të re (CVE-2019-1125) në mekanizmin e ekzekutimit spekulativ të instruktimeve të CPU-ve moderne, e cila mori emrin SWAPGS, në përputhje me emrin e instruktionit të procesorit që shkakton problemin. Vulnerabiliteti mundëson mundëson një sulmues pa privilegje të përcaktojë përmbajtjen e zonave të memorjes së bërthamës ose të makinave virtuale të ngarkuara. Problemi është konfirmuar në procesorët Intel (x86_64) dhe pjesërisht preket në procesorët AMD, për të cilët nuk e shfaqin vektorin kryesor të sulmit. Metodat e mëparshme të kundërveprimit ndaj vulnerabiliteteve Spectre dhe Meltdown nuk janë mbrojtëse ndaj sulmit SWAPGS duke përdorur procesorë Intel, por tashmë janë propozuar rregullime për Linux, ChromeOS, Android dhe Windows.

Vulnerabiliteti i përket klasës Spectre v1 dhe bazohet në idenë e rikuperimit të të dhënave nga cache e procesorit, të cilat mbeten pas ekzekutimit spekulativ të instruktimeve. Blloqet e parashikimit të kalimeve në CPU-të moderne për të përmirësuar performancën aplikojnë ekzekutimin parashikues të disa instruktimeve, të cilat shumë mundësi do të ekzekutohen, por pa pritur për llogaritjen e të gjithë faktorëve që përcaktojnë ekzekutimin e tyre (për shembull, kur kushtet e kalimit ose parametrat e qasjes ende nuk janë llogaritur). Nëse parashikimi nuk konfirmohet, procesori hedh rezultatet e ekzekutimit spekulativ, por të dhënat e përpunuara gjatë saj mbetet në cache e procesorit dhe mund të rikuperohen përmes metodave të përcaktimit të përmbajtjes së cache-s përmes kanaleve të jashtme, duke analizuar ndryshimin në kohën e qasjes ndaj të dhënave të cache-uar dhe të pa-cache-uara.

Karakteristika e re e sulmit është përdorimi i rrjedhjes, që ndodh gjatë ekzekutimit spekulativ të instruktionit SWAPGS, i cili aplikohet në sistemet operative për të zëvendësuar vlerën e regjistrit GS gjatë kalimit të kontrollit nga hapësira e përdoruesit në bërthamën e OS (vlera e përdoruesit në hapësirën e përdoruesit zëvendësohet me vlerën e përdorur gjatë operacioneve në bërthamë). Në bërthamën Linux, GS ruan një tregues per_cpu, që përdoret për qasjen në të dhënat e bërthamës, ndërsa në hapësirën e përdoruesit treguesit për TLS (Thread Local Storage).

Për të shmangur thirrjen e dyfishtë të instrukcionit SWAPGS gjatë ripërsëritjes në bërthamë nga hapësira e bërthamës ose kur ekzekutohet kodi që nuk kërkon zëvendësimin e regjistrit GS, para instrukcionit bëhet një kontroll dhe kalim kushtor. Mekanizmi i ekzekutimit spekulativ kalon paraprakisht në ekzekutimin e kodit me instrukcionin SWAPGS, pa pritur rezultatin e kontrollet, dhe nëse dega e zgjedhur nuk konfirmohet, hidhet rezultati. Kështu, mund të ndodhë një situatë në të cilën dega e zgjedhur spekulativisht nuk parashikon ekzekutimin e SWAPGS, por gjatë procesit të ekzekutimit spekulativ, vlera e regjistrit GS do të ndryshohet nga instrukcioni SWAPGS dhe do të përdoret në operacione të varura me memorien, të cilat mbesin në cache-n e CPU-së.

Hulumtuesit kanĂ« propozuar dy skenarĂ« sulmi, pĂ«r tĂ« cilat janĂ« pĂ«rgatitur prototipa exploit-esh. Skenari i parĂ« bazohet nĂ« situatĂ«n kur instrukcioni SWAPGS nuk ekzekutohet spekulativisht, megjithĂ«se pĂ«rdoret gjatĂ« ekzekutimit tĂ« vĂ«rtetĂ«, ndĂ«rsam skenari i dytĂ« — pĂ«rkundrazi, kur instrukcioni SWAPGS ekzekutohet spekulativisht, megjithĂ«se nĂ« tĂ« vĂ«rtetĂ« nuk duhet. PĂ«r secilin skenar janĂ« parashikuar dy mundĂ«si shfrytĂ«zimi: sulmuesi mund tĂ« pĂ«rcaktojĂ« vlerĂ«n nĂ« njĂ« adresĂ« tĂ« caktuar nĂ« hapĂ«sirĂ«n e bĂ«rthamĂ«s dhe sulmuesi mund tĂ« kryejĂ« njĂ« kĂ«rkim pĂ«r njĂ« vlerĂ« tĂ« caktuar nĂ« adresa tĂ« rastĂ«sishme nĂ« bĂ«rthamĂ«. Kryerja e sulmit merr shumĂ« kohĂ« dhe pĂ«r organizimin e rrjedhjes mund tĂ« nevojitet ekzekutimi i exploit-it pĂ«r disa orĂ«.

Luaj videon

Në bërthamën Linux problemi është eliminuar nëpërmjet ndryshimit të logjikës së thirrjes së instrukcionit SWAPGS (bllokimi i ekzekutimit spekulativ), në përputhje me rregullimin e të tjera dobësive të klasës Spectre v1. Supozohet se mbrojtja e shtuar do të ndikojë minimalisht në performancën e ngarkesave tipike të punës. Vonesa ndodh në fazën e kalimit midis hapësirës së përdoruesit dhe bërthamës, e cila mund të çojë në një reduktim të performancës, për shembull, gjatë kryerjes intensive të thirjeve sistemike nga një aplikacion ose gjatë gjenerimit të shpeshtë të NMI-ve dhe ndërprerjeve.

Korreksioni kërkon instalimin e përditësimit të bërthamës si në sistemin kryesor ashtu edhe në ambientet virtuale, duke kërkuar një rihapje të sistemit. Për të çaktivizuar mbrojtjen në Linux mund të përdoret mundësia "nospectre_v1", e cila gjithashtu çaktivizon masat për bllokimin e dobësisë SWAPGS. Korreksioni është i disponueshëm në formën e patch-it për bërthamën Linux, e cila është tashmë e përfshirë në lëshimet 4.19.65, 5.2.7, 4.14.137, 4.9.188 dhe 4.4.188. Përditësimet për shpërndarjet Linux ende nuk janë lëshuar (Debian, RHEL, Fedora, Arch Linux, SUSE/openSUSE, Ubuntu). Në Windows problemi u zgjidh pa shumë zhurmë në përditësimin e korrikut. Kompania Google përgatiti në bërthamën 4.19, që ofrohet në ChromeOS dhe Android.

Sipas hulumtuesve nga kompanisë Bitdefender, Intel u informua për problemin që në gusht të vitit të kaluar. Problemi u zgjidh në mënyrë programore, për të cilën u angazhuan zhvilluesit nga Microsoft, Google dhe bërthama Linux për të punuar në një korrigjim të koordinuar. Procesorët e vjetër Intel, deri në Ivy Bridge, janë shumë më të vështirë për t'u sulmuar për shkak të mungesës së mbështetjes për instrukcioni WRGSBASE, i përdorur në eksploatimin. Sistemët ARM, POWER, SPARC, MIPS dhe RISC-V nuk preken nga problemi, pasi nuk mbështesin instrukcioni SWAPGS.

Problemi kĂ«rcĂ«non kryesisht pronarĂ«t e procesorĂ«ve Intel —
në sistemet AMD është arritur të riprodhohet vetëm skenari i dytë i sulmit, që kufizohet në përpunimin spekulativ të vlerës bazë të regjistrit GS, që mund të përdoret për të gjetur disa vlera në zona rastësore të memories. Për të bllokuar këtë variant të sulmit është mjaft metodat ekzistuese të mbrojtjes nga dobësitë Spectre v1.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster