Hyper Threading v ohrožení kvůli dírám v CPU Intel. Google ho úplně vypne, jinde váhají

16. 5. 2019

Sdílet

Když jsme včera psali o bezpečnostních děrách „MDS“ (Fallout, RIDL, ZombieLoad), které byly nalezené v procesorech Intel, zběžně jsme je charakterizovali tak, že mají podobný dopad jako Spectre/Meltdown loni. Ovšem vypadá to, že nakonec by to mohlo být i o něco horší. Chyby jsou asi lépe zneužitelné a zdá se, že kvůli nim řada operačních systémů opatrně zvažuje kompletní vypnutí HT, což by stálo dost výkonu a z dražších procesorů de facto udělalo levnější modely. Tento krok už učinil Google.

Včera jsme o spojitosti s HT psali jen na okraj, protože vypnutí HT plně nezabraňuje zneužití chyb MDS. Zdá se ale, že v podání Intelu tato technologie příliš usnadňuje zneužití či zvyšuje nebezpečnost. Ve svých doporučeních Intel o vypnutí SMT mluví jenom velmi opatrně jako o „další možnosti navíc“, nicméně v benchmarcích ukazujících dopady už má grafy, které ukazují, co vypnutý HT udělá – a Nejen pro servery, ale i pro desktop. Ovšem když některé weby včera psaly, že „Intel radí vypnout HT“, přišlo jim od tiskového oddělení dementi, že až tak dalece zajít Intel oficiálně nedoporučuje. Toto je asi opatření, které by Intel udělal jen velmi nerad. Patrně i proto, že výkonnostní dopad je velký a vypnutí či zapnutí HT Intel používá k odlišení dražších a levnějších CPU. Pokud by tedy kvůli bezpečnosti museli kupující HT vypnout (a degradovat si tím Core i9 na i7, i7 na i5 a tak dále), asi by to mohlo vést k velké nespokojenosti.

Chrome OS: Hyper Threading jde natvrdo pryč

Ovšem na softwarové straně dodavatelé operačních systémů o vypnutí HT ve svých doporučeních mluví, i když to také většinou uvádějí jako „volitelné“ opatření. Ovšem ne všichni. Google totiž oznámil, že kvůli bezpečnosti uživatelů navzdory implikacím pro výkon kompletně deaktivuje HT na počítačích Chromebook/Chromebox, respektive obecně v operačním systému Chrome OS. Bude to tak defaultně ve vydání Chrome OS 74. Chrome OS 75 by měl mít nějaké další ochrany proti chybám MDS, ale nepíše se o tom, že by pak bylo v plánu HT zase zapnout – patrně tedy zůstane deaktivovaný. I za cenu toho, že se výrazně sníží vícevláknový výkon, což Google přiznává.

The decision to disable or enable Hyper-Threading is a security versus performance tradeoff. With Hyper-Threading disabled, Intel CPUs may experience reduced performance, which varies depending on the workload. But, with Hyper-Threading enabled, users could execute code, such as by visiting a website or running an Android app, that exploits MDS to read sensitive memory contents.

Toto není první případ. OpenBSD vypnulo HT už před dávnější dobou v souvislosti s předchozími na HT náchylnými chybami (TLBleedL1TF/Foreshadow). To je nicméně operační systém zaměřený na až paranoidní úroveň bezpečnosti bez ohledu na výkon a dala by se u něj očekávat jistá přehnaná reakce. Tento OS nemíří na standardní servery, natož pak na spotřebitelské zařízení. V případě Chrome OS je situace o dost jiná, protože jde o běžný klientský systém.

Apple: vypněte HT pro úplné zabezpečení

Také Apple uživatelům radí či doporučuje, ovšem ne úplně naplno, vypnutí HT nebo zvážení jeho vypnutí kvůli bezpečnosti. V případě Applu toto doporučení patří těm, kdo provozují počítače „se zvýšeným rizikem nebo spouštějí nedůvěryhodný kód“. V takovém případě Apple uvádí, že pro to, aby byly proti děrám nasazeny všechny dostupné ochrany, je potřeba také vypnout Hyper Threading. Ovšem Apple upozorňuje, že to může stát až 40 % výkon (což je realistické pro vícevláknové aplikace, jednovláknový výkon tím ovšem neutrpí).

Kromě toho má samozřejmě MacOS běžné softwarové (nebo softwarové s použitím funkcí mikrokódu CPU) opravy, které přináší verze Mojave 10.14.5. Mělo by jít o opravy systému i prohlížeče Safari.

mds zranitelnosti logo Logo zranitelností MDS

Microsoft a Red Hat: „pro maximální ochranu“

Podobné opatrné vyjádření má také Microsoft, který také uvádí, že pro „úplné ochránění“ před některými MDS dírami je nutné vypnout Hyper Threading. Nicméně Microsoft podobně jako Apple nedoporučuje toto opatření plošně.

Opatrně se k této otázce staví i Red Hat. Ten má ve svém doporučení návod, jak vypnout Hyper Threading, ale opět to neuvádí jako akci doporučenou pro každého. I zde je uvedeno, že „některé bezpečnostní problémy vyžadují úplně vypnout SMT [obecné označení pro běh více vláken na jednom jádře CPU], pokud mají být plně ošetřeny.“

bitcoin_skoleni

Intel Core i7 No Speed Limit Hyper Threading se původně objevil v Pentiu 4, ale důležitou devizou procesorů Core je od příchodu architektury Nehalem. Takto Intel inzeroval první Core i7 s touto technologií

Je možné, že tato opatření budou zmírněna a vývojáři OS přestanou doporučovat vypnutí HT, až poněkud opadne počáteční chaos po vypršení informačního embarga a také se zdokonalí a odladí softwarové opravy v operačních systémech, hypervizorech a podobných ohrožených programech. Momentálně to ale vypadá, že je důvěra v Hyper Threading otřesena mnohem víc než po loňských zranitelnostech, které se ho rovněž dotýkaly. Tato technologie tak může už natrvalo být vnímána jako riskantní a její deaktivování na serverech se může stát častou věcí.

Doma na PC se asi vyplatí HT nechat zapnutý

To nicméně asi příliš neplatí na uživatelských desktopech a noteboocích. Rozhodnutí Google zaříznout HT v Chrome OS pravda upozorňuje, že ani my s obyčejnými PC nemáme vyhráno. Ale prozatím bych vám spíš doporučil se o výkon/vlákna neokrádat a ponechat na domácích/pracovních PC Hyper Threading zapnutý s tím, že nainstalujete a ponecháte aktivní ostatní opravy (a aktualizace mikrokódu), které váš operační systém/prohlížeč a tak podobně poskytne.

Galerie: Bezpečnostní chyby MDS v procesorech Intel: ZombieLoad, Fallout, RIDL