Zraniteľnosť v procesoroch Intel vedúca k úniku údajov cez kanály tretích strán

Tím výskumníkov z čínskych a amerických univerzít identifikoval novú zraniteľnosť v procesoroch Intel, ktorá vedie k úniku informácií o výsledkoch špekulatívnych operácií vykonávania cez vedľajšie kanály. Túto zraniteľnosť možno použiť napríklad na vytvorenie skrytého komunikačného kanála medzi procesmi alebo na detekciu únikov počas útokov Meltdown.

Zraniteľnosť spočíva v tom, že zmena v registri procesora EFLAGS, ktorá je výsledkom špekulatívneho vykonávania inštrukcií, ovplyvňuje následné časy vykonávania inštrukcií JCC (skok za podmienky). Špekulatívne operácie sa nedokončia a výsledok sa zahodí, ale zahodenú zmenu EFLAGS možno identifikovať analýzou časov vykonávania inštrukcií JCC. Špekulatívne vykonané operácie porovnania pred skokom, ak je porovnanie úspešné, zavádzajú malé oneskorenie, ktoré možno merať a použiť ako marker pre výber obsahu.

Zraniteľnosť v procesoroch Intel vedúca k úniku údajov cez kanály tretích strán

Na rozdiel od iných podobných útokov cez bočný kanál, nová metóda neanalyzuje zmeny v časoch prístupu k údajom uloženým v vyrovnávacej pamäti a neuloženým v vyrovnávacej pamäti a nevyžaduje fázu resetovania registra EFLAGS, čo sťažuje jej detekciu a blokovanie. Ako demonštráciu výskumníci implementovali variant útoku Meltdown, pričom využili novú metódu na získanie informácií o výsledku špekulatívnej operácie. Metóda úniku informácií počas útoku Meltdown bola úspešne demonštrovaná na systémoch s procesormi Intel Core i7-6700 a i7-7700 v... Ubuntu 22.04 a jadro Linux 5.15. Na systéme s procesorom Intel i9-10980XE bol útok úspešný len čiastočne.

Zraniteľnosť Meltdown je založená na skutočnosti, že počas špekulatívneho vykonávania inštrukcií môže procesor pristupovať k oblasti súkromných údajov a potom výsledok zahodiť, pretože nastavené privilégiá zakazujú takýto prístup používateľskému procesu. V programe je špekulatívne vykonaný blok oddelený od hlavného kódu podmieneným vetvením, ktoré sa vždy vykoná v reálnych podmienkach. Keďže však podmienený príkaz používa vypočítanú hodnotu, o ktorej procesor počas špekulatívneho vykonávania kódu nevie, všetky možnosti vetvenia sa vykonávajú špekulatívne.

V klasickom variante Meltdown, keďže sa pre špekulatívne vykonávané operácie používa rovnaká vyrovnávacia pamäť ako pre normálne vykonávané inštrukcie, je možné počas špekulatívneho vykonávania nastaviť v vyrovnávacej pamäti značky, ktoré odrážajú obsah jednotlivých bitov v oblasti súkromnej pamäte, a potom určiť ich hodnotu v normálne vykonávanom kóde analýzou načasovania prístupov k údajom uloženým v vyrovnávacej pamäti a neuloženým v vyrovnávacej pamäti. V novom variante sa ako značka úniku používa zmena v registri EFLAGS. Počas demonštrácie jeden proces moduloval prenášané dáta, čím vytvoril podmienky pre zmenu obsahu registra EFLAGS, zatiaľ čo druhý proces analyzoval zmenu času vykonávania inštrukcie JCC, aby rekonštruoval dáta prenášané prvým procesom.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre stránky s DDoS ochranou, VPS VDS servery 🔥 Kúpte si spoľahlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster