Błąd w architekturze procesorów Intel, poprawka powoduje znaczny spadek wydajności

3 stycznia 2018, 19:47
Fot. Smial (talk)/Wikipedia Commons/Domena publiczna
Reklama

Błąd w architekturze procesorów Intel spowodował konieczność przeprojektowania jądra popularnych systemów używających tych procesorów. Błąd doprowadził do bardzo groźnego wycieku informacji z pamięci (ang. memory leaking), który obok innych problemów może generować luki bezpieczeństwa.

Programiści zajmujący się jądrem Linux pracują obecnie nad przeprojektowaniem systemu pamięci wirtualnej jądra, Microsoft również zapowiedział poprawki dla systemów linii Windows. Niestety, obejście pewnych źle zaimplementowanych w warstwie sprzętowej funkcji, powoduje spadek wydajności, który wedle doniesień może sięgać między 5 a nawet 30 %, w zależności od typu zadania obliczeniowego i typu zastosowanego procesora. Test przeprowadzony na bazie danych PostgreSQL spowodował spadek wydajności między 17 a 23%.

Błąd dotyczy wszystkich systemów pracujących na procesorach Intel, a więc również systemu macOS używanego na komputerach firmy Apple. Obecnie nie są znane szczegóły problemu oraz dokładnie określone procesory, których dotyczy problem, jest to spowodowane embargiem na informacje do czasu wprowadzenia rozwiązań problemu przez producentów najpopularniejszych systemów.

Wiadomo jednak że błąd może pozwalać dowolnemu oprogramowaniu (od silnika bazy danych do prostego skryptu JavaScript uruchamianego w przeglądarce) na dostęp do struktury lub zawartości chronionych obszarów pamięci jądra systemu. Obszar chronionej pamięci jądra może być używany do przechowywania różnego rodzaju danych, do których nie powinny mieć dostępu procesy użytkownika, np. haseł czy kluczy szyfrowania. W najlepszym przypadku podatność może mieć ograniczone skutki i spowodować problemy tylko w wypadku ataku wykorzystującego zespół podatności, to zaś może zawężać grupę docelową atakowanych. W najgorszym wypadku czynność tak prozaiczna jak wejście na stronę internetową może doprowadzić do utraty  chronionych informacji.

Czytaj więcej: Atak USB na procesory z Intel Management Engine

Problem ma być rozwiązany poprzez całkowite odizolowanie pamięci jądra od obszaru użytkownika, to jednak wpłynie na szybkość przełączania pomiędzy trybem jądra i trybem użytkownika. Ma do tego służyć metoda FUCKWIT (ang. Forcefully Unmap Complete Kernel With Interrupt Trampolines), opracowana przez zespół programistów jądra Linux (występuje również mniej odważna nazwa Kernel Page Table Isolation). Spadek wydajności spowodowany nowym sposobem zarządzania pamięcią jądra może w bardzo znaczny sposób obniżyć realną wydajność systemów. Co ciekawe, poprawki trafią również do jądra Linux dla procesorów ARM, a więc docelowo również do działających na tym jądrze telefonów i tabletów z systemem Android.

Problem ma dotyczyć procesorów wyprodukowanych przez ostatnią dekadę, nie dotyczy zaś procesorów produkcji konkurencyjnego Advanced Micro Devices, Inc (AMD). Komunikat AMD może zdradzać potencjalne źródło problemów. „Procesory AMD nie są podatne na typy ataków przed jakim chroni izolacja tablicy jądra. Mikroarchitektura AMD nie zezwala na odniesienia do pamięci w tym na spekulacyjne odniesienia do pamięci wyższego rzędu”.

Procesory Intel starają się „zgadnąć” następne polecenie co w przypadku sukcesu powoduje przyspieszenie wykonywania instrukcji. Przypuszcza się, że „spekulacyjny” kod nie jest poddawany testom bezpieczeństwa takim jak normalne instrukcje w wyniku czego może np. uzyskać dostęp do chronionego obszaru pamięci jądra. Podatność taką można wykorzystać kierując na procesor szereg spreparowanych instrukcji których celem jest wywołanie w odpowiedniej „spekulacyjnej” instrukcji, która nie została by wykonana w sposób bezpośredni.

Problem może spowodować duże kłopoty dla dostawców rozwiązań „chmury” takich jak Amazon czy Microsoft realnie zmniejszając wydajność ich serwerów. Więcej informacji o podatności można się spodziewać po zdjęciu embarga.

KomentarzeLiczba komentarzy: 5
Anuluj
JKK
wtorek, 9 stycznia 2018, 08:23

Blad albo nie blad. Oto jest pytanie

Haydfeld
czwartek, 4 stycznia 2018, 12:27

Że niby luka w dodatku przypadkowa? :D

Józef
czwartek, 4 stycznia 2018, 12:25

To nie jest błąd, to jest "feature" na rzecz trzyliterowych amerykańskich agencji. Przypominam, że za Clintona zniesiono zakaz eksportu technologii informatycznych z kluczami większymi niż 56 bitów, ale jednocześnie wprowadzono wymóg, że ("dla dobra użytkownika" oczywiście) ma być możliwość "odzysku zgubionego hasła". To jest w prawie USA, więc należało się tego spodziewać. Zrobiła się draka, bo pewnie odkryto, że nie tylko amerykańskie trzyliterowe organizacje zaczęły z tego korzystać, ale i rosyjskie oraz chińskie... Ktoś się jeszcze śmieje z Rosjan, że do rządowych PCetów produkują swoje procesory, mimo że są 8x droższe od Inteli i o 1/3 wolniejsze?

Levi
środa, 3 stycznia 2018, 22:41

OK, o bledzie ze spekulatywnymi skokami wiadomo od dawna ale ich uzycie jakos nie stalo sie powszechne. Czy poprawiono tez 'RowBangery' (choczby przez poprawke w Purge)? A moze poprawiono cos innego, fajniejszego - na przyklad ten procesor co to go nie ma ale dziala? Bo akurat exploit na to hula swobodnie i nikt nic z tym nie robi...

Adam
środa, 3 stycznia 2018, 20:18

Przy czym łatka zmniejsza wydajność również procesorów AMD, choć nie mają wspomnianej luki. Luka dotyczy też procesorów ARM takich jak Qualcomm Snapdragon, Samsung Exynos, Huawei Kirin.