Plundervolt je nová metoda útoku na procesory Intel, která ovlivňuje technologii SGX

Intel uvolněno aktualizace mikrokódu, která opravuje zranitelnost (CVE-2019-14607) dovolující prostřednictvím manipulace s dynamickým mechanismem řízení napětí a frekvence v CPU iniciovat poškození obsahu datových buněk, včetně oblastí používaných pro výpočty v izolovaných enklávách Intel SGX. Útok se nazývá Plundervolt a potenciálně umožňuje místnímu uživateli eskalovat svá oprávnění v systému, způsobit odmítnutí služby a získat přístup k citlivým datům.

Útok je nebezpečný pouze v souvislosti s manipulacemi s výpočty v enklávách SGX, protože k provedení vyžaduje práva root v systému. V nejjednodušším případě může útočník dosáhnout zkreslení informací zpracovávaných v enklávě, ale ve složitějších scénářích není možnost znovu vytvořit soukromé klíče uložené v enklávě používané pro šifrování pomocí algoritmů RSA-CRT a AES-NI. vyloučeno. Techniku ​​lze také použít ke generování chyb v původně správných algoritmech, aby vyvolaly zranitelnosti při práci s pamětí, například pro organizaci přístupu do oblasti mimo hranice přidělené vyrovnávací paměti.
Prototypový kód pro provedení útoku publikováno na GitHub

Podstatou metody je vytvoření podmínek pro výskyt neočekávaných korupcí dat při výpočtech v SGX, před kterými použití šifrování a autentizace paměti v enklávě neochrání. Pro zavedení zkreslení se ukázalo, že je možné použít standardní softwarová rozhraní pro řízení frekvence a napětí, obvykle používaná pro snížení spotřeby energie v době nečinnosti systému a aktivaci maximálního výkonu při intenzivní práci. Frekvenční a napěťové charakteristiky pokrývají celý čip, včetně dopadu výpočetní techniky v izolované enklávě.

Změnou napětí můžete vytvořit podmínky, za kterých náboj nestačí k regeneraci paměťové buňky uvnitř CPU a mění se její hodnota. Hlavní rozdíl oproti útoku RowHammer spočívá v tom, že RowHammer umožňuje měnit obsah jednotlivých bitů v paměti DRAM cyklickým čtením dat ze sousedních buněk, zatímco Plundervolt umožňuje měnit bity uvnitř CPU, když již byla data načtena z paměti pro výpočet. Tato funkce vám umožňuje obejít mechanismy kontroly integrity a šifrování používané v SGX pro data v paměti, protože hodnoty v paměti zůstávají správné, ale mohou být zkresleny během operací s nimi, než je výsledek zapsán do paměti.

Pokud je tato upravená hodnota použita v procesu násobení procesu šifrování, výstup je odmítnut s nesprávným šifrovaným textem. Díky možnosti kontaktovat obsluhu v SGX za účelem zašifrování dat může útočník, způsobující selhání, shromažďovat statistiky o změnách ve výstupním šifrovém textu a během několika minut obnovit hodnotu klíče uloženého v enklávě. Původní vstupní text a správný výstupní šifrový text jsou známy, klíč se nemění a výstup nesprávného šifrového textu indikuje, že některý bit byl zkreslen na opačnou hodnotu.

Po analýze dvojic hodnot správných a poškozených šifrových textů nashromážděných při různých poruchách pomocí metod diferenciální analýzy poruch (DFA, Diferenciální analýza poruch) Umět předpovědět pravděpodobné klíče používané pro symetrické šifrování AES a poté pomocí analýzy průsečíků klíčů v různých sadách určit požadovaný klíč.

Problémem jsou ovlivněny různé modely procesorů Intel, včetně procesorů Intel Core s 6
10. generace, stejně jako pátá a šestá generace Xeon E3, první a druhá generace Intel Xeon Scalable, Xeon D,
Xeon W a Xeon E.

Připomeňme, že technologie SGX (Rozšíření Software Guard) se objevil v šesté generaci procesorů Intel Core (Skylake) a nabízí řada instrukcí, které umožňují aplikacím na uživatelské úrovni alokovat uzavřené paměťové oblasti – enklávy, jejichž obsah nemůže číst ani upravovat ani jádro a kód běžící v režimech ring0, SMM a VMM. Přenést řízení na kód v enklávě pomocí tradičních skokových funkcí a manipulací s registry a zásobníkem není možné, k přenosu řízení do enklávy se používá speciálně vytvořená nová instrukce, která provádí kontrolu autority. V tomto případě může kód umístěný v enklávě používat klasické metody volání pro přístup k funkcím uvnitř enklávy a speciální instrukce pro volání externích funkcí. Šifrování paměti Enclave se používá k ochraně před hardwarovými útoky, jako je připojení k modulu DRAM.

Zdroj: opennet.ru

Přidat komentář