Hlavní stránka Hardware Procesory, paměti Meltdown/Spectre: Na pokraji apokalypsy?
Meltdown/Spectre: Na pokraji apokalypsy?
autor: Michal Rybka , publikováno 13.1.2018
Meltdown/Spectre: Na pokraji apokalypsy?

Poslední týden bouří tisk apokalyptickými vizemi kolem bezpečnostních slabin Meltdown a Spectre. Přiznám se, že mě celkem ohromilo, s jakou grácií i zdánlivě technicky založené weby přejaly apokalyptické vize jiných technicky založených médií – pravděpodobně proto, že jde o techniku tak komplexní, že ji opisovači nechápou.


Když si prostudujete mechanismus, na kterých nové slabiny fungují, tak seznáte, že jde o věc docela obskurní. Pentium FDIV bug (1994) byla jasná chyba v matematickém koprocesoru, která vracela opakovaně špatné výsledky při dělení v plovoucí desetinné čárce.

Meltdown/Spectre: Na pokraji apokalypsy?

66MHz Intel Pentium (sSpec=SX837) s FDIV bug
By Konstantin Lanzet - CPU Collection Konstantin Lanzet, CC BY-SA 3.0, Link

 Pentium F00F bug byla jasná chyba v implementaci instrukce F0 0F C7 C8 neboli LOCK CMPXCHG8B EAX, kterou mohl zavolat každý proces a zaseknout s ní celý systém. Tato chyba je považována za jednu z instrukcí typu HCF (Halt and Catch Fire), podle kterých je pojmenován oblíbený seriál: Divná instrukce, která dokáže sestřelit celý systém. V případě F0 0F C7 C8 tahle věc vážně existovala a postihovala velké množství procesorů Pentium, Pentium MMX a Pentium Overdrive.

Jediná nedomyšleně implementovaná instrukce, která dovolí totálně zašprajcovat váš systém a vynutit si jeho manuální restart, je skutečně velký problém. Meltdown a Spectre jsou slabiny, které využívají implementaci spekulativního vykonávání instrukcí a spekulativní predikce skoků způsobem, který není možné popsat takhle jednoduše, ba co více, není snadné k tomu ani najít analogii, kterou by snadno pochopil civilista. Skutečně, když si pročtete senzační objevné články z prvního lednového týdne, které popisují hrůzy nalezené slabiny, ani jeden neobsahuje popis toho, jak přesně fungují. Nevím, kolik novinářů si dalo práci, aby si přečetlo originální článek, popisující techniky využití slabin, ale tipnul bych si, že i když nějaký z nich text četl, tak ho jen málokdo pochopil.

Jde o poměrně obskurní techniky, které umožňují útočníkovi číst, nikoliv modifikovat obsah chráněné paměti. Hlavní riziko není v tom, že by mohl do chráněné paměti kernelu injektovat instrukce anebo obsah, ale že z ní může číst informace, jako například kryptografické klíče. Kdyby bylo možné do chráněné paměti injektovat obsah, byl by to skutečně velký problém. Ve skutečnosti popsané techniky dovolují pouze relativně pomalé čtení chráněné paměti bit po bitu pomocí pečlivě zkonstruovaného útoku, který je tak komplexní, že docela chápu, že se jím nezabývala většina designérů procesorů. Ve skutečnosti jsou tak komplikované, že je velmi pravděpodobné, že i přes dlouhodobou přítomnost slabin je nikdo dosud reálně nepoužil.

Autoři studie postupovali metodicky, tedy navrhli proof of concept, vyzkoušeli ho a nahlásili výrobcům. Ti hledali možná řešení, jak problém opravit před tím, než unikne ven, protože cokoliv je objeveno, nakonec unikne ven. Zpráva popisující problém byla publikována těsně před aplikací oprav, což v podstatě slouží jako vysvětlení nutnosti oprav. Kdyby mezi ajťáky nevznikla přiměřená panika, nikdo by patch snižující systémový výkon neaplikoval. Ano, to je přibližně logika skrytá za mediální vizí apokalypsy. Nevěřím, že by tuto techniku někdo reálně použil, ale někdy prostě musíte děti strašit čertem, aby byly hodné a čistily si zuby.

Pro Meltdown byl už vydán softwarový patch, který se aplikoval do moderních počítačů – a to i nemoderních, pokud máte například Windows POSReady 2009 aka Windows XP Zombie Edition. Vážně, už přišel. Benchmarky srovnávající dopady patchů na výkon systému ukazují, že je ve většině případů v rámci statistické chyby, většinou méně než 5 %. To v praxi vůbec nepoznáte. Pokud se obáváte o osud tajemství uvnitř vašeho PC, není nutno vykácet sad, podřezat slepice a opustit republiku – vy problém nemáte. Problém mají datacentra a všelijaké fantastické cloudové aplikace a „software driven“ vychytávky, které používají konvenční procesory k úlohám, kde se používá opravdu hodně systémových volání a přitom je u nich naprosto kritické, aby prostory pro software řídicí systém a prostory pro klientské aplikace zůstaly oddělené. Tam, ano, nastává problém.

Ale vezměme to popořadě.



 
Komentáře naleznete na konci poslední kapitoly.
203 čtenářů navrhlo autorovi prémii: 90.3Kč
Tento web používá k poskytování služeb soubory cookie.