Reklama

Strona główna

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

Fot. Smial (talk)/Wikipedia Commons/Domena publiczna
Fot. Smial (talk)/Wikipedia Commons/Domena publiczna

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.

Reklama
Reklama

Komentarze