Díra Spectre pomůže pirátství. Prolamuje ochranu paměti SGX, na níž stojí některá DRM

5. 3. 2018

Sdílet

 Autor: Intel

Hardwarové bezpečnostní díry Spectre a Meltdown zapříčinili za poslední dva měsíce už spoustu shonu, ale jejich různé důsledky budou pociťovány asi ještě dlouho. Zdá se, že bezpečnostní riziko chyby Spectre se nyní poněkud rozšířilo. Tato zranitelnost totiž ovlivňuje také bezpečnost rozšíření Intel Software Guard (SGX), které mělo sloužit k zabezpečení citlivých dat nebo programů před zásahy a špehováním zvenčí. Jeho neprůstřelnost bohužel ale neplatí právě proti tzv. side-channel útokům jako je Spectre.

Rozšíření SGX přišlo s procesory Intel Skylake; v současnosti ho AMD nebo VIA/Zhaoxin nepodporují. Jeho fungování spočívá ve vytvoření bezpečné enklávy v operační paměti, do které má přístup jedině autorizovaný program. Ani na softwarové, ani na hardwarové úrovni by k těmto datům (nebo kódu) CPU nemělo nikoho jiného pustit. SGX by tak mělo poskytovat ochranu například pro uložení šifrovacích klíčů nebo k citlivému kódu, u kterého by možnost debugování nebo reverzního inženýrství byla rizikem. Jednou z takových aplikací jsou i pokročilé ochrany proti kopírování jako Play Ready 3.0, takže asi nepřekvapí, že když se přehrávání Ultra HD Blu-ray poprvé dostalo na osobní počítače, byl vyžadován procesor podporující SGX.

Výzkumníci ze Státní univerzity v Ohiu však nyní publikovali variantu útoku Spectre, pojmenovanou SgxSpectre. Ta adaptuje způsob, jakým se Spectre dostává k paměti, k níž nemá mít přístup (prostor jiného procesu, nebo v jádra operačního systému) a dovoluje běžnému programu dostat se do k paměti v bezpečné enklávě, aniž by měl autorizaci. Útok by měl stejně jako varianta 2 Spectre probíhat pomocí zákeřného předtrénování prediktoru větvení tak, aby po vstupu do zabezpečené enklávy chybně předpověděl větvení podle potřeb útočníka. Data ze zabezpečené enklávy jsou pak jako u Spectre v2 získaná z cache, kam je spekulativní vykonávání kódu načetlo, než procesor po zjištění chybné předpovědi stihl vykonávání kódu zastavit a vrátit zpět.

Slajd k instrukcím SGX z doby vydání procesorů Skylake Slajd k instrukcím SGX z doby vydání procesorů Skylake

Podle informací o tomto útoku jsou proti SgxSpectre zranitelné programy vyvinuté pomocí SDK Intelu (a také pomocí Rust-SGX a Graphene-SGX), jelikož jimi generovaný kód zdá se vykazuje určité charakteristické znaky, a dovoluje tím jejich nalezení v cache. Útok by ale měl být zastavitelný pomocí rozšíření CPU kontrolujících predikci větvení (IBRS), tedy oněch funkcí, které Intel přidal do procesorů na obranu před Spectre a které jsou přidávány aktuálními aktualizacemi mikrokódu. Bude však potřeba aktualizovat software, aby tyto obrany v kritických okamžicích použil, nicméně pak by SGX snad mělo být bezpečné, tedy alespoň dokud se nenajdou nové varianty Spectre, které útočí mimo bariéry implementované v současnosti softwarem.

bitcoin_skoleni

spectre-textZe zranitelných přehrávačů by mohly uniknout dešifrovací klíče

Nicméně pro potřeby prolamování DRM dostupnost těchto aktualizací nepomůže, protože uživatel se jejich instalaci může vyhnout a na nezáplatovaném hardwaru bude útok na SGX stále proveditelný. To znamená, že tento útok by mohl posloužit pro dešifrování například oněch disků Ultra HD Blu-ray. Nezáplatovaný počítač a softwarový přehrávač pak piráti mohou používat k dešifrování disků a nechráněný obsah pak už může plynout na internet. Pro tyto účely totiž stačí disk dešifrovat jedinkrát. Vydavatelé obsahu by se asi mohli bránit jen tím, že u nových disků přidají na blacklist všechny přehrávače, které jsou ochotné se spustit na počítači, kde není ochrana IBRS skrze nový mikrokód dostupná.

Vyjádření Intelu slibuje brzkouaktualizaci SDK pro rozšíření SGX Vyjádření Intelu slibuje brzkou aktualizaci SDK pro rozšíření SGX

Kód pro útok zatím nebyl zveřejněn (byť útočníci se ho mohou pokusit implementovat nezávisle) a Intel byl předem upozorněn. Jeho SDK by mělo být brzy upraveno, aby negenerovalo onen kód, který se pak dá v cache snadno najít. Taková aktualizace má údajně vyjít 16 března, ovšem těžko říct, zda tato kamufláž nebude eventuálně také překonána. Každopádně programy využívající SGX zůstanou zranitelné, dokud je autoři proti nové SDK nepřekompilují. A opět platí, že pro účely útoků na DRM je snadné ponechat si starší verzi.