Jak už asi víte, na začátku ledna bylo oznámeno objevení bezpečnostní chyby Spectre víceméně ve všech současných procesorech. Část oprav, které proti jejímu zneužití (přesněji řečeno proti Spectre variantě 2) nasadily operační systémy, závisí na nových speciálních funkcích pro ovládání prediktoru větvení v jádrech CPU. Ovšem tyto funkce musí procesorům nejprve dodat aktualizace mikrokódu. Intel již tyto záplaty vydal pro všechny své procesory z posledních let, počínaje některými verzemi Nehalemu, ale problém je v tom, že výrobce starší desky nebo PC vám obvykle nedodá potřebný nový BIOS. Naštěstí ale tyto aktualizace začal distribuovat také Microsoft a jeho prostřednictvím byly nyní zpřístupněné aktualizace mikrokódu pro starší architektury, takže už lze zabezpečit i docela postarší počítače.
Aktualizace pro starší CPU už jsou ve Windows Update
V katalogu záplat pro Windows lze nyní nalézt aktualizace mikrokódu pro procesory od Skylake a derivátů (Coffee Lake, Kaby Lake), přes Haswell a Broadwell a v posledních dnech přibyly také stále populární Sandy Bridge a Ivy Bridge z let 2011 a 2012. Tyto architektury lze do značné míry stále považovat za moderní CPU, zvlášť pokud se jedná o čtyřjádrový model, takže jejich pokrytí bezpečnostními patchi je víc než vítané. Nadále tak zůstanou plnohodnotná i co do bezpečnosti, místo aby je konec podpory odeslal do důchodu.
Tato aktualizace není zřejmě zařazena mezi záplaty, které by vám Windows nainstalovaly automaticky – alespoň na PC s procesorem Sandy Bridge, které jsem zkoušel, se tak nestalo. Je třeba stáhnout samostatný instalátor, jenž má pro Windows 10 v sestavení 1803 označení KB4100347, a nainstalovat ručně. Poté je třeba počítač restartovat, jelikož mikrokód se do CPU nahrává při spouštění OS. Bohužel se zdá, že balíček s mikrokódy není dostupný pro Windows 7 nebo WIndows 8.1, ale pouze pro desítky. A verzi obsahující i mikrokódy pro Sandy Bridge a Ivy Bridge má Microsoft jen pro aktuální build 1803 (stáhnout se balík dá zde), tedy April 2018 update.
Pro předchozí sestavení Windows 10 sice tato záplata také existuje, ale zatím jen ve starší verzi, které má ještě mikrokódy jen pro Haswell až Skylake. Odkazy na aktualizaci pro jednotlivé starší verze Windows 10 má Microsoft zde.
Zatímco pro některé desky platformy Haswell a Broadwell se již začaly objevovat i aktualizace BIOSů od výrobců, počítače s procesory Sandy Bridge a Ivy Bridge jinou možnost než tento update nemají a je třeba pochválit Microsoft, že jim mikrokód zprostředkovává. Kromě běžných desktopových a mobilních čipů jsou touto záplatou pokryté i highendové a serverové verze (Haswell-E/EP, Sandy Bridge-E/EP a tak dále) a také Xeony D. Seznam najdete v popisu aktualizace.
Doufejme, že se brzo dostane i na zbylé architektury, které Intel opravil a také jádra Atom, které Microsoft v balíku zatím nemá. Zda se takto budou distribuovat také stejné opravy pro procesory AMD, bohužel také nevíme.
Zběžný test: procesor Sandy Bridge opravou moc neutrpí
Zrovna jako na zavolanou se po ruce naskytlo PC s procesorem Core i7-2600K, které již mělo nainstalovány Windows 10 s April 2018 Updatem, a tak jsem na něm fungování těchto záplat vyzkoušel. Po ručním spuštění instalátoru a restartu na tomto stroji utilita SpecuCheck hlásí, že Windows mají ochranu proti Spectre v2 aktivní a používají rozšíření STIBP, IBRS a IBPB. To znamená, že update mikrokódu při bootu z operačního systému úspěšně funguje a PC je zabezpečeno. Tedy alespoň proti tomuto bezpečnostnímu problému, jistota v počítačích nikdy není absolutní.
Pro informaci, jak ochrana proti Spectre v2 pomocí funkcí v novém mikrokódu případně počítač zpomaluje, jsem letmo zkusil aspoň pár benchmarků. Test je to jen hodně narychlo provedený a bez pořádné metodiky (nebo opakování/průměrování), takže čísla berte jen silně orientačně, ne jako regulérní benchmark. Z tohoto nástřelu to ale vypadá, že majitelé procesorů Sandy Bridge nemají příliš důvodů se opravy Spectre v2 bát. Většina benchmarků sice zpomalení zaznamenala (s výjimkou Cinebench a x264, kde je dokonce nárůst, ovšem asi v rámci chyby měření), jde však o nízké jednotky procent. Rozdíl je malý a tak asi nemá smysl záplaty odmítat.
Největší 7% rozdíl u browserového benchmarku Sunspider už je sice markantnější, jde ale o starý a velmi krátce běžící test, takže změnu výkonu byste reálně nepoznali a výsledek také může být krátkostí výpočtu hodně zkreslen. Delší javascriptový test Mozilla Kraken má ztrátu výkonu mnohem menší. Pro pořádek je ještě třeba říct, že ono krátké testování neodhalilo žádné chyby nebo nestabilitu.
Vliv mikrokódové opravy Spectre v2: Core i7-2600K, Windows 10 64bit
Benchmark | Bez mikrokódu | S mikrokódem | Změna |
CPU-intenzivní
|
|||
x264 FHD Benchmark v1.0.1 | 18,86 fps | 18,87 fps | +0,05 % |
Cinebench R15 MT | 615 | 617 | +0,33 % |
Cinebench R15 ST | 132 | 133 | +0,76 % |
Prohlížení webu, javascript |
|||
Sunspider 1.0.2 | 258,0 ms | 276,2 ms | -7,05 % |
Kraken 1.1 | 1262,8 ms | 1274,1 ms | -0,90 % |
PCMark 10 (základní edice) |
|||
App Start-up | 3641 | 3515 | -3,58 % |
Video Conferencing | 5523 | 5490 | -0,60 % |
Web Browsing | 5455 | 5549 | +1,72 % |
Productivity: Spreadsheets | 3971 | 3815 | -4,09 % |
Productivity: Writing | 3757 | 3604 | -4,25 % |
Photo Editing | 2093 | 2012 | -4,03 % |
Video Editing | 1424 | 1377 | -3,41 % |
Konfigurace testovacího PC byla poněkud ve stylu „co dům dal“, což bude odpovídat spíš staršímu domácímu či kancelářskému PC než výkonné či herní sestavě: Intel Core i7-2600K na výchozích taktech, integrovaná grafika HD3000; 8 GB RAM (DDR3 1333 MHz, jeden kanál); deska MSI H61M-P31/W8; Windows 10 64bit 1803; Mozilla Firefox 60.0.1 64bit. Systém byl bohužel na velmi starém HDD Seagate Barracuda NS 250GB (7200RPM), takže dopad opravy Spectre na rychlost I/O operací jsem ani nezkoušel.
Aktualizace mikrokódu nic nepokazí, je reverzibilní
Pokud máte strach ze ztráty výkonu, nebo vám o něco vyšší potenciální zranitelnost systému nevadí, tyto záplaty samozřejmě instalovat nemusíte. Je možné jejich funkci po instalaci zablokovat pomocí registrů, které Windows zakážou IBRS/IBPB/STIBP používat. Samotná přítomnost mikrokódu v CPU by k degradaci výkonu ještě vést neměla, takže jejím instalováním vyloženě neriskujete (aktualizace mikrokódu je každopádně volatilní a CPU permanentně nemění, takže se jí případně můžete zcela zbavit odinstalováním záplaty KB4100347). Osobně jsem ji v systému ponechal a odinstalovával bych ji asi až tehdy, pokud bych narazil na konkrétní výkonnostní problém v nějakém programu. Například kdyby CPU přestalo stíhat dekódovat real-time nějaké video, které předtím plynule zvládalo, nebo něco podobného.