Jaké jsou zranitelnosti Spectre a Meltdown?

Dvě z nejvíce medializovaných zranitelností v roce 2010 spolu velmi úzce souvisely. Spectre a Meltdown nejsou zranitelností zabezpečení v softwaru, ale zranitelností v základním návrhu CPU, což ztěžuje vyřešení problému. Samotné problémy jsou obzvláště závažné, což umožňuje prozrazení paměti z jiných aplikací a operačního systému.

Přehled

CPU používají neuvěřitelně pokročilé návrhy k dosažení nejvyššího výkonu včetně technik včetně spekulativního provádění a predikce větví. Spekulativní provádění je místo, kde CPU spustí proces dříve, než ví, zda to potřebuje, ve snaze ušetřit čas, když zjistí, že to potřebuje. Predikce větve je podmnožinou spekulativního provádění, které se pokouší předpovědět výsledek procesu a poté zahájí výpočet dalšího kroku na základě této předpokládané hodnoty a umožní CPU provést řadu instrukcí mimo objednat.

Zranitelnost Spectre pochází z implementace těchto dvou funkcí. Umožňuje aplikaci prolomit techniky izolace paměti zabudované do nejmodernějšího softwaru, což umožňuje prozrazení paměti, včetně tajemství, jako jsou hesla a šifrovací klíče. Jedním z problémů se Spectre je, že k datům lze přistupovat z aplikací, které nemají žádné bezpečnostní chyby, protože je vyžadován pouze škodlivý program.

Zranitelnost Meltdown je založena na některých paměťových technikách a také na výše zmíněném systému spekulativního provádění. Využívá „race condition“ mezi provedením procesu a kontrolou oprávnění a umožňuje škodlivému programu přístup k paměti jiných aplikací a operačního systému.

Tip: „Race condition“ je problém, kdy se má jeden úkol spoléhat na jiný, ale není vynucován správný příkaz k provedení. To může mít za následek, že „druhý“ proces poběží jako první a použije neinicializovanou paměť, která by měla obsahovat výsledek „prvního“ procesu, čímž dojde k úniku předchozího obsahu této paměti. V tomto konkrétním případě by proces neměl běžet, dokud kontrola oprávnění neověří, že je to povoleno, ale kontrola oprávnění může proběhnout až jako druhá kvůli optimalizaci výkonu.

Efekty

V polovině roku 2017 několik týmů nezávisle objevilo a nahlásilo Meltdown i Spectre soukromě výrobcům CPU, kteří vyvinuli opravy. Kvůli záplatám zaměřeným na optimalizaci výkonu nakonec snížily výkon CPU až o 30 % v nejhorších scénářích, přičemž pokles výkonu o 2–14 % více odpovídá počtu lidí zkušenosti.

Chyby zabezpečení ovlivnily mnoho x86 CPU, IBM POWER CPU a některé CPU založené na ARM. Meltdown ovlivňuje hardware, který se obvykle nachází v osobních počítačích i na cloudových serverech. Spectre ovlivňuje osobní počítače, cloudové servery a mobilní zařízení. Všechny procesory Intel od roku 1995 do poloviny roku 2018 byly vůči těmto problémům zranitelné (s výjimkou řad Itanium a Atom před rokem 2013). Procesory AMD nebyly Meltdown ovlivněny, ale byly zranitelné vůči Spectre.

Prostřednictvím poskytovatelů operačních systémů byly vyvinuty a vydány softwarové záplaty, které řeší většinu problémů. Od poloviny roku 2018 Intel aktualizoval svůj design CPU, aby zahrnoval hardwarové zmírnění problémů.

Oba problémy lze zneužít prostřednictvím škodlivých webových stránek s vytvořeným JavaScriptem, takže je to opravdu důležité ujistěte se, že jsou bezpečnostní záplaty nainstalovány na každém systému, i když dojde ke ztrátě výkonu těžké. Problémy bohužel nelze vyřešit jedinou opravou, protože se jedná o extrémně složité problémy s hloubkou integrací do hardwaru budou bezpečnostní záplaty postupem času i nadále vycházet jako novější varianty objevil.