Czyżbyśmy byli świadkami kolejnego „strzału w kolano” producenta procesorów z Santa Clara? Jakie mogą być skutki, również globalne? I czy błąd dotyczy każdego z nas?
Został odkryty nowy błąd w procesorach Intela w architekturze x86-64 oraz być może w procesorach ARM, choć to nie jest jeszcze pewne. Błąd ten powoduje, że możliwy jest wyciek informacji zawartych w pamięci jądra systemu (ang. kernel). Jest to problem typowo sprzętowy, z tego powodu nie może być naprawiony za pomocą nowego mikrokodu procesora a dodatkowo dotyczy praktycznie każdego systemu operacyjnego. Taki błąd stanowi nie tylko zagrożenie dla przeciętnego użytkownika umożliwiając łatwe zdobycie danych, w tym haseł np. do konta bankowego ale przede wszystkim dla Google’a, Amazona czy Microsoftu i innych firm, które oferują swoje usługi w chmurze. Warto wiedzieć, że Amazon będzie resetował swoją „chmurę” w piątek, Microsoft zrobi to 10 stycznia. Oprócz tego przygotowywana jest aktualizacja Windowsa a odpowiednie patche do Linuxa są już dostępne. Skoro jesteśmy przy systemach operacyjnyc to trzeba zaznaczyć, że jedynym sposobem na załatanie są odpowiednie łatki do nich. Ma to jednak swoje efekty uboczne. Mowa oczywiście o stracie wydajności, która wacha się wartościami graniczącymi z błędem pomiarowym a nawet 50%! Rozbieżność jest duża i zależy od zastosowania. Więcej można dowiedzieć np. tutaj jednak z ostateczną oceną radziłbym wstrzymać się do momentu pojawienia się większej ilości testów. Mówi się też, że problem dotyczy procesorów Intela ostatniej dekady. Tutaj jednak pojawia się pytanie – chodzi o ostatnie 10 lat czy może po prostu o drugą dekadę XXI wieku (lata 2011 do 2020)? Ta mała nieścisłość oznacza, że nie wiadomo czy narażone są nawet procesory Core 2 czy może „tylko” te zbudowane w architekturze Sandy Bridge i nowszych. Warto wspomnieć, że problem nie dotyczy procesorów AMD Ryzen i być może również starszych procesorów tego producenta (tego nie udało mi się potwierdzić).
Niektóre źródła podają, że powodem zamieszania jest sposób sprzętowej implementacji spekulatywnego wykonywania rozkazów (z ang. speculative execution). Niejako potwierdzeniem tego może być stanowisko Tomasa Lendacky’iego, programisty AMD:
W wolnym tłumaczeniu brzmiałoby to mniej więcej tak:
„Procesory AMD nie są zagrożone atakami, przed którymi chroni KPTI. Mikroarchitektura AMD nie pozwala na odwołania do pamięci, włączając w to spekulatywne odwołania uzyskujące dostęp do danych o wyższym priorytecie gdy same pracują w mniej uprzywilejowanym trybie kiedy dostęp taki spowodowałby błąd”.
Kluczowe wydaje się tutaj właśnie sforumowanie dotyczące spekulatywych odwołań do pamięci. Kolejnym potwierdzeniem może być choćby ten artykuł.
Efektem całego zajścia jest spadek wartości akcji Intela oraz wzrost AMD:
Jest to kolejny „fail” Intela w ciągu ostatnich kilkunastu miesięcy. Zaczynając od niezbyt udanej w oczach wielu ludzi platformy X299, kontynuując przez premierę Kaby Lake X czy „papierową” premierę Coffee Lake’ów a kończąc na wcześniejszych problemach związanych z zabezpieczeniami a dokładniej firmwarem procesorów Skylake, Kaby Lake oraz Kaby Lake R. Czy to początek końca przewagi Intela na rynku?