Poważny błąd w CPU Intela. Wymiana procesora lub mocne spowolnienie?

W architekturze procesorów Intela oraz ARM odkryto błąd. Umożliwia on wyciek informacji przechowywanych w pamięci jądra. I chociaż nie ma jeszcze zanotowanych ataków z użyciem tej luki, łatwo się spodziewać, że to tylko kwestia czasu.

Konsekwencje odkrycia błędu w procesorach Intela i ARM są dość poważne. Z odkrytą dziurą w zabezpieczeniach można poradzić sobie tylko na dwa sposoby. Albo wymienić CPU, albo zainstalować specjalną łatkę, która jednocześnie zmniejszy wydajność procesora. W niektórych przypadkach może to być ograniczenie dość dramatyczne. Nawet powyżej 50%. Najsilniej odczują to użytkownicy korzystający z maszyn wirtualnych.

Ponieważ problem dotyczy procesorów Intel X86-64 zagrożone są nie tylko domowe pecety i laptopy, ale też chmury obliczeniowe Google Compute Engine, Microsoft Azure czy Amazon EC2. Co gorsze, problem jest na poziomie procesora, a więc niezależnie od systemu operacyjnego jesteśmy narażeni na atak. Wyjątkiem jest sytuacja, gdy w waszym komputerze działa układ AMD, w których to CPU problem ten nie występuje.

Geneza odkrycia luki sięga lata 2017 roku. Wtedy grupa badaczy pokazała jak omijać ASLR (Address Space Layout Randomization), czyli technologię polegającą na losowej lokalizacji adresowania kodu systemowego. Jako uzupełnienie powstał też artykuł nt. odczytywania pamięci jądra CPU z poziomu użytkownika.

Problem nie jest więc nowy. Według części analityków Intel od jakiegoś czasu dyskretnie próbuje go zniwelować. Świadczą o tym przede wszystkim szybkie zmiany w ostatnim czasie w jądrze Linuksa. Dość niezwyczajne jest także i to, że zmiany te są aplikowane również do starszych wersji systemu.

Core i3. i5 oraz i7, ale też Xeony, Pentiumy, Celerony, a nawet Atomy. Zagrożenie jest dość szerokie i dotyczy wszystkich tych CPU (fot. Intel)

Poprawka na systemy Windows ma pojawić się na dniach. Gigant z Redmond pracuje nad nimi, według części doniesień, aż od listopada 2017 roku.

Błędy w architekturze i zabezpieczeniach zdarzały się w przeszłości i będą zdarzały nadal. Rzecz w tym, że w opisywanym przypadku wdrożenie rozwiązania (łatki) skutkuje dość pokaźnym spadkiem wydajności. Według testu autorstwa grsecurity przeprowadzonym z użyciem linuksowej łatki i procesora Intel Core i7-6700 możemy utracić nawet 63% mocy obliczeniowej CPU. Według testów przeprowadzonych przez Phoronix z użyciem i7-8700K spadek może sięgać 30%. Jeśli poprawka dla Windows będzie równie „kosztowna” to zapowiada się początek roku pełen pozwów.

Tak znaczące różnice mogą oznacza, że w niektórych zastosowaniach procesory po prostu przestaną wypełniać swoją rolę równie dobrze co wcześniej (fot. Phoronix)

Skąd tak pokaźny spadek wydajności? Patch przesuwa cały kod jądra na osobny, odseparowany zakres adresów pamięci. Każde wywołanie funkcji jądra oznacza konieczność przełączenia się między zakresami: „użytkownika” i „kernelowym”. A to niestety nie jest proces natychmiastowy. Wymusza bowiem na procesorze zrzut pamięci. Łatka dla Windows prawdopodobnie będzie działała na tej samej zasadzie.

Czy użytkownicy AMD są bezpieczni? Tak. Czyli spowolnienie wywołane łatką ich nie dotknie? No cóż… byłoby zbyt dobrze. AMD dostanie rykoszetem, bo chociaż procesory tego producenta nie zawierają opisanego wyżej błędu, to łatka (przynajmniej jej linuksowa wersja) wpływa negatywnie również na wydajność procesorów pozbawionych opisywanej luki.

Co pozostaje użytkownikom? Czy Intel zamierza jakoś zrekompensować użytkownikom straty w wydajności? Zapytaliśmy polski oddział kalifornijskiego giganta o opinię w sprawie. Kiedy ją otrzymamy, z pewnością dowiecie się pierwsi.

Na koniec: ciekawostka. CEO Intela, Brian Krzanich pod koniec roku ograniczył swoje prywatne udziały w firmie sprzedając większość posiadanych akcji.

[aktualizacja] Intel wydał oświadczenie w tej sprawie | CHIP