meltdown-specter

V čom spočíva hrozba Meltdown a Spectre a prečo sa naši zákazníci nemusia báť?

IT bezpečnosť dostala hneď na začiatku roku 2018 tvrdú ranu. Po predošlých indíciách sa potvrdila prítomnosť vážnych bezpečnostných zraniteľností v procesoroch Intel, AMD a ARM. Zraniteľné sú takmer všetky moderné zariadenia od smartfónov, cez tablety, počítače, až po servery.

O objavenie týchto nedostatkov sa zaslúžili viacerí odborníci, medzi nimi aj Jann Horn z Google Project Zero, ktorý zverejnil 3. januára 2018 detailný report o zraniteľnostiach označených ako Spectre (CVE-2017-5753 & CVE-2017-5715) a Meltdown (CVE-2017-5754). Ich zneužitím dokáže útočník získať takmer ľubovolne dáta v operačnej pamäti počítača.

 

Problémové cache-ovanie a možnosť jeho zneužitia

Procesory už približne od roku 1995 využívajú tzv. prediktívne (špekulatívne) vykonávanie inštrukcií. To im umožňuje, aby procesorové jadro istým spôsobom vykonávalo predikciu toho, čo sa vykoná v nasledujúcich krokoch výpočtu a svoju robotu si urobilo “dopredu”, čo zvyšuje ich výkon. Samozrejme, niekedy sa stane, že daný proces dopadne inak, prípadne nastane neočakávaná chyba a data vopred vypočítane špekulatívnymi inštrukciami sa musia “zahodiť”.

Problémom, ktorý vyústil do nájdenia bezpečnostných zraniteľností Meltdown a Spectre, je ale ukladanie záznamu o všetkých vykonaných aj nevykonaných inštrukciách procesoru (aj tých špekulatívnych) do jeho medzipamäte (cache), kde sú zapísané a po istú dobu uložené.

A práve to umožňuje útočníkom získať dáta, ku ktorým nemali pôvodný prístup.

alt

Útočník môže na zisk dát využiť tzv. postranný kanál. Stačí, aby podľa rýchlosti prístupu k adresám v pamäti zistil, ktorý register sa pri operácii použil a procesor navedie svojim kódom na špekulatívne vykonanie operácie s daným registrom. Výsledok (prediktívnej) operácie sa uloží v medzipamäti procesora, a to aj napriek odmietnutiu vykonania danej operácie jeho bezpečnostným mechanizmom. Útočník tak z medzipamäte získa dáta z registra, ku ktorému nemal (a ani nemusel mať) prístup.

 

Metldown (CVE-2017-5754)

Útok na zraniteľnosť Meltdown využíva špekulatívne vykonanie inštrukcií medzi používateľnými aplikáciami a operačným systémom. To útočníkovi dáva možnosť získať prístup k všetkým systémovým pamätiam, vrátane pamäte alokovanej pre jadro. Takýmto spôsobom vie získať heslá, bezpečnostné kľúče, či akékoľvek iné citlivé dáta z napadnutého zariadenia.

 

 

Meltdown postihuje najmä zariadenia s procesorom Intel a procesory na báze ARM Cortex-A75.Táto zraniteľnosť nie je zneužiteľná v AMD procesoroch. Viac informácií o tejto zraniteľnosti nájdete v detailnom reporte jej objaviteľov z Graz University of Technology.

 

Ako sa chrániť proti útoku Meltdown?

O zraniteľnosti Meltdown boli popredné technologické spoločnosti informované ešte v polovici minulého roka. Z dvoch objavených zraniteľností môže mať práve Meltdown širší dopad na bezpečnosť samotných zariadení. Jeho odstránenie je ale z technologického hľadiska jednoduchšie. Stačí aplikovať zmeny mapovania pamäte jadra do adresného priestoru jednotlivých procesov.

Už dnes sú preto dostupne patche a aktualizácie pre zariadenia s operačnými systémami Linux (Spectre & Meltdown Checker pre Linux) a Windows, zariadenia spoločnosti Apple, Android zariadenia (s januárovou bezpečnostnou aktualizáciou alebo novšou), WebKit, ale aj pre ďalšie zariadenia, hardvérové súčiastky a softvérové riešenia (vrátane prehliadačov).

Úplná ochrana pred zraniteľnosťou Meltdown si ale vyžaduje aj ďalšie nápravy, ktoré zahŕňajú najmä ochranu volania aplikácií o ľubovoľnú akciu v operačnom systéme (tzv. “systémové volania”). To ale spôsobí čiastočné zníženie výkonu zariadení (odhadom o 5 - 40%). Táto zmena postihne najmä databázové servery, ktoré v každej požiadavke posielajú mnoho systémových volaní.

Jedným z riešení je zmena mikrokódu/BIOS-u, ktorou sa dá čiastočne upraviť spôsob práce s medzipamäťou. Takéto riešenie by malo teoreticky menej negatívny dopad ako zmena na úrovni operačného systému. Problémom je, že by na koncových zariadeniach používateľov bolo nutné nový BIOS nainštalovať manuálne, čo by urobilo len mizivé percento ľudí. Na serverových platformách bude možné takúto zmenu vykonať plošne.

 

meltdown

Pre objektivitu je ale potrebné poznamenať, že zraniteľnosti Meltdown a Spectre je možné zneužiť len po predošlom napadnutí zariadenia a infikovaní jeho systému alebo niektorého z programov škodlivým kódom. Negatívom je, že pokiaľ takáto penetrácia ochrany nebude detekovaná žiadnym z ochranných mechanizmov, útoky Meldown a Spectre nemožno nijako sledovať. V systémových logoch totižto nenechávajú žiadnu stopu.

 

Spectre (CVE-2017-5753 & CVE-2017-5715)

Oproti Meltdown je zneužitie zraniteľnosti Spectre technologicky náročnejšie. Zároveň však ide aj o ťažšie opraviteľný bezpečnostný nedostatok. Využíva špekulatívne vykonanie inštrukcií procesora medzi viacerými súbežne bežiacimi aplikáciami systému.

specter

 

Útočník tak môže získať dáta aj z navonok úplne normálne fungujúcej a bezpečnej aplikácie. Navyše, niektoré odporúčané bezpečnostné postupy pri tvorbe nových aplikácií a programov nabádajú ku krokom, ktoré zvyšujú možnosť zneužitia zraniteľnosti Spectre. Túto zraniteľnosť v sebe obsahujú Intel, ARM aj AMD procesory.

 

Ako sa chrániť pred Spectre?

Zraniteľnosť Spectre sa skladá z 2 bezpečnostných nedostatkov (označovaných ako variant 1 a variant 2). Variant 1 porušuje kontrolu obmedzení pri vykonávaní inštrukcií v procesore. To v praxi umožňuje útočníkovi získať z medzipamäte CPU dáta, ku ktorým mu bol bezpečnostným mechanizmom jadra odmietnutý prístup.

Nápravu tejto zraniteľnosti ponúka aktualizácia jadra, ktorá by obsahovala akési “pamäťové bariéry”. To by umožňovalo zabrániť načítaniu druhotných informácií po tom, ako bola jadrom zamietnutá inštrukcia s prvotnou informáciou (od útočníka).

 

specter

Druhá časť Spectre (variant 2) je ale na opravu oveľa náročnejšia. Umožňuje totiž útočníkovi “ovplyvniť” rozhodovací proces jadra pri špekulatívnom vykonávaní inštrukcií. Výsledkom je uprednostnenie spustenia škodlivého kódu útočníka pred kódom, ktorý by procesor spustil bez ovplyvnenia svojho rozhodovania. Následne útočník môže postranným kanálom (rovnako ako v prípade Meltdown) získať načítané dáta z medzipamäte procesora.

 

Chráňte svoj internetový prehliadač

Zlou správou je, že útok Spectre sa dá vykonať aj pomocou javascriptu infikovaním vášho internetového prehliadača, a to na všetkých typoch procesorov - Intel, AMD aj ARM. Hoci neexistuje univerzálna oprava pre túto zraniteľnosť, tvorcovia internetových prehliadačov Mozilla Firefox, Edge a Internet Explorer už zareagovali. Vydali aktualizácie, ktoré znižujú presnosť merania času pri zápise do registrov pamäte, čo znemožňuje tento typ útoku.

Používatelia internetového prehliadača Chrome môžu svoju ochranu proti Spectre docieliť manuálnym aktivovaním funkcie Strict site isolation po zadaní adresy chrome://flags/#enable-site-per-process do svojho prehliadača a jeho následným reštartom. Opravná aktualizácia automaticky chrániaca používateľov prehliadača Chrome príde 23. januára s Chrome v64.

Dnes sú k dispozícii aj viaceré patche, ktoré znižujú možnosť zneužitia tohto nedostatku na hardvérovej úrovni zariadení - LLVM patch a ARM speculation barrier header. Úplne odstránenie Spectre zraniteľnosti ale zatiaľ neexistuje a bude si vyžadovať náročné technologické riešenie, ktoré zrejme výrazne ovplyvní aj výkon postihnutých zariadení.

 

Ako nás Meltdown a Spectre ovplyvnia v budúcnosti?

Nové zraniteľnosti objavené v takmer každom modernom procesore jednoznačne ovplyvnia ďalší vývoj osobných počítačov, smartfónov aserverov. Nakoľko vývoj nových generácií procesorov trvá mesiace až roky, v najbližšom období budeme svedkami predstavenia (ešte stále) zraniteľných čipov.

Výrobcovia sa však budú snažiť akýmkoľvek spôsobom znížiť možnosť zneužitia týchto zraniteľností a postupne budú objavovať riešenia, ktoré ich úplne eliminujú.

Pre koncového zákazníka to ale môže znamenať okrem nižšieho výkonu jeho zariadení aj vyššie poplatky za služby, ktoré budú priamo ovplyvnené stratou výpočtového výkonu (servery, cloud, VoD služby, SaaS, …).

Spoločnosť Intel už v týchto chvíľach čelí 3 skupinovým žalobám v americkom Oregone, Indiane a Kalifornii, a to najmä za neskoré zverejnenie informácií o zraniteľnostiach Spectre a Meltdown a za zníženie výpočtového výkonu procesorov po ich čiastočnej oprave.

S kauzou Meltdown a Spectre sa spája aj podozrivý plán na predaj akcií Intelu v hodnote $39 miliónov, ktorý Intel CEO Brian Krzanich pripravil ešte v októbri 2017. V čase, kedy tento plán vznikol, ale Intel už 5 mesiacov o zraniteľnostiach v jeho procesoroch vedel, a tak sa prešetruje, či nejde o zneužitie vnútorných informácií spoločnosti.

Zdroje: Google Project Zero, Root.cz, DSL.sk, Meltdownattack.com

 

Prečo sa naši zákazníci nemusia báť?

Nakoľko máme dosť špecifické prostredie, nie je to v prípade nás a našich zákazníkov taký horúci problém, a to hlavne z dôvodov:

  1. Obmedzený prístup na servere (vrátane virtuálnych), mnohí zákazníci majú vlastné farmy, hardware je dedikovaný len pre nich (tzv. privátny cloud).

Táto selekcia, spôsobená druhom našich produktov a nastavenými obchodnými podmienkami, vytvára prostredie, kde útoky cez javascript sú nerealizovateľné, a spúšťané aplikácie, až na pár výnimiek, tvoria aplikácie z overených repozitárov.

2) Je takmer nemožné spustiť škodlivý kód na serveroch, to vyplýva hlavne z bodu 1.

V našom public cloude prevádzkujeme virtuálne servery, ktoré sú špecifické, a tvoria základ IaaS/PaaS pre konkrétne riešenia zákazníkov. Rovnako tieto virtuálne servery sú v našej správe, a máme prehľad, čo sa na nich deje a aké aplikácie sa na nich spúšťajú. Sami dobrovoľne nebudeme predsa spúšťať škodlivý/neznámy kód na nami spravovaných serveroch. Naša “nevýhoda”, že nepredávame virtuálne servery (s možnosťou prevádzky ľubovoľného operačného systému a softvéru na ňom) cez web ľubovoľnému zákazníkovi, je v tomto prípade našou výhodou.

Nakoľko sa jedná o závažnú chybu v návrhu architektúry procesora (špekulatívne vykonanie kódu v “predstihu”) na úrovni hardvéru, odporúčame počkať pár dní a bezpečnostnú aplikáciu záplat aplikovať iba na špecifické servery, ktoré spúšťajú aplikácie, ktorých kvalita a bezpečnosť nie je nikým kontrolovaná. Sme presvedčení, že oprava na úrovni OS (jadra, kompilátora), sa nedá ušiť za pár dní (v skutočnosti sa tento problém rieši už niekoľko mesiacov). Takáto záplata môže spôsobiť zas iné závažné problémy (aj prax potvrdzuje, že sa tak deje).

Problém sa skôr týka klientskych počítačov (alebo aj telefónov), v ktorých je omnoho ľahšie spustiť škodlivý kód (bfu), a ukradnúť citlivé dáta zo zariadenia.

Situáciu pozorne sledujeme, pre spomenutú časť serverov sme už vykonali aplikovanie dostupných záplat a vo vhodnom okamihu podnikneme ďalšie potrebné kroky.

 

Podobné blogy