Procesory IBM Power trpí chybou Meltdown, ne jen Spectre. Zranitelnosti také na MIPS

31. 1. 2018

Sdílet

 Autor: Redakce

Včera jsme už psali o politické rovině, do které se přelil průšvih okolo bezpečnostních děr Meltdown a Spectre, které byly začátkem roku odhaleny v procesorech. Ovšem nejen tam je kolem velkého procesorového průšvihu „veselo“. Zdá se, že i přímo v hardwarovém světě se rozrůstá dosah těchto problémů. Poměrně překvapivá je informace o další oběti chyby Meltdown. Mělo se za to, že postihuje v prvé řadě procesory Intel, byť již přibyly i některé architektury ARM (Cortex-A75 a jádra Applu). Podle aktuálních informací ale na Meltdown (CVE-2017-5754) trpí také procesory IBM PowerPC/Power. A to zřejmě včetně těch nejnovějších výkonných serverových CPU, Power8Power9, pravděpodobně ale i starších.

Informace o jejich zranitelnosti na Meltdown je nová, prvotní zprávy přisuzovaly procesorům Power jen problémy Spectre, které má aspoň teoreticky víceméně každé CPU. Ovšem nyní již dokumenty přiznávají i Meltdown a tato chyba bude na architektuře PowerPC řešena v rámci operačního systému Linux. Viz informace od IBM nebo linuxové distribuce Ubuntu. Postižená je jak architektura Power/PPC, tak mainframová S390X. Oprava Meltdownu je u nich realizována kombinací aktualizovaného firmwaru a úprav v jádru operačního systému. Zdá se, že implementace je odlišná od patchů kPTI pro procesory x86. Místo oddělení adresních prostorů se používá nucené vyprázdnění datové L1 cache před návratem z jádra do uživatelského prostoru (volba se jmenuje RFI Flush, vypíná se parametrem -no_rfi_flush).

Procesor Power9 (Zdroj: Raptor Engineering) Procesor Power9 (Zdroj: Raptor Engineering)

Zatím nemáme informace o tom, jaký by tato oprava mohla mít výkonnostní postih, pokud nějaký znatelný bude. Používat záplaty je ale doporučeno, Chyba Meltdown je považována za závažnější než Spectre. Je jí sice snazší softwarově opravit a záplaty by měly být plně účinné (zatímco u Spectre se bavíme spíše o protiopatřeních a problém není odstraněn), ale tuto chybu je snazší zneužít a také dopad exploitu je závažnější.

Spectre na in-order procesoru

Současně se objevila informace, že je údajně možné realizovat exploit Spectre na procesoru IBM Power6, což je už poměrně letitý předchůdce výše zmíněných CPU (uvedení 2007). Proč je to zajímavé? Design Power6 byl ve své době výjimečný, šlo o vysokofrekvenční CPU s architekturou in-order. Nikoliv tedy o out-of-order jádro, a přesto na Spectre není imunní.

Toto demonstruje, že in-order vykonávání ještě není zárukou bezpečnosti. Tyto chyby totiž striktně vzato nepotřebují out-of-order architekturu, ale jen spekulativní vykonávání kódu pomocí predikce větvení. A tato technika je přítomná i v in-order jádrech, jako je třeba původní Atom. Mimochodem, problém Spectre je už také oficiálně potvrzen také na procesorech MIPS, trpí jím (minimálně) jádra Warrior P5600P6600. Ta jsou out-of-order, takže žádné překvapení, nicméně alespoň netrpí závažnější chybou Meltdown.

ICTS24

První 45nm Atom s in-order architekturou Bonnell První 45nm Atom s in-order architekturou Bonnell

Starší Atomy nebudou zpomalené kvůli Meltdownu (alespoň na Linuxu)

Pokud jde ovšem o zmíněné in-order procesory Atom (starší jednojádra a dvoujádra na 40nm a 32nm procesu, tedy Atomy před příchodem čipů Bay Trail a architektury Silvermont), pak ty zatím přece jen vypadají bezpečně. Již od začátku se uvádělo, že by měly být výjimkou z paušálního postižení chybou Meltdown, které jinak pro procesory Intel platí. To se nyní asi potvrzuje. V Linuxu 4.16 byly nyní starší Atomy také označeny za bezpečné. Pokud jste o tom ještě neslyšeli, po provalení problému jádro Linuxu označilo všechny procesory architektury x86 jako zranitelné (flag „X86_BUG_CPU_INSECURE“). Toto nastavení bylo poté deaktivováno pro procesory AMD, čímž na ně přestaly být aplikovány opravy chyby Meltdown.

Nyní podobnou výjimku dostávají právě i staré in-order Atomy, pro které tak zřejmě také přestanou být používány patche kPTI. To znamená, že by u nich měl odpadnout pokles výkonu, které tato oprava na ostatních Intelech způsobuje. Pro připomenutí: týká se to provádění systémových volání, dopad je zejména v diskových operacích. Vzhledem k pomalosti dotyčných čipů Atom to u nich asi bude důležitější než na rychlejších jádrech. Zda poskyten či dokonce již poskytl podobný pardon Atomům také Microsoft v systému Windows, to momentálně nevíme. Pokud s těmito CPU máte nějaký stroj a vyzkoušíte na něm jeden z dostupných diagnostických nástrojů, pochlubte se s výsledkem v diskusi.