Plundervolt — nová metoda útoku na procesory Intel, která zasahuje technologii SGX

Společnost Intel využila aktualizace mikrokódu, která odstraňuje zranitelnost (CVE-2019-14607), umožňující prostřednictvím manipulace s mechanismem dynamického řízení napětí a frekvence v CPU iniciovat poškození obsahu buněk s daty, včetně oblastí používaných při výpočtech v izolovaných enclavích Intel SGX. Útok byl nazván Plundervolt a potenciálně umožňuje lokálnímu uživateli zvýšit své privilégia v systému, vyvolat selhání služby a získat přístup k důvěrným informacím.

Útok představuje nebezpečí pouze v kontextu manipulací s výpočty v enclavech SGX, neboť pro jeho provedení jsou vyžadována práva roota v systému. V nejjednodušším případě může útočník dosáhnout zkreslení informací zpracovávaných v enclave, ale při složitějších scénářích nelze vyloučit možnost rekonstrukce důvěrných klíčů uložených v enclave, které se používají pro šifrování pomocí algoritmů RSA-CRT a AES-NI. Taktika může být rovněž aplikována na generování chyb v původně správných algoritmech s cílem vyvolat zranitelnosti během práce s pamětí, například pro organizaci přístupu do oblasti mimo vyhrazený buffer.
Prototyp kódu pro provedení útoku byla vydána na GitHubu

Podstata metody spočívá ve vytváření podmínek pro vznik nepředvídaných zkreslení dat při výpočtech v SGX, proti nimž nechrání použití šifrování a autentizace paměti v enclave. Pro zavedení zkreslení bylo možné využít standardní programové rozhraní pro řízení frekvence a napětí, běžně používané pro snížení energetické spotřeby během nečinnosti systému a aktivaci maximálního výkonu při intenzivní práci. Parametry frekvence a napětí pokrývají celý čip a ovlivňují provádění výpočtů v izolovaném enclave.

Změnou napětí lze dosáhnout podmínek, kdy náboj není dostatečný pro regeneraci paměťové buňky uvnitř CPU a její hodnota se mění. Klíčovým rozdílem od útoku RowHammer je to, co RowHammer umožňuje měnit obsah jednotlivých bitů v paměti DRAM pomocí cyklického čtení dat z sousedních buněk, zatímco Plundervolt umožňuje změny bitů uvnitř CPU, když jsou již data načtena z paměti pro výpočty. Tato vlastnost obchází mechanismy kontroly integrity a šifrování dat v paměti aplikované ve SGX, protože hodnoty v paměti zůstávají korektní, ale mohou být zkresleny při operacích s nimi, než je výsledek zapsán do paměti.

Pokud je tato změněná hodnota použita v procesu násobení během šifrování, výsledkem je neplatný šifrovaný text. S možností volat zpracovatele v SGX pro šifrování svých dat může útočník shromáždit statistiky o změnách šifrovaného textu na výstupu tím, že způsobí závady, a během několika minut obnovit hodnotu uloženého klíče v enclávu. Původní text na vstupu a správný šifrovaný text na výstupu jsou známy, klíč se nemění, a výstup neplatného šifrovaného textu naznačuje zkreslení nějakého bitu na opačnou hodnotu.

Analyzováním shromážděných párů hodnot správného a zkresleného šifrovaného textu při různých závadách pomocí metod diferenciálního analýzy závad (DFA, Diferenciální analýza závad) lze předpovědět pravděpodobné klíče používané pro symetrické šifrování AES a poté, analýzou průniků klíčů v různých sadách, určit hledaný klíč.

Přehrát video

Problému jsou vystaveny různé modely procesorů Intel, včetně CPU Intel Core 6.
až 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 (Software Guard Extensions) byla uvedena v procesorech Intel Core šesté generace (Skylake) a nabízí série pokynů, které umožňují aplikacím na uživatelské úrovni vyčleňovat uzavřené oblasti paměti – enklávy, jejichž obsah nelze přečíst a změnit ani jádrem a kódem prováděným v režimech ring0, SMM a VMM. Ovládání kódu v enklávě není možné tradičními skokovými funkcemi a manipulacemi s registry a zásobníkem – pro předání řízení do enklávy se používá speciálně navržená nová instrukce, která provádí kontrolu oprávnění. Kód umístěný v enklávě může přitom používat klasické metody volání k přístupu k funkcím uvnitř enklávy a speciální instrukci pro volání externích funkcí. Pro ochranu proti útokům na úrovni hardwaru, jako je připojení k modulu DRAM, je použito šifrování paměti enklávy.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster