Luki w zabezpieczeniach procesora stały się ostatnio bardzo popularne, a dwie z nich to Zenbleed i Downfall. Ale jak bardzo powinieneś się martwić?
W ostatnich latach informacje na temat luk w zabezpieczeniach procesora pojawiały się coraz częściej, a ich ujawnienie często niosło za sobą dość przerażający komunikat. W przypadku Zenbleed I upadekpolegało na tym, że dowolna aplikacja na twoim komputerze mogła uzyskać dostęp do pamięci dowolnego innego programu działającego w odpowiednich okolicznościach. Brzmi intensywnie, prawda?
Jednak nie jest tak źle, jak się wydaje. Jest to oczywiście na tyle istotne, że uzasadnia ujawnienie i aktualizację oprogramowania w celu naprawienia błędów, nawet kosztem wydajności, ale co dokładnie się dzieje, co jest przyczyną tych problemów z bezpieczeństwem? Czy powinieneś się martwić?
Czy powinieneś martwić się lukami w zabezpieczeniach procesora, takimi jak Zenbleed, Downfall i Incepcja?
Szczerze mówiąc, żaden z tych exploitów nie dotyczy zdecydowanej większości ludzi. Chociaż mogą one wyciekać dane z jednego programu do drugiego, każde złośliwe oprogramowanie na komputerze konsumenta ma już duży poziom dostępu, który może nadużyć. Zamiast tego ataki te są szczególnie niepokojące w kontekście przetwarzania w chmurze.
Aby zrozumieć problem, musisz zrozumieć, że wiele różnych serwerów w chmurze jest po prostu komputery o dużej mocy, dużej przepustowości sieci i innym specjalistycznym sprzęcie wymagany. Wiele firm wynajmuje tak zwany VPS, czyli wirtualny serwer prywatny, czyli zwirtualizowane maszyny o ograniczonej mocy, w stronę których mogą działać dziesiątki innych maszyn wirtualnych.
Problemem może być to, że jedna osoba na jednej maszynie wirtualnej może wykonać jedno z nich podatności, uzyskując wgląd w to, jakie dane przepływają przez procesor, w tym dane pochodzące od innych wirtualne maszyny. Nie powinno to być możliwe i stanowi poważne naruszenie bezpieczeństwa. Dlatego też, kiedy ujawniono Zenbleed, istniały już łatki dla procesorów AMD Epyc, które mają na celu wykorzystanie serwerów.
Najpoważniejsze obecnie luki w zabezpieczeniach procesora
Branżowy standard „rankingu” luk w zabezpieczeniach i ich wagi opiera się na systemie Common Vulnerability Scoring System (CVSS). Zapewnia ilościową miarę powagi, ponieważ różne aspekty luki będą miały wpływ na wynik. Dokonuje pomiaru, biorąc pod uwagę następujące elementy:
- Wektor ataku: Sieć/Sąsiadująca/Lokalna/Fizyczna
- Złożoność ataku: Niskie wysokie
- Wymagane uprawnienia: Brak/Niski/Wysoki
- Interakcja z użytkownikiem: Brak/Wymagane
- Zakres: Bez zmian/Zmieniono
- Poufność: Brak/Niski/Wysoki
- Uczciwość: Brak/Niski/Wysoki
- Dostępność: Brak/Niski/Wysoki
Wszystkie te klasyfikują wagę błędu. Na przykład luka, którą można wykonać w sieci o niskiej złożoności, bez wymaganych uprawnień, bez interakcji użytkownika, ze zmienionym zakresem, wysoki poziom wycieku poufności danych, poważne naruszenie integralności danych i duży wpływ na dostępność uzyskają doskonałą 10-tkę w CVSS 3.1, najwyższy wynik możliwy.
Na podstawie tej metryki możemy ocenić obrażenia, jakie mogą zadać Zenbleed i Upadek. Spoiler: Są takie same, chociaż wpływają na różne procesory. Dlatego też, chociaż zdobywają określoną kwotę w w kontekście luk w zabezpieczeniach mogą one dotyczyć różnych ilości produktów, ale nie będzie to miało wpływu na ich produkty wynik. Wyniki CVSS służą zasadniczo tylko do selekcji, ale nie opowiadają pełnej historii.
Zenbleed: 6,5 (średni)
- Wektor ataku: Lokalny
- Złożoność ataku: Niski
- Wymagane uprawnienia: Niski
- Interakcja z użytkownikiem: Nic
- Zakres: Zmieniono
- Poufność: Wysoki
- Uczciwość: Nic
- Dostępność: Nic
Wyjaśnienie: wektor ataku wymaga lokalnego dostępu do maszyny (działa na maszynie), nie mając jednocześnie wpływu na integralność danych na maszynie ani na jej dostępność. Zmienia jednak zakres (co oznacza, że wpływa na zasoby wykraczające poza uprawnienia) i złożoność ataku, a uprawnienia wymagane do wykonania są niskie. Całkowicie narusza to również poufność informacji znajdujących się na maszynie.
Upadek: 6,5 (średni)
- Wektor ataku: Lokalny
- Złożoność ataku: Niski
- Wymagane uprawnienia: Niski
- Interakcja z użytkownikiem: Nic
- Zakres: Zmieniono
- Poufność: Wysoki
- Uczciwość: Nic
- Dostępność: Nic
Wyjaśnienie: wektor ataku wymaga lokalnego dostępu do maszyny (działa na maszynie), nie mając jednocześnie wpływu na integralność danych na maszynie ani na jej dostępność. Zmienia jednak zakres (co oznacza, że wpływa na zasoby wykraczające poza uprawnienia) i złożoność ataku, a uprawnienia wymagane do wykonania są niskie. Całkowicie narusza to również poufność informacji znajdujących się na maszynie.
Początek: 5,6 (średni)
- Wektor ataku: Lokalny
- Złożoność ataku: Wysoki
- Wymagane uprawnienia: Niski
- Interakcja z użytkownikiem: Nic
- Zakres: Zmieniono
- Poufność: Wysoki
- Uczciwość: Nic
- Dostępność: Nic
Wyjaśnienie: wektor ataku wymaga lokalnego dostępu do maszyny (działa na maszynie), nie mając jednocześnie wpływu na integralność danych na maszynie ani na jej dostępność. Zmienia jednak zakres (co oznacza, że wpływa na zasoby wykraczające poza przysługujące mu uprawnienia), złożoność ataku jest wysoka, a uprawnienia wymagane do wykonania są niskie. Całkowicie narusza to również poufność informacji znajdujących się na maszynie.
Spectre: 5,6 (średni) (połatany)
Spectre, mimo że jest zjawiskiem bardziej powszechnym, faktycznie zdobywa punkty mniej niż Zenbleed i Downfall. Dzieje się tak dzięki temu, że złożoność ataku została nazwana „wysoką”, co obniżyło jej ocenę.
- Wektor ataku: Lokalny
- Złożoność ataku: Wysoki
- Wymagane uprawnienia: Niski
- Interakcja z użytkownikiem: Nic
- Zakres: Zmieniono
- Poufność: Wysoki
- Uczciwość: Nic
- Dostępność: Nic
Wyjaśnienie: wektor ataku wymaga lokalnego dostępu do maszyny (działa na maszynie), nie mając jednocześnie wpływu na integralność danych na maszynie ani na jej dostępność. Zmienia jednak zakres (co oznacza, że wpływa na zasoby wykraczające poza przysługujące mu uprawnienia), złożoność ataku jest wysoka, a uprawnienia wymagane do wykonania są niskie. Całkowicie narusza to również poufność informacji znajdujących się na maszynie.
Meltdown: 5,6 (średni) (połatany)
Podobnie jak Spectre, Meltdown osiąga niższe wyniki niż Zenbleed i Downfall ze względu na wymaganą większą złożoność ataku.
- Wektor ataku: Lokalny
- Złożoność ataku: Wysoki
- Wymagane uprawnienia: Niski
- Interakcja z użytkownikiem: Nic
- Zakres: Zmieniono
- Poufność: Wysoki
- Uczciwość: Nic
- Dostępność: Nic
Wyjaśnienie: wektor ataku wymaga lokalnego dostępu do maszyny (działa na maszynie), nie mając jednocześnie wpływu na integralność danych na maszynie ani na jej dostępność. Zmienia jednak zakres (co oznacza, że wpływa na zasoby wykraczające poza przysługujące mu uprawnienia), złożoność ataku jest wysoka, a uprawnienia wymagane do wykonania są niskie. Całkowicie narusza to również poufność informacji znajdujących się na maszynie.
Największa przyczyna: przewidywanie gałęzi
źródło: AMD
Przewidywanie rozgałęzień i wykonywanie spekulatywne ogólnie odnoszą się do sytuacji, gdy komputer wykonuje operacje, które nie są w danym momencie potrzebne, ale będą wykonywane w kolejnych cyklach. Często robi się to w czasach, gdy system ma wolne zasoby, ponieważ przyspiesza to ogólne przetwarzanie, gdy w przeciwnym razie instrukcje lub dane nie byłyby jeszcze gotowe dla procesora. Jeśli wykonana praca nie jest potrzebna, jest zazwyczaj odrzucana, a procesor może wrócić tam, gdzie jest potrzebny, aby wykonać następną poprawną instrukcję. Kiedy to nastąpi, nazywa się to błędną predykcją gałęzi.
Aby lepiej zrozumieć predyktory rozgałęzień, wyobraźmy sobie scenariusz, w którym program podczas wykonywania stale dodaje te same dwie liczby. W pewnym momencie procesor może rozpoznać ten wzorzec i przygotować kolejne kroki w przypadku ponownego wywołania metody, w której te dwie liczby są dodawane. Jeśli w pewnym momencie wynik się zmieni, nawet jeśli procesor zaplanował, że te same dwie liczby będą takie same, wówczas przypuszczenie zostanie odrzucone i zastąpione rzeczywistym przepływem wykonania. Jednak na razie te liczby Czy takie same, wówczas procesor może szybko pominąć te instrukcje.
Istnieje jednak wiele problemów, jeśli chodzi o wykonanie spekulacyjne, w wyniku których powstają luki w zabezpieczeniach, takie jak Spectre, Zenbleed, Downfall i inne. Jest to potężna funkcja, której zawdzięczamy wiele wydajności współczesnych procesorów, ale stanowi ona główny cel badaczy poszukujących luk w zabezpieczeniach procesorów.
Łagodzenie: inhibitor wydajności
Ograniczenie tych luk jest niezwykle ważne, ale problem polega na tym, że te środki często obciążają wydajność. W przypadku najnowszego Zenbleeda AMD, ograniczenie to może spowodować ogromne koszty ogólne wydajności.
Dzieje się tak dlatego, że jedynym realnym sposobem obejścia tego problemu jest wyłączenie lub zmiana zachowania predyktora rozgałęzień w procesorze, którego dotyczy problem. Ten sam spadek wydajności można znaleźć w łagodzeniu skutków upadku Intela, z wczesnymi raportami sugerującymi wpływ na wydajność do 39%. Epickie gry kiedyś powszechnie udostępniane Wykresy wykorzystania procesora po ujawnieniu luki Meltdown oraz wpływ tych środków zaradczych na wykorzystanie procesora przez firmę. Jak można było się spodziewać, nastąpił znaczny wzrost użycia procesora. Tam, gdzie sytuacja robi się przerażająca, pojawia się poprawka dla AMD Inception, Stwierdzono spadek wydajności aż o 54%.
Ponieważ tego typu luki wpływają na podstawowe funkcje procesora, tak naprawdę trudno je naprawić poza wyłączeniem lub poważnym uszkodzeniem podstawowych funkcji. Wykonanie spekulacyjne jest niezwykle ważne, a wiele osób odczuje te ograniczenia. Wydajność w grach jest mniej przewidywalna, więc jeśli głównym przeznaczeniem Twojego komputera są gry, być może tak będzie w porządku, ponieważ Twój komputer nie jest w stanie przewidzieć tylu problemów, ale problemy te nasilają się znacznie systemy.
Czy dotyczy to przyszłych procesorów?
Na szczęście zarówno w przypadku Intel Downfall, jak i Zenbleed, exploity te wpływają na starsze procesory. Nowsze procesory obu firm są bezpieczne i na razie nie ma się czym martwić. Znaczące przeprojektowanie zwykle kończy się rozwiązaniem tych problemów. Na przykład Spectre wpłynął na procesory Intela ósmej i dziewiątej generacji, ale dziewiąta generacja zawierała sprzętową wersję wdrożonych poprawek oprogramowania, w komplecie z hitem wydajnościowym. Dziesiąta generacja Intela była nadal bezpieczna, ale te środki łagodzące nie miały już wpływu na wydajność.
W rezultacie, biorąc pod uwagę, że zarówno Downfall, jak i Zenbleed zostały już naprawione w najnowszych wersjach swoich procesorów, użytkownicy nie mają się czym martwić. Oczywiście zawsze może zostać wykrytych więcej luk, ale w tym momencie jesteś bezpieczny.