Kërkuesit nga Instituti i Teknologjisë të Masachusets zbuluan një teknikë sulmi TONTOU (Koha e Neutralizimit deri në Koha e Përdorimit), e cila ofron një mënyrë të re për të shfrytëzuar dobësitë mikroarkitekturore të klasës Spectre v2. Dobësia ofron mundësinë për të përcaktuar përmbajtjen e memories së kernelit gjatë ekzekutimit të eksploitit në hapësirën e përdoruesit. Kodi për bllokimin e shfrytëzimit të kësaj dobësie u pranua në bërthamën Linux më 5 gusht dhe u përfshi në versionet 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 dhe 5.10.263.
Kërkuesit demonstruan mundësinë e kryerjes së një sulmi nga një përdorues lokal pa privilegje për të përcaktuar hash-in e fjalëkalimit të përdoruesit root, të ruajtur në skedarin /etc/shadow dhe të ngarkuar në memorien gjatë autentifikimit në sistem. Kërkuesit arritën të realizonin një rrjedhje të të dhënave nga memoria e kernelit me një performancë prej 5.47 bytes në sekondë dhe saktësi prej 91.97%. Nga 10 ekzekutime testuese të eksploitit, të cilat në mesatare zgjatën 18 minuta, në gjysmën e rasteve arritën të përcaktojnë me sukses praninë në memorie të skedarit /etc/shadow dhe të nxjerrin përmbajtjen e tij.
Eksploitimi u demonstruar në sisteme me procesorë AMD dhe mund të përdoret me CPU AMD të familjeve Zen 1-4. Në sistemet Intel, sulmi gjithashtu mund të realizohet, por shfrytëzimi është më kompleks. Për të mbrojtur nga teprica e adresave të kthimit dhe bllokimin e dobësisë SRSO (Speculative Return Stack Overflow) në procesorët AMD, aplikohet mekanizmi i mbrojtjes Safe-RET, i cili pastron buffer-in e parashikimeve të kalimeve pas secilës përdorim dhe ngushton dritaren e realizimit të sulmit në 2 instruksione, që ekzekutohen disa dhjetëra nanosekonda.
Për të anashkaluar këtë mbrojtje dhe për të zgjeruar dritaren e realizimit të sulmit, është përdorur teknika e ngadalësimit të CPU-së, e cila lejon të ekzekutohet vendosja e ndërprerjes në momentin e duhur për të ridrejtuar rrjedhën e ekzekutimit në bërthamë dhe për të përdorur trajtuesin e ndërprerjes për të deformuar shënimin në buferin e parashikimit të kalimeve. Për të shfrytëzuar dobësinë SRSO, sulmuesi mund të krijojë kushte në të cilat blloku i parashikimit të kalimeve do të ekzekutojë spekulativisht një numër të madh të thirrjeve CALL me parashikime të pasakta, të mjaftueshme për të mbushur stekun e adresave të rikthimit dhe për të ri-shkruar piketat e rikthimit të parashikuara saktë, të vendosura në fillim të stekës. Si rezultat, elementët fillestarë të stekës mund të ri-shkruhen në vlerat e zgjedhura nga sulmuesi, të cilat më vonë do të çojnë në përdorimin e këtyre vlerave të zëvendësuara gjatë ekzekutimit spekulativ të instrukcionit RET në kontekstin e një procesi tjetër.
Procesori do të përcaktojë se parashikimi i degës nuk ka pasur sukses dhe do ta rikthejë operacionin në gjendjen e tij origjinale, por të dhënat e përpunuara në procesin e ekzekutimit spekulativ do të grumbullohen në cache dhe në buferat mikroarkitekturorë. Nëse blloku i ekzekutuar gabim bën një akses në memorie, ekzekutimi i tij spekulativ do të çojë në grumbullimin në cache-n e zakonshëm dhe në të dhënat e lexuara nga memorie. Një nga metodat për të nxjerrë informacion nga cache mund të jetë përdorimi i ndonjë mënyre për të përcaktuar përmbajtjen e cache-së në bazë të analizës së ndryshimit të kohës së aksesit në të dhënat e ruajtura dhe ato që nuk janë ruajtur.
Burimi: opennet.ru
