Biznes i Finanse
Meltdown i Spectre i ich wpływ na użytkowników komputerów osobistych
Problemy z podatnościami Meltdown i Specter pozostają w centrum zainteresowania. Podatności uderzają w praktycznie wszystkie procesory Intela oraz (w mniejszym stopniu) w procesory AMD i część procesorów ARM. Oceniamy jaki będzie realny wpływ tych podatności na wydajność komputerów osobistych.
Podatność Meltdown polega na przełamaniu bariery pomiędzy izolacją przestrzeni adresowej aplikacji, a przestrzenią adresową jądra systemu. Atakujący może uzyskać dostęp do dowolnej pamięci np. haseł, certyfikatów czy innych wrażliwych danych.
Podatność Spectre łamie izolację pomiędzy aplikacjami. Jej wykorzystanie może pozwolić na wykradzenie informacji z prawidłowo napisanych i przestrzegających wszelkich praktyk związanych z bezpieczeństwem aplikacji np. haseł z menadżera haseł takiego jak Last Pass czy haseł pamiętanych przez przeglądarkę internetową (funkcja autouzupełniania). Skorzystanie z tej podatności jest w praktyce dużo trudniejsze niż z Meltdown.
Windows
Microsoft uzupełnił poprawki zabezpieczające przed Meltdown ale jedynie dla najnowszej 64 bitowej wersji systemu Windows 10 (wersja 1709, znana także jak Fall Creators Update lub Redstone 3). Najnowsza wersja Windows 10 w wersji 32 bitowej (x86) znalazła się w Microsoft Update Catalog, jednak nie trafiła do Windows Update. Starsze wspierane systemy, czyli wcześniejsze wersje Windows 10, Windows 8.x oraz Windows 7 nie otrzymały jeszcze poprawki, i nie jest jasne czy ją otrzymają (poprawka wiąże się z poważnymi zmianami w architekturze jądra).
Zabezpieczenie się przed podatnością Spectre jest trudniejsze i wiąże się z uaktualnieniem mikrokodu CPU, który Windows pobiera z BIOS/UEFI, a więc wymaga wypuszczenia przez producenta komputera lub płyty głównej uaktualnionego BIOS/UEFI oraz instalacji go przez użytkownika. Alternatywnie można się zabezpieczyć się przez skompilowanie oprogramowania uaktualnionymi kompilatorami, obecnie rozpoczęły się nad nimi prace co w przyszłości pozwoli na kompilowanie oprogramowania zabezpieczonego przed Spectre. Istnieje również sposób na uaktualnienie mikrokodu CPU niezależnie od BIOS/UEFI przy użyciu „VMware CPU Microcode Update Driver” (tu można znaleźć informacje o tym jak tego dokonać: http://forum.notebookreview.com/threads/how-to-update-microcode-from-windows.787152/\)
Dokładnych informacji o podatności komputera może dostarczyć narzędzie InSpectre autorstwa Steve’a Gibsona, dostępne tu: https://www.grc.com/inspectre.htm
Linux
Aby zabezpieczyć komputer z systemem Linux przeciw podatności Meltdown konieczne jest uaktualnienie jądra systemu do wersji zabezpieczonej. Obecnie ukazały się poprawki do kerneli LTS 4.4 i 4.9 oraz do najnowszego kernala 4.14 (poprawki zawierają również 4.15). Należy sprawdzić czy autor wersji, którą używamy udostępnił aktualizację z jądrem zabezpieczonym przed podatnościami, jeśli nie, konieczna może być samodzielna aktualizacja jadra. Pamiętać należy ze procesem ten nie musi zakończyć się sukcesem i może wiązać się z zakłóceniem stabilności systemu.
Zabezpieczenie przed podatnością Spectre wymaga uaktualnienia mikrokodu CPU. System Linux ma wbudowany mechanizm uaktualnienia „firmware procesora”. W przypadku starszego sprzętu, który nie jest wspierany przez producenta, należy ręcznie sprawdzić dostępność aktualizacji. Nie należy się jednak spieszyć z instalacją uaktualnień ponieważ zawierający poprawki mikrokod oznaczony wersją 20180108 został wycofany z dystrybucji, podobnie jak opracowane przez producentów sprzętu zawierające aktualizacje BIOS/UEFI. Linus Torvalds twórca i opiekun jądra Linuxa w niewybrednych słowach skrytykował politykę poprawek firmy Intel.
MacOS
Firma Apple zadeklarowała, że uaktualnienia związane z problemem trafiły już do systemów Mac OS, jednak najprawdopodobniej chodzi jedynie o problem związany z Meltdown. Zabezpieczenie przeciw Spectre podobnie jak w pozostałych systemach wymaga uaktualnienia mikrokodu CPU. W tym wypadku nie można być pewnym czy starsze komputery Apple otrzymają uaktualnienie przeciw Specter. Apple jest znane z szybkiego wycofywania się ze wsparcia swojego sprzętu.
AMD i ARM
Procesory AMD wedle obecnej wiedzy nie są podatne na Meltdown (nie opracowano skutecznej metody ataku). Podatność Spectre obejmuje zarówno procesory Intel jak i AMD. AMR potwierdziło że część konstrukcji bazujących na ich rozwiązaniach również jest podatna (w tym procesory napędzające telefony i tablety Apple). Pamiętać jednak należy że Spectre który może prowadzić do przełamania izolacji maszyny wirtualnej w dużo większym stopniu zagraża dużym centrom danych, a w tych dominują Intele.
Pierwsze poprawki Microsoft rozwiązujące problem z podatnością Meltdown trwale uszkadzały system Windows 10 na komputerach z procesorami produkcji Advanced Micro Devices, czyniąc go niezdatnym to startu. Komputery na których wystąpił ten problem wymagają reinstalacji systemu operacyjnego. Microsoft zablokował ściąganie poprawki Windows dotyczącej Meltdown na komputerach z procesorami AMD, należy jednak uważać by np. nie zainstalować ich ręcznie.
Jak duży będzie spadek wydajności?
By określić wpływ poprawek dotyczących podatności na wydajność systemy posłużono się nieużywanym komputerem biurkowym Dell z procesorem Intel Core 2 Duo E7500 @ 2.93GHz i 4 GB RAM. Do przeprowadzenia testów zainstalowaliśmy Linux Mint 18.3 z lekkim środowiskiem XFCE oraz zestaw testów z pakietu Phoronix Test Suite. Przeprowadziliśmy zestaw testów CPU (27 testów) i pamięci (9 testów) na jądrach w wersjach 4.12.14 (przed poprawkami) i 4.14.14 (po poprawkach błędów). Choć jądro nowszej wersji okazało się wolniejsze (średnio o ok 1,5 %) to jednak różnice w wynikach często znajdowały się w granicach błędu pomiaru. Na podstawie tego testu można wysunąć wniosek że sama poprawka dla Meltdown dla systemu Linux nie wprowadza zdecydowanych różnic w wydajności systemu.
Do drugiego testu użyliśmy Lenovo z procesorem Intel Core i5-6300HQ @2.30 GHz i 8 GB RAM. Komputer pracował pod kontrolą systemu Windows 10 Pro (wersja 1709) z najnowszymi poprawkami. Do komputera za pomocą sterownika „VMware CPU Microcode Update Driver” wgrano najnowszy mikrokod procesorów Intel (wycofana później ze względu na niestabilność wersja 20180108), a także wersję sprzed patcha przeciw Spectre (10171117). Narzędzie InSpectre zweryfikowało podatność komputera na Specter przy starszej wersji i jej brak przy nowszej wersji mikrokodu. Do testu posłużył program Adobre Premiere Pro CC (najnowsza wersja dostępna w CC) oraz projekt video (nagranie programu skaner Defence24Tv). Na co dzień laptop ten używany jest do montażu wideo małych projektów. Ku zdziwieniu testującego to wersja mikrokodu zawierająca poprawkę okazała się szybsza. Przyczyn mogło być wiele. Oczywistymi wydaje się fakt ze nowy mikrokod obok poprawki zawierał również optymalizacje. Pamiętać jednak należy że renderowanie video (a więc przetwarzanie danych strumieniowych) nie jest obciążeniem które demonstrowało by problem z podatnością. Wreszcie być może podczas testu zadziałał „thermal throttling” który uczynił test niemiarodajnym.
Zwolnienie najprawdopodobniej będzie widoczne przy obciążeniach w których dochodzi do częstego przełączania odseparowanych procesów. Wreszcie pamiętać trzeba że procesor Intel Core i5-6300HQ powstał na bazie rdzenia Skylake (szóstej generacji). Procesory serii Intel Core od czwartej generacji mają ponieść jedynie minimalny spadek wydajności ze względu na posiadanie instrukcji INVPCID (ang. Invalidate Process-Context Identifier). Obejmuje to jądra: Haswell, Broadwell, Skylake, Kaby Lake i najnowszych Coffee Lake. To starsze procesory mają odczuć problem.
Przeprowadzone testy udowadniają, że w zastosowaniach biurowych i osobistych w żadnym razie nie należy się spodziewać drastycznego spadku wydajności, w szczególności na procesorach Intel Core czwartej generacji lub nowszych. Zalecane jest zaopatrzenie się w poprawki dotyczące podatności Meltdown i Specter kiedy trafią do nas normalnymi kanałami dystrybucji. Przyspieszenie tego procesu może prowadzić do zaopatrzenia się w poprawki niestabilne na niektórych typach sprzętu (jak mikrokod wypuszczony przez Intela 8 stycznia 2018) lub niekompatybilne, uszkadzające system (jak poprawki dla Windows 10 powodujące problemy na procesorach AMD).