Plundervolt, czyli kolejna "niespodzianka" u Intela. Podpowiem: nie chodzi o nowy sprzęt
Tak, dobrze się domyślacie. Chodzi oczywiście o kolejną lukę sprzętową wykrytą w procesorach marki Intel. Tym razem jednak sprawa jest jeszcze mniej groźna dla użytkownika niż zazwyczaj, ale za to znacznie bardziej interesująca od strony technicznej, żeby nie powiedzieć fascynująca. Atak wynika bowiem częściowo z cech samego modelu programowego x86.
11.12.2019 | aktual.: 11.12.2019 14:14
Ręka w górę, kto nie słyszał o rozszerzeniach Software Guard (SGX); technice pozwalającej układom Intel Core na stworzenie bezpiecznej enklawy w pamięci, gdzie przechowywane są chociażby klucze kryptograficzne. Choć producent oficjalnie utrzymuje, że tylko rozwiązanie Intel® SGX zapewnia tak szczegółowy poziom kontroli i ochrony, nie od dziś wiadomo, że izolację przełamać można. Czy to manipulując przewidywaniem rozgałęzień czy analizując wzorce bitowe pamięci L1.
Najnowsze odkrycie, opisane wspólnie przez naukowców z uniwersytetów w Birmingham, Leuven i Grazu, rzuca jednak na łamanie SGX nowe światło. Jak się okazuje, można tego dokonać w sposób znacznie bardziej prostacki od uderzania w złożony przecież predyktor.
Współczesne procesory x86 zawierają tzw. rejestry MSR (Model Specific Registers). Są to takie rejestry, zazwyczaj 64-bitowe, które pozwalają na sterowanie specyficznymi funkcjami czipu. W przypadku Intel Core odpowiadają chociażby za przekazanie programom trybu użytkownika kontroli nad napięciem zasilającym, dzięki czemu dostępne jest regulowanie tego parametru z poziomu systemu operacyjnego, ale też lepsze skalowanie zegara do konkretnych aplikacji.
Hakerski undervolting
Wydawałoby się, że przekazanie systemowi kontroli nad napięciem nie ma prawa nikomu zagrozić. Bo co można w takim przypadku zepsuć? Jeśli nawet ktoś ustawi jakąś kosmicznie wysoką wartość, to zabezpieczenie przeciwprzepięciowe odetnie zasilanie i komputer po prostu się wyłączy. Zresztą, tak samo jak w momencie, gdy prąd będzie zbyt niski. Ale czy zastanawialiście się kiedyś, co dzieje się z procesorem w momencie, gdy znajduje się on na granicy stabilności? Mam tu na myśli sytuację, w której woltaż jest dostatecznie wysoki, aby utrzymać jednostkę, ale nie pozwala jej uzyskać pełni stabilności. Gołym okiem można tego nawet nie dostrzec.
Plundervolt- Faulting AES inside SGX
Tymczasem, czego obrazowy przykład stanowi atak metodą Plundervolt, CVE-2019-11157, zbyt niskie napięcie zasilające prowadzi do błędów w obliczeniach w obrębie enklawy SGX. A to z kolei zaproszenie do analizy różnicowej i ataku z tekstem jawnym, kończących się ujawnieniem kluczy prywatnych. Na powyższym wideo możecie zobaczyć jak pęka 128-bitowy AES, po zbiciu napięcia o 240 mV, przy zaskakująco niskiej złożoności 2^32 + 256 szyfrowań, średnio.
Zagrożenie? Nie przesadzajmy
Zanim jednak ktokolwiek zabetonuje swojego intela w żelbetowym sarkofagu, trzeba powiedzieć jedno: dla użytkowników domowych ataki na SGX oznaczają niewiele. No może poza tym, że fani tej drugiej firmy mogą sobie urządzić figloraj na forum. Ale bądźmy rzetelni.
SGX stosowane jest głównie w systemach chmurowych, aby odseparować poszczególne maszyny wirtualne i uruchamiane na nich programy od siebie nawzajem. To na wypadek, gdyby jeden z użytkowników, wiedziony ułańską fantazją, postanowił pokraść nieco danych z innych procesów. Na rynku konsumenckim SGX pojawiło się dopiero wraz z późniejszymi rewizjami Core 6. generacji. Przy czym Intel sugerował OEM-om i producentom płyt, aby domyślnie pozostawało wyłączone. Stawiam dolary przeciwko orzechom, że jeśli nie grzebiesz zbytnio w UEFI, to na 99 proc. rozszerzenie jest nieaktywne, a co za tym idzie nie stanowi jakiegokolwiek wektora ataku.
Natomiast dla wykorzystywanych w serwerach czipów Xeon E 10 grudnia wydano łatkę do mikrokodu, która blokuje sterowanie napięciem z poziomu instrukcji MSR. Można się rozejść.