Czas przejść na AMD? Błąd w procesorach Intela spowolni komputery o 30%

Czas przejść na AMD? Błąd w procesorach Intela spowolni komputery o 30%03.01.2018 12:18

Pod koniec 2017 roku w grupach dyskusyjnych poświęconychbezpieczeństwu mówiło się o jakimś poważnym błędzie wpopularnych hiperwizorach, związanym z nieuprawnionym dostępem dopamięci. Wszystko wskazuje na to, że to nie jest żaden poważnybłąd w hiperwizorach. Mamy do czynienia z jedną z najgorszychkatastrof w historii IT, sprzętowym błędem w procesorach Intela, amożliwe że i innych. Spodziewajcie się, że już niebawem Waszekomputery będą pracowały znacznie wolniej – taka jest bowiemcena software’owej łatki, przygotowanej dla Linuksa i Windowsa.

Najprawdopodobniej wszystkie systemy operacyjne będą musiałyprzebudować trochę architekturę swoich podsystemów zarządzaniapamięcią. Szczegóły wciąż pozostają tajemnicą. Microsoftoczywiście nic nie powiedział, jedynie po cichu wprowadził poważnezmiany w Windows 10 build 17035, które trafią zapewne w kolejny drugi wtorek miesiąca do wszystkich systemów Windows. Można jednak sporo się odwiedziećz udostępnionych łatekdla Linuksa – z których co ciekawe usunięto komentarze, by nieułatwiać życia czarnym kapeluszom. Embargo na informację wciążobowiązuje.

Coś jednak wyciekło. Wygląda na to, że procesy działające wprzestrzeni użytkownika, na dobrą sprawę może to być kod wJavaScripcie uruchamiany w przeglądarce, mogą w jakiś sposóbodkryć układ i zawartość chronionych obszarów pamięci kernela.Następuje to zapewne w trakcie przełączania między kernelem auserlandem, gdy zachodzi potrzeba przeprowadzenia jakichśsystemowych operacji, np. dostępu do gniazdka sieciowego czyzapisania czegoś na dysku. I nie ma znaczenia, czy chodzi tu oLinuksa, czy o Windows, FreeBSD, macOS-a czy jakikolwiek inny system.Problem tkwić ma w samej mikroarchitekturze procesorów x86 Intela.

Niewidzialna obecność kernela

Jako że współczesne aplikacje nieustannie robią coś„systemowego”, to przełączanie się takie zostało w dalekisposób zoptymalizowane: kernel jest nieustannie obecny w przestrzeniadresowej wirtualnej pamięci procesów użytkownika. Program robiwywołanie przez API kernela, procesor przełącza się wówczas wtryb kernela, kernel robi swoje, procesor przełącza się w trybużytkownika i wraca do procesu. Oczywiście zawartość pamięcikernela pozostaje dla programów użytkownika niewidoczna.

Jeśli w jakiś sposób proces użytkownika uzyskałby wgląd wto, co dzieje się w kernelu, uzyskałby w ten sposób do wszelkiegorodzaju chronionych danych, na czele z hasłami czy kluczamiszyfrującymi. A jeśli wskutek jakiegoś błędu uzyskuje? 20grudnia LWN.net opublikował dla swoich abonentów artykułpoświęcony obecnemu stanowi prac nad izolacją tablicy stronpamięci kernela. Ta nowa technika utwardzenia systemu, znanawcześniej jako KAISER, a obecnie KPTI (Kernel Page-Table Isolation),jest wprowadzana do Linuksa 4.15 i zostanie przeniesiona do Linuksa4.14.1. Linuksowi hakerzy mają jednak na nią znacznie brzydsząnazwę: Forcefully Unmap Complete Kernel With Interrupt Trampolines(FUCKWIT).

Nic dziwnego, że tak brzydko. KPTI/FUCKWIT przenosi kernel wcałkowicie oddzielną przestrzeń adresową, tak że nie tylko jeston niewidoczny dla procesu, kernela w ogóle tam nie ma. Oznacza to,że system nieustannie musi się przełączać między dwomaizolowanymi przestrzeniami adresowymi na każde wywołanie systemowe,na każde przerwanie. A przecież takie przełączanie nie jest zadarmo, zmusza do nieustannego żonglowania zawartością buforów iprzeładowywania danych z pamięci. Efekt – narzut kernela na pracęsystemu znacząco wzrasta, spowalniając komputer.

Cena za zastosowanie KPTI jest jednak okropna. Z pierwszychbenchmarków wynika, że może dojść do zmniejszenia wydajnościprocesora o nawet 30% – najgorzej będzie chyba w wypadku aplikacjiwykonujących wiele operacji dyskowych i sieciowych.

Najwyraźniej nie ma jednak innego wyjścia. Z ujawnionych dotądinformacji wynika, że sprzętowy błąd w procesorach Intela mógłbypozwolić na odczytanie pamięci pokonanie mechanizmu randomizacjiprzestrzeni adresowej kernela (KASLR). Używany jest on do tego, byrozmieścić komponenty kernela w losowo wybranych obszarach pamięciwirtualnej, ogromnie utrudniając exploity, w szczególności te,które obchodzą zakaz uruchamiania kodu konstruując w technice ROPz obecnych w pamięci gadżetów swój własny kod. Możliwośćobejścia KASLR oznacza, że ataki ROP staną się daleko łatwiejsze– malware będzie mogło po prostu odczytać, gdzie są potrzebnemu gadżety i uruchomić kod z uprawnieniami kernela. Innymi słowykod działający w obszarze Ring-3 nagle zyska dostęp do samegordzenia systemu, działającego w Ring-0.

Intel nawalił, a co z AMD?

Czy użytkownicy procesorów AMD mogą czuć się bezpiecznie?Niepokój wzbudził wpisna Twitterze jednego z inżynierów pracujących nad zestawem łatekgrsecurity. Napisał on, że po zastosowaniu KPTI, wydajność nowegoprocesora AMD EPYC 7601 podczas benchmarku du -s spadła o 49%.Jeszcze gorzej niż z Intelem?

Najwyraźniej tak, tyle że AMD tych łatek w ogóle niepotrzebuje. Pod koniec grudnia Tom Lendacky z AMD wyjaśniłna liście dyskusyjnej deweloperów linuksowego kernela, żeprocesory AMD nie są podatne na ataki, przed którymi ma chronićizolacja tablicy stron pamięci kernela. Ich mikroarchitektura niepozwala na odniesienia pamięci, w tym spekulatywne odniesienia, dowyżej uprzywilejowanych danych działając w mniej uprzywyilejowanymtrybie. Dlatego na czipach AMD należy wyłączyć flagęX86_BUG_CPU_INSECURE.

Spekulatywne odniesienia? O co tu chodzi? No cóż, współczesnerdzenie procesorów, aby osiągnąć najwyższą wydajność, próbujązgadywać kod, który będzie uruchamiany w następnej kolejności. Ztego co pisze Lendacky, procesory Intela mogłyby właśnie w takispekulatywny sposób uruchamiać kod, bez właściwych testówbezpieczeństwa. Exploit mógłby więc polegać na rozpoczęciuinstrukcji, która byłaby normalnie zablokowana przez kernel iukończeniu jej zanim zostanie przeprowadzone sprawdzenie uprawnień. Zapraszamy do interesującego artykułu w tym temacie autorstwa Andersa Fogha.

Wygląda więc na to, że procesory AMD nie zostaną spowolnione.Łatka jest aktywowana tylko wtedy, gdy procesor zostaje uznany zaniebezpieczny, podobnie jak w wypadku błędu Pentium F00F sprzed 20lat.

Kto ucierpi?

Już dzisiaj widać, że sprzętowy błąd będzie miał ogromnekonsekwencje – i to nie tylko na naszych pecetach. Dostawcy chmur takich jak Amazon EC2, Microsoft Azureczy Google Compute Engine rozsyłają powiadomienia o rychłychprzerwach w pracy, związanych z koniecznością aktualizacji. Wnajgorszym razie oznacza to, że software’owa poprawka znaczącospowolni obciążenia robocze. Czy klienci dostaną zwrot pieniędzy?

To jednak nie wszystko. Wygląda na to, że łatkiKAISER/KPTI/FUCKWIT trafićmają do kompilacji Linuksa na 64-bitowe procesory ARM,wykorzystywane przecież we wszystkich współczesnych smartfonach.Czyżby i tam było coś nie tak z mikroarchitekturą? Spodziewajmysię więc też spowolnienia smartfonów.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.