Minulý týden jsme psali o tom, že se zřejmě blíží další snůška bezpečnostních chyb v procesorech. Původně zdroj této zprávy (německé Heise, respektive jeho sekce c't) uváděl, že by část těchto zranitelností mohla být odhalena tento týden, nakonec ale údajně Intel dostal před zveřejněním čas navíc – což je u hardwarových chyb, vyžadujících časově náročnou distribuci nových BIOSů, rozumné. Ovšem Intelu nebyl dopřáno si ani oddechnout, na potvoru tento týden vyšly informace (a naštěstí i opravy) týkající se jiného bezpečnostního problému na platformě x86. Zdá se, že s tzv. „Spectre NG“ nemá nic společného, a také je naštěstí softwarové povahy a snadno řešitelné.
Díra ve většině OS... kvůli špatné dokumentaci procesorů
Chyba „POP SS/MOV SS Vulnerability“ (CVE-2018-8897), o které je řeč, umožňuje v operačních systémech eskalaci oprávnění ze z běžného uživatelského kódu na plný přístup s opravováními jádra. Její podstata je poněkud nezvyklá až kuriózní. Z hlediska hardwaru nejde o vadu, ale o regulérní použití funkcí, které mají sloužit k debugování. Chyba je na straně operačních systémů, které nesprávné použití daných speciálních instrukcí k průlomu do oprávnění příslušejících jádru OS umožňují. Ovšem tato jejich chyba zase vznikla z toho, že jejich vývojáři postupovali dle dokumentace, kterou jim poskytl Intel (nebo AMD) a která bohužel byla zavádějící či špatná.
Tato zvláštní shoda okolností vedla k tomu, že je daná zranitelnost sice čistě softwarovou zranitelností, ale postihuje snad všechny hlavní operační systémy běžící na procesorech x86. Podle oné nesprávně sepsané dokumentace totiž byla bezpečnostní slabina zanesena do Windows, Linuxu (trpí či trpěla jí zřejmě většina distribucí), macOS a například také FreeBSD (naopak NetBSD a OpenBSD nikoliv). A mimo klasické operační systémy také do hypervizorů Xen a VMWare.
Problém vznikl tím, jak tyto operační systémy pracují s instrukcemi MOV SS a POP SS (SS je segmentový registr architektury x86, jehož hodnota ukazuje na aktuální stack segment). Při použití s debugovacími funkcemi těsně před přerušením nebo systémovým voláním do jádra zřejmě může dojít k tomu, že se debugovací přístup otevře až po přepnutí do jaderného prostoru nebo přerušení. Tímto postupem ale škodlivý kód spuštěný s běžnými právy (ring 3) dokáže dostat k oprávněním operačního systému (ring 3). Zdá se, že dané chování bylo zavedeno snad již někdy v době procesorů 8086, nedostatečná dokumentace ale způsobila, že až dosud nebyla situace řádně ošetřena ve většině operačních systémů. Odborný popis je k dispozici v tomto referátu od původního objevitele chyby.
Chyba tedy způsobuje lokální eskalaci privilegií, naštěstí ale vyžaduje spuštění kódu na cílovém počítači, nejde tedy o vzdálený útok. Neprivilegovaný uživatel systému ale může získat přístup k celému systému nebo získat citlivé informace z jádra operačního systému. Chyba byla koordinovaně opravena v řadě hlavních OS, zmíněných výše, na Windows by zřejmě měla být součástí patchů vydaných minulé záplatovací úterý.
Zranitelnost fungovala na CPU od Intelu i AMD
Co je třeba vypíchnout: ačkoliv některé zprávy o této chybě mluví jako o problému „procesorů Intel“, jde zřejmě o problém postihující i další CPU instrukční sady x86. V referátu se mluví o „procesorech Intel nebo AMD“ a dost možná by věc fungovala i na procesorech VIA (nebo i VorteX86?). Opravy v operačních systémech by měly ale pokrývat toto nebezpečné chování obecně na všech CPU. Jak už bylo řečeno výš, nejde přímo o hardwarovou chybu, ale o špatnou implementaci softwaru. Ukazuje ovšem, jak zvláštnosti hardwaru v různých vzácných situacích mohou k softwarové díře přispět.
Oprava „Spectre NG“ bude později, ochranná lhůta prodloužena
Když už jsme u tohoto tématu, možná není od věci aktualizace k oné zprávě o tzv. chybách „Spectre NG“. Podle Heise měla část být opravena 7. května, což ale bylo zrušeno. Intelu již bylo poskytnuto prodloužení lhůty pro opravu minimálně do 21. května, buď kvůli tomu, že ještě vše nebylo připraveno, nebo možná proto, aby bylo více času na testování (a neopakoval se třeba problém s nestabilitou opravy Spectre z ledna). Oznámení chyb ale může nastat ještě později, Intel údajně zažádal o další prodloužení do 10. července.
Podle Heise by většina záplat měla vyjít v srpnu, možná včetně těch pro nejzávažnější zranitelnosti, které prý umožňují překonání bariéry mezi virtuálními stroji nebo virtuálními stroji a hypervizorem. Plánované datum vydání patchů by snad prý mělo být 14. srpna, ale není zatím jasné, zda už tím bude pokryto všech osm zranitelností, kterou jsou údajně nyní řešeny. Co je také stále záhadou, je míra zranitelnosti u procesorů AMD, které také mohou tyto problémy – část nebo klidně všechny – sdílet. Zatím je tedy dost předčasné na základě těchto údajných (a oficiálně stále nepotvrzených chyb) směřovat konkrétně na Intel nějakou tvrdou kritiku. Problémy také patrně opět budou postihovat i další architektury, jelikož údajně měla být postižena i nějaká jádra ARM.
Windows 10 April 2018 Update nemluví s SSD Intel
Ovšem když už bylo zmíněno, že má Intel poněkud smolné dny, zmíníme hlavně pro informaci ještě jednu věc. Pro změnu uživatele některých SSD značky Intel (mělo by zřejmě jít o SSD 600p a jeho odnož SSD Pro 6000p) zdá se postihl menší problém. Počítače s těmito úložišti údajně mají problémy po instalaci nejnovějšího updatu Windows 10 (verze 1803), a Microsoft jim proto distribuci této jarní aktualizace pozastavil. Pravděpodobně by zde ale nemělo jít o něco závažného a až se podaří důvod nekompatibility odhalit, bude distribuce obnovena. Není tedy důvod k nějaké panice. Pokud ovšem máte takovéto SSD a divíte se, proč vám Windows Update verzi 1803 nenabízí, může být pes zakopán právě v disku.
Pokud byl systém aktualizován na verzi 1803 ještě před zablokováním distribuce, může na postižených systémech dojít k pádům a neschopnosti spustit operační systém. Microsoft doporučuje u již aktualizovaných PC provést návrat k předchozí verzi systému, zatímco je hledáno řešení.