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.


Původní článek Project Zero vydaný ve středu 3. ledna 2018 popisuje problém jako „Reading privileged memory with a side-channel“ a popisuje tři varianty pojmenované dvěma způsoby. Bezpečnostní slabina známá jako Meltdown je popsána jako „Rogue data cache load“ a je specifická čistě pro procesory Intel, slabina známá jako Spectre se vyskytuje ve dvou variantách, popsaných jako „Bounds check bypass“ a „Branch target injection“.

Abych to zjednodušil, ve všech případech jde o zneužití mechanismu spekulativního vykonávání instrukcí, přičemž ne, procesor neobsahuje slabinu, kterou by vyslepičil tajná data, ale je ho možné donutit k takové činnosti, kdy lze pozorováním jeho chování vyvodit, zda se rozhodl pro jednu anebo druhou variantu podle obsahu chráněné paměti a tím nepřímo vyvodit, zda bit, o který se zajímáte, obsahuje jedničku anebo nulu.

Výborný základ vysvětlení zveřejnil Red Hat, který se pokouší vysvětlit princip spekulativního vykonávání instrukcí. Používá k tomu celkem brilantní analogii o bistru, které sleduje chování svých zákazníků a snaží se zrychlit proces výroby pokrmů tím, že vychází ze statistických znalostí to tom, co si který zákazník obvykle kupuje. Je to výborná analogie, kterou bychom v české hospodské kultuře popsali jako „znalost štamgastů“ - zákazník vstupuje do podniku a aniž by si něco objednal, už pro něj obsluha připravuje Kozla jedenáctku a utopence, protože si to dává obvykle.

Koncept spekulativního vykonávání instrukcí vychází z toho, že sice ví, že se občas stane, že si dotyčný zákazník objedná třeba kávu bez jídla a připravený pokrm je nutné vyhodit, ale v celkové bilanci se to děje tak málo často, že se vyplatí věci připravovat předem. Analogie Red Hatu končí tím, že nové slabiny využívají schopnosti číst zahozené výsledky, s čímž se v minulosti nepočítalo.

Pravda je ve skutečnosti mnohem složitější. Nejde o to, že by se nepočítalo s tím, že by se vám někdo „přehraboval v kontejneru se zahozenými špatnými výsledky“, ale v tom, že úmyslně obelžete obsluhu podniku tak, aby vám nepřímo vyjevila to, co chcete vědět. Vezmu tedy Red Hatovskou analogii s bistrem a představím vám zlého zákazníka. Ten chodí do bistra a úmyslně si na střídačku objednává jedno malé pivo anebo půlkilové koleno s křenem – tedy dvě velmi výrazně odlišné možnosti.

Útok vypadá tak, že zlý zákazník přijde a řekne obsluze, že pokud mají v kase lichý počet tisícovek, dá si malé pivo, pokud je sudý, dá si koleno. Kuchař to začne připravovat, ale číšník řekne, že na tohle mu odpovědět nemůže. „Nevadí“ odpoví zlý zákazník a vytáhne stopky – od začátku totiž ví, že vylít malé pivo je mnohem rychlejší, než vyhodit to velké koleno. A přesně tak a právě tak vydedukuje ten jeden jediný bit – informaci o tom, zda je počet tisícovek lichý anebo sudý.

Nejde o to, že by obsluha selhala, ta mu nic neřekne. Jde o to, že ji donutí k činnosti, jejímž pozorováním dokáže dedukovat, co mu nechtějí říct – proto se tomu říká „side channel“ tedy něco jako „pozorování bokem“. Tento typ útoku je nejen „pouze ke čtení“, ale je „pouze ke čtení bit po bitu“, přičemž dokážete číst zhruba 1500 bytů za sekundu. Tohle není bezpečnostní díra, to je bezpečnostní vymačkávání citrónu. Je to problém, pokud má útočník hodně času a velkou motivaci ke čtení dat z vyhrazené paměti, ale rozhodně bych to nenazval zásadní bezpečností slabinou.

Zatímco Meltdown je problém čistě intelovský a relativně snadno softwarově řešitelný, některé varianty Spectre se týkají všech procesorů, tedy i od AMD a ARMu. A tam jde o problém řešitelný komplikovaně, obecně se zdá, že bude plně odstraněn až s příchodem procesorů s přepracovanou architekturou. Ten problém se zkrátka týká všech, protože málokoho napadl takhle složitý útok.

Zde bych se pozastavil nad některými myšlenkami, které nám propluly v posledním týdnu před očima, protože mnoho z nich je naprosto absurdních.



 
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.