Dve z najviac medializovaných zraniteľností v roku 2010 spolu veľmi úzko súviseli. Spectre a Meltdown nie sú bezpečnostnými chybami v softvéri, ale sú zraniteľnosťami v základnom dizajne CPU, čo sťažuje vyriešenie problému. Samotné problémy sú obzvlášť závažné, čo umožňuje sprístupnenie pamäte iným aplikáciám a operačnému systému.
Prehľad
CPU používajú neuveriteľne pokročilé návrhy na dosiahnutie najvyššieho výkonu vrátane techník vrátane špekulatívneho vykonávania a predikcie vetvenia. Špekulatívne vykonávanie je miesto, kde CPU spustí proces skôr, ako vie, či to potrebuje, v snahe ušetriť čas, keď zistí, že to potrebuje. Predikcia pobočiek je podmnožinou špekulatívneho vykonávania, ktoré sa pokúša predpovedať výsledok procesu a potom začne počítať ďalší krok na základe tejto predpovedanej hodnoty, čo umožní CPU vykonať sériu inštrukcií objednať.
Zraniteľnosť Spectre pochádza z implementácie týchto dvoch funkcií. Umožňuje aplikácii prelomiť techniky izolácie pamäte zabudované do najmodernejšieho softvéru, čo umožňuje odhalenie pamäte vrátane tajomstiev, ako sú heslá a šifrovacie kľúče. Jedným z problémov so Spectre je, že k údajom je možné pristupovať z aplikácií, ktoré nemajú žiadne slabé miesta v zabezpečení, pretože je potrebný iba škodlivý program.
Zraniteľnosť Meltdown je založená na niektorých pamäťových technikách, ako aj na vyššie uvedenom systéme špekulatívneho vykonávania. Využíva „súčasnú podmienku“ medzi vykonaním procesu a kontrolou privilégií a umožňuje škodlivému programu pristupovať do pamäte iných aplikácií a operačného systému.
Tip: „Podmienka rasy“ je problém, keď sa má jedna úloha spoliehať na inú, ale nevynucuje sa správny príkaz na vykonanie. To môže viesť k tomu, že „druhý“ proces beží ako prvý a používa neinicializovanú pamäť, ktorá by mala obsahovať výsledok „prvého“ procesu, pričom by unikol predchádzajúci obsah tejto pamäte. V tomto konkrétnom prípade by proces nemal bežať, kým kontrola povolení neoverí, že je to povolené, ale kontrola povolení môže prebehnúť ako druhá kvôli optimalizácii výkonu.
Účinky
V polovici roku 2017 niekoľko tímov nezávisle objavilo a nahlásilo Meltdown aj Spectre súkromne výrobcom CPU, ktorí vyvinuli opravy. Kvôli záplatám zameraným na optimalizáciu výkonu nakoniec znížili výkon CPU až o 30 % v najhorších scenároch, pričom pokles výkonu o 2 – 14 % viac reprezentuje ľudí skúsenosti.
Zraniteľnosť ovplyvnila mnoho x86 CPU, IBM POWER CPU a niektoré CPU založené na ARM. Meltdown ovplyvňuje hardvér, ktorý sa zvyčajne nachádza v osobných počítačoch, ako aj na cloudových serveroch. Spectre ovplyvňuje osobné počítače, cloudové servery a mobilné zariadenia. Všetky procesory Intel od roku 1995 do polovice roku 2018 boli zraniteľné voči týmto problémom (s výnimkou liniek Itanium a Atom pred rokom 2013). Procesory AMD neboli ovplyvnené Meltdown, ale boli zraniteľné voči Spectre.
Opravy na zmiernenie softvéru boli vyvinuté a vydané prostredníctvom poskytovateľov operačných systémov, ktorí riešia väčšinu problémov. Od polovice roku 2018 spoločnosť Intel aktualizovala svoj dizajn CPU tak, aby zahŕňal hardvérové zmiernenie problémov.
Oba problémy môžu byť zneužité prostredníctvom škodlivých webových stránok s vytvoreným JavaScriptom, takže je to naozaj dôležité uistite sa, že bezpečnostné záplaty sú nainštalované na každom systéme, aj keď dôjde k strate výkonu ťažké. Problémy sa, žiaľ, nedajú vyriešiť jedinou opravou, pretože ide o mimoriadne zložité problémy s hĺbkou integráciou do hardvéru sa bezpečnostné záplaty budú postupne rozširovať ako novšie varianty objavil.