Tak to vypadá, že začátek roku nebude nakonec ve znamení nejrůznějších novinek veletrhu CES 2018, ale masivního bezpečnostního průšvihu, který byl loni nalezen a letos odhalen ve většině dnešních procesorů pro PC i mobily, přičemž nejzávažnější je situace na CPU Intel, která jsou obsaženy v drtivé většině počítačů. Těmto zranitelnostem nazvaným Spectre a Meltdown už jsme věnovali dva články (první před zveřejněním, pročíst byste si měli minimálně ten druhý s oficiálními informacemi). Ovšem vypadá to, že virtuálního papíru se k nim ještě potiskne víc, pořád se totiž objevují závažné „nové skutečnosti“. Tou asi nejzásadnější je, že chyba Meltdown není zažehnána tak definitivně, jak to zprvu vypadlo.
Pro připomenutí: nově odhalené zranitelnosti kolem spekulativního vykonávání kódu výzkumníci rozdělili na dvě skupiny. Chyba Spectre postihuje alespoň teoreticky většinu moderních CPU a exploity pro ni jsou ověřené na čipech Intelu, ale i AMD, různých ARMech a také třeba Power7+, 8 a 9 od IBM (to už je oficiálně potvrzeno, budou potřebovat update firmwaru a OS). Spectre se považuje za o něco méně závažnou a ne tak snadno zneužitelnou, jako je druhá chyba Meltdown. Tou ve světě PC jí trpí jen procesory Intel (a to zdá se víceméně všechny, zatímco na procesorech AMD díra není kvůli odlišné architektuře; situace firmy VIA není známa). Tato slabina umožňuje běžnému kódu – včetně třeba javascriptu na webové stránce – číst data z privilegované paměti jádra operačního systému. Hrozit by tím mohla krádež citlivých hesel nebo třeba údajů ke kreditní kartě.
Oprava Meltdownu je jen pro 64bitové operační systémy
Chybu Meltdown (CVE-2017-5754 neboli také „Rogue Data Cache Load“) opravují aktualizace operačního systému, které již byly vydány (pro Linux, macOS 10.13 a Windows 7 SP1, 8.1 a 10). To jsou ony patche, které snižují výkon na procesorech Intelu. Ovšem vypadá to, že neopravují zranitelnost Meltdown až tak stoprocentně, jak jsme si mysleli. Podstata této opravy, nazvané v Linuxu KPTI (Kernel page-table isolation) a na Windows Kernel VA shadowing, totiž zdá se potřebuje 64bitový operační systém a jeho velký adresní prostor. To znamená, že na 32bitových operačních systémech není aplikována ani dostupná.
To je docela závažné a bohužel vám tuto informaci prakticky nikdo neřekne. Já jsem na ni narazil na Twitteru Alexe Ionescua z Widnows Internals. Ačkoliv vám Windows Update na 32bitovém systému záplaty určené proti této skupině útoků nainstaluje, potřebné opatření proti Meltdownu v nich není. Totéž ovšem platí na Linuxu, ani tam 32bitové řešení neexistuje.
Na obrázku níže můžete vidět, jak dopadla „oprava“ na konvertibilním tabletu Asus Transformer Book T100TA, na němž jsou nainstalované Windows 10 v 32bitové verzi a už ve čtvrtek dostal aktualizaci KB4056890. Diagnostický nástroj Microsoftu pro PowerShell potvrzuje, že procesor Atom Z3740 vyžaduje opravu pro Meltdown (Kernel VA Shadowing), ale jak můžete vidět červeně o řádek níž, tato podpora není přítomna v operačním systému.
Tento 32bitový počítač je tedy i po aktualizaci chybě Meltdown stále vystaven a s ním zřejmě i ostatní PC, na nichž běží 32bitová Windows (či Linux). Pokud se vás to týká a máte tu možnost, důrazně zvažte instalaci 64bitové verze operačního systému, jinak zůstáváte proti Meltdownu zranitelní.
Bohužel, toto řešení není vždy možné, jelikož na mnoho počítačů nelze 64bitová Windows dostat při nejlepší vůli. Je to případ právě některých modelů s čipy Atom, které mají jen 32bitové UEFI, ačkoliv jde o 64bitové procesory. Jindy zase mohou být uživatelé počítače vázáni na 32bitový operační systém kvůli chybějícím ovladačům pro nějaký hardware. Nebo proto, že používají 16bitové aplikace pro velmi staré verze Windows či dokonce pro DOS – podpora pro 16bitový režim na 64bitové platformě neexistuje. Toto tedy znamená, že pro část uživatelů bezpečnostní díra Meltdown na procesorech Intel zůstává otevřená a softwarová oprava nepomůže. A je to o to nešťastnější, že se o tomto problému dostatečně neinformuje a většina uživatelů se nejspíš bude domnívat, že mají po aktualizaci pokoj. Místo toho se budou muset spolehnout na to, že je před případnými útoky na internetu ochrání zábrany například implementované do webových prohlížečů.
Na serveru si patch musíte zapnout sami
Mimochodem, ohledně Meltdownu je tu ještě jedna poznámka. Ochrana Kernel VA Shadowing není ve výchozím stavu zapnutá na serverových Windows, a to kvůli výkonu. Pokud ji jako administrátor chcete aktivovat, musíte tak učinit manuálně: viz web Microsoftu.
(Polo)Meltdown na ARMech
K chybě Meltdown máme ještě nějaké další novinky. Již neplatí, že je čistě problémem Intelu. Stejný exploit nebo jeho úpravu lze zneužít na procesorech Apple a také na Cortexu-A75. Nejnověji potvrdil, že jeho CPU Meltdownem trpí, také Qualcomm. Ten má v Snapdragonu 845 zřejmě upravená jádra Cortex-A75 a řeč by asi mohla být o nich. Ale není vyloučeno, že jsou zranitelná i některá další jádra jako Krait, Kryo nebo Falkor, která firma vyvinula sama. Zranitelnost by u nich měl jako na Intelech zalátat operační systém Linux nebo Android pomocí techniky KPTI, ovšem asi přijde podobná ztráta výkonu.
Kromě toho ale bylo zveřejněno, že ve slabší formě je zranitelnost podobná Meltdownu také v dalších out-of-order jádrech ARM Cortex, a to A15, A57 a A72. V těchto případech není možné přečíst paměť jádra operačního systému, ale data mohou stále uniknout z registrů v procesoru, ke kterým by běžný proces neměl mít přístup. Jde také o slabé místo, ale méně závažné. ARM je toho názoru, že zde není třeba nějakých zvláštních softwarových opatření. Nejde tedy o kompletní chybu Meltdown. Tento problém byl identifikován přímo zaměstnanci firmy ARM a je možné, že se nachází i v dalších procesorech jiných výrobců, jen ho tam zatím nikdo nehledal.