KĂ«rkuesit nga kompania Bitdefender mĂ«nyrĂ«n e re tĂ« cenueshmĂ«risĂ« () nĂ« mekanizmin e ekzekutimit spekulativ tĂ« instrukcioneve tĂ« CPU-ve moderne, i cili mori emrin SWAPGS, sipas emrit tĂ« instrukcionit tĂ« procesorit qĂ« shkakton problemin. ĂĂ«shtja e cenueshmĂ«risĂ« i lejon njĂ« sulmuesi pa privilegje tĂ« pĂ«rcaktojĂ« pĂ«rmbajtjen e zonave tĂ« memories sĂ« bĂ«rthamĂ«s ose tĂ« makinerive virtuale nĂ« punĂ«. Problemi nĂ« procesorĂ«t Intel (x86_64) dhe pjesĂ«risht procesorĂ«t AMD, pĂ«r tĂ« cilat nuk shpĂ«rthehet vektori kryesor i sulmit. Metodat e zbatuara mĂ« parĂ« pĂ«r tĂ« kundĂ«rshtuar cenueshmĂ«ritĂ« Spectre dhe Meltdown nuk mbrojnĂ« nga sulmi SWAPGS kur pĂ«rdoren procesorĂ«t Intel, por pĂ«r Linux, ChromeOS, Android dhe Windows tashmĂ« janĂ« propozuar rregullime.
Vulnerabiliteti i përket klasës Spectre v1 dhe bazohet në idenë e rikuperimit të të dhënave nga cache-i i procesorit, që mbeten pas ekzekutimit spekulativ të instrukcioneve. Blloket e parashikimit të kalimeve të CPU-ve moderne për të rritur performancën aplikojnë ekzekutimin parashikues të disa instrukcioneve, 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.sh., kur kushtet e kalimit ose parametrat e aksesit ende nuk janë llogaritur). Nëse parashikimi nuk konfirmohet, procesori hedh rezultatin e ekzekutimit spekulativ, por të dhënat e procesuara gjatë kësaj kohe mbeten në cache-in e procesorit dhe mund të rikuperohen përmes metodave të përcaktimit të përmbajtjes së caches përmes kanaleve anësore që analizojnë ndryshimin e kohës së aksesit në të dhëna të cache-uar dhe të pa-cache-uar.
Karakteristika e sulmit të ri është përdorimi i shkarkimit që ndodh gjatë ekzekutimit spekulativ të udhëzimit SWAPGS, i cili përdoret 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 GS që përdoret në hapësirën e përdoruesit zëvendësohet me vlerën që përdoret gjatë operacioneve në bërthmë). Në bërthamën Linux, në GS ruhet një tregues per_cpu, i cili përdoret për të aksesuar të dhënat e bërthmës, ndërsa në hapësirën e përdoruesit treguesit janë për TLS (Storage Lokale për Thread).
Për të përjashtuar thirrjen e dyfishtë të instruksionit SWAPGS kur bëhet një kërkesë e përsëritur në bërthamë nga hapësira e bërthamës ose kur ekzekutohet kodi që nuk kërkon ndërrimin e regjistrit GS, bëhet një kontroll dhe kalim kushtor para instruksionit. Mekanizmi i ekzekutimit spekullativ kalon paraprakisht në ekzekutimin e kodit me instruksionin SWAPGS, pa pritur rezultatin e kontrollit, dhe nëse dega e zgjedhur nuk konfirmohet, hidhni rezultatin. Në këtë mënyrë, mund të ndodhë një situatë ku spekullativisht zgjidhet një degë që nuk parashikon ekzekutimin e SWAPGS, por gjatë procesit të ekzekutimit spekullativ vlera e regjistrit GS do të ndryshohet nga instruksioni SWAPGS dhe do të përdoret në operacione të varura me memorien, të cilat vendosen në caches e CPU.
Studiuesit kanĂ« propozuar dy skenarĂ« sulmi, pĂ«r tĂ« cilĂ«t janĂ« pĂ«rgatitur prototipa eksploitesh. Skenari i parĂ« bazohet nĂ« situatĂ«n kur instrukcioni SWAPGS nuk ekzekutohet spekullativisht, megjithĂ«se pĂ«rdoret gjatĂ« ekzekutimit tĂ« vĂ«rtetĂ«, ndĂ«rsa i dyti â kur instrukcioni SWAPGS ekzekutohet spekullativisht, ndonĂ«se nuk duhet nĂ« tĂ« vĂ«rtetĂ«. PĂ«r çdo skenar janĂ« parashikuar dy variante tĂ« eksploatimi: sulmuesi mund tĂ« pĂ«rcaktojĂ« njĂ« vlerĂ« nĂ« njĂ« adresĂ« tĂ« caktuar brenda bĂ«rthamĂ«s dhe gjithashtu mund tĂ« kryejĂ« njĂ« kĂ«rkim pĂ«r njĂ« vlerĂ« tĂ« caktuar nĂ« adresa tĂ« rastĂ«sishme brenda bĂ«rthamĂ«s. Kryerja e sulmit kĂ«rkon shumĂ« kohĂ« dhe pĂ«r tĂ« organizuar njĂ« rrjedhje, mund tĂ« jetĂ« e nevojshme tĂ« ekzekutohet eksploiti pĂ«r disa orĂ«.

Në bërthamën Linux ka një problem përmes ndryshimit të logjikës së thirrjes së udhëzimit SWAPGS (bllokimi i ekzekutimit spekulativ), ngjashëm 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 kernelit, e cila mund të çojë në uljen e performancës, për shembull, gjatë ekzekutimit intens të thirrjeve sistemike nga aplikacioni ose gjenerimit të shpeshtë të NMI-ve dhe ndërprerjeve.
Rregullimi kërkon instalimin e një përditësimi të kernelit si në sistemin kryesor ashtu edhe në mjediset mysafir, me një rinisje të mëpasshme të sistemit. Për të çaktivizuar mbrojtjen në Linux mund të përdoret opsioni "nospectre_v1", i cili gjithashtu çaktivizon masat për bllokimin e dobësisë SWAPGS. Rregullimi është i disponueshëm si për kernelin Linux, i cili tashmë është i përfshirë në versionet , , 4.14.137, 4.9.188 dhe 4.4.188. Përditësimet për distributions Linux ende nuk janë lëshuar (, , , , , ). Në Windows problemi u rregullua pa bujë në . Kompania Google rregullimi për kernelin 4.19, i ofruar në ChromeOS dhe .
Sipas kërkuesve nga kompania Bitdefender, Intel ishte informuar për problemin që në gusht të vitit të kaluar. Problemi u zgjidh përmes një patch-i, për të cilin ishin angazhuar zhvillues nga Microsoft, Google dhe bërthamën Linux. Procesorët e vjetër Intel, deri në Ivy Bridge, janë shumë më të vështirë për të sulmuar për shkak të mungesës së mbështetjes për instrukcionin WRGSBASE, të përdorur në exploit. Sistemet ARM, POWER, SPARC, MIPS dhe RISC-V nuk janë të prekur nga problemi, pasi nuk mbështesin instrukcionin SWAPGS.
Problemi kĂ«rcĂ«non kryesisht poseduesit e procesorĂ«ve Intel â
në sistemet AMD ka arritur të riprodhohet vetëm skenari i dytë i sulmit, i kufizuar në përpunimin spekulativ të vlerës bazë të regjistrit GS, i cili mund të përdoret për të kërkuar vlera të caktuara në zona të rastësishme të memories. Për të bllokuar këtë variant sulmi metodat ekzistuese të mbrojtjes nga dobësitë Spectre v1.
Burimi: opennet.ru
