W większości zastosowań podatności znane jako Meltdown i Spectre można wyeliminować za pośrednictwem aktualizacji aplikacyjnych tylko w niewielkim stopniu wpływających na wydajność przetwarzania. Jednak, jak wynika ze wstępnych analiz, w przypadku wirtualizacji programowe rozwiązanie wspomnianych podatności może prowadzić do spadku wydajności na poziomie nawet 30 proc.
Istotę wykrytych w popularnych procesorach czołowych graczy na rynku (m.in. Intela, AMD oraz ARM) podatności znanych pod nazwami Meltdown i Spectre opisaliśmy na łamach ITwiz kilka dni temu. Przedstawiciele firm oferujących rozwiązania, na których mogą negatywnie mogą odbić się zmiany niezbędne do wyeliminowania wspomnianych podatności w wykorzystywanych dziś procesorach, w większości zapewniają, że ryzyko obniżenia wydajności ich układów lub oprogramowania jest niewielkie. Te deklaracje w znacznej mierze okazały się zgodne z prawdą – aczkolwiek, jak donosi serwis Networkworld, nie dotyczą one niestety zastosowań związanych z wirtualizacją. Pierwsze analizy wykazują bowiem, że poprawki rozwiązujące problemy Meltdown i Spectre mogą powodować obniżenie wydajności w aplikacjach wirtualizacyjnych bazujących na CPU Intela sięgające nawet 30 proc.
Przypomnijmy: problem dotyczy stosowanego w większości współczesnych CPU (ale najbardziej „agresywnie” działającego w procesorach firmy Intel) mechanizmu przewidywania tego, jaki kod powinien zostać uruchomiony w dalszej kolejności – korzystając z funkcji out-of-order execution (OOE) procesor próbuje „zgadnąć” co powinno być uruchomione i wstępnie ładuje ów kod do pamięci podręcznej. Specjaliści z działu bezpieczeństwa Google dowiedli jednak, że ów mechanizm nie jest należycie zabezpieczony i możliwe jest stworzenie aplikacji, które będą w stanie w nieautoryzowany sposób przechwycić taki wstępnie załadowany kod (mogą to być np. dane użytkownika, loginy i hasła, klucze szyfrujące itp.).
Zarówno producenci procesorów, jak i popularnych systemów operacyjnych intensywnie pracują już na rozwiązaniem problemu – Microsoft, Google i Apple udostępnili już stosowne poprawki, zaś Intel zapewnia, że udostępni poprawki aplikacyjne przeznaczone dla większości swoich współczesnych procesorów w ciągu najbliższych kilku dni. Wstępne analizy sugerowały, że instalowanie owych poprawek może spowodować radykalne obniżenie wydajności procesorów (będące efektem dezaktywowania OOE). W miarę pojawiania się kolejnych aktualizacji sytuacja się uspokajała, a testy wykazywały, że spadki wydajności są minimalne.
Okazuje się jednak, że istnieją pewne specyficzne scenariusze, w których spadki wydajności są tak duże, jak przewidywały najbardziej pesymistyczne prognozy. Chodzi tu np. o funkcjonowanie mechanizmu wirtualizacji aplikacji i systemów operacyjnych – z analiz wydajnościowych przeprowadzonych m.in. przez serwis The Register wynika, że realny spadek wydajności po zainstalowaniu łatek usuwających podatności Meltdown oraz Spectre może w przypadku systemów wykorzystujących procesory firmy Intel wynosić od 5 do nawet 30 proc. Najwyższe spadki zanotowano właśnie w przypadku aplikacji wirtualizacyjnych czy baz danych. Minimalne lub żadne zaobserwowano natomiast m.in. w grach.
Dodatkowym problemem jest fakt, iż instalowanie owych poprawek jest wręcz obligatoryjne w przypadku maszyn wykorzystywanych do wirtualizacji – administrator takich systemów nie może sobie pozwolić na czekanie na bardziej dopracowane, alternatywne rozwiązanie problemu. Możemy wszak sobie wyobrazić scenariusz, w których w centrum danych na jednym fizycznym serwerze uruchomionych jest wiele wirtualnych maszyn – teoretycznie błąd w procesorze może pozwolić klientowi, który wykupił jedną z nich, wykradać dane innych użytkowników korzystających z tego samego serwera (a dokładniej – z innego wirtualnego systemu uruchomionego na tej samej maszynie). Pozostaje mieć nadzieję, że niebawem pojawią się rozwiązania pozwalające wyeliminować podatności Meltdown i Spectre w sposób nie powodujący tak znacznych spadków wydajności wirtualizacji.