Nowy atak omija sprzętowe mechanizmy obrony przed dziurą Spectre w procesorach Intel i ARM

Choć nie tak łatwy do wykorzystania, ten dowód słuszności koncepcji pokazuje, że niektóre procesory Intel i ARM są nadal podatne na ataki typu side-channel

Nowy atak omija sprzętowe mechanizmy obrony przed dziurą Spectre w procesorach Intel i ARM

Matejmo/ Getty Images

Sprzętowe środki zaradcze wprowadzone w procesorach Intela i ARM w ciągu ostatnich kilku lat w celu usunięcia poważnej dziury o nazwie Spectre nie są tak silne, jak sądzono. Naukowcy opracowali nową metodę ataku, która może pokonać mechanizmy obronne, ale jej wykorzystanie nie jest tak łatwe, jak w przypadku oryginalnej dziury.

Nowy atak, odkryty przez badaczy z Systems and Network Security Group na VU Amsterdam (VUSec), nosi nazwę Spectre-BHI (Branch History Injection) lub Spectre-BHB (Branch History Buffer), ponieważ Intel i ARM nadały mu różne nazwy. Według zespołu badawczego, jest to rozszerzenie ataku Spectre wersji 2 z 2017 roku, znanego również jako Spectre-BTI (Branch Target Injection) i podobnie jak w przypadku Spectre v2, może prowadzić do wycieku wrażliwych informacji z uprzywilejowanej przestrzeni pamięci jądra.

Zobacz również:

Stworzony przez badaczy VUSec exploit typu proof-of-concept wycieka skrót hasła roota z pliku /etc/shadow przy użyciu nieuprzywilejowanego konta. Plik /etc/shadow jest w systemie Linux plikiem systemowym, do którego dostęp ma tylko konto administracyjne root. Zasadniczo, exploit zmusza jądro do załadowania pliku do pamięci, gdzie normalnie byłby on chroniony przed dostępem nieuprzywilejowanych procesów, ale następnie wykorzystuje atak Spectre-BHI do uzyskania dostępu i wycieku jego zawartości. Jest to poważne naruszenie fundamentalnej granicy bezpieczeństwa we współczesnych systemach operacyjnych, która oddziela aplikacje trybu użytkownika i przestrzeń pamięci od uprzywilejowanej przestrzeni pamięci jądra.

Czym jest Spectre?

Spectre to klasa luk w zabezpieczeniach, ujawnionych pierwotnie w styczniu 2017 r., które wynikają z funkcji wydajnościowej nowoczesnych procesorów zwanej wykonywaniem spekulacyjnym, w której procesor stara się z wyprzedzeniem przewidzieć, jaką ścieżkę wybierze program po osiągnięciu rozgałęzienia warunkowego i z wyprzedzeniem wykonać instrukcje na tej ścieżce. Jeśli przewidywania, oparte na wewnętrznych algorytmach, okażą się złe, wyniki przechowywane w tymczasowej pamięci podręcznej procesora są odrzucane. Ataki typu Speculative execution, takie jak Spectre i wiele innych, które nastąpiły później, wykorzystują ten mechanizm do wycieku informacji z tymczasowych pamięci podręcznych, które działają jak kanały boczne.

„W czasach, gdy odkryto Spectre, można było łatwo wykorzystać Branch Target Injection (BTI lub Spectre-v2), najgroźniejszy wariant Spectre, na wszystkich poziomach uprawnień”- wyjaśniają badacze VUSec. „Na przykład, nieuprzywilejowany atakujący z userlandu może podać dowolny cel rozgałęzienia do pośredniego predyktora rozgałęzień z userlandu i zmusić jądro do spekulacyjnego przeskoczenia do wstrzykniętego miejsca docelowego kodu i wykonania znalezionego tam kodu”.

Aby zmniejszyć ryzyko, producenci oprogramowania, tacy jak Google, oraz twórcy jądra Linuksa opracowali rozwiązania programowe, takie jak retpoline. Mimo że były one skuteczne, powodowały znaczny spadek wydajności, więc producenci procesorów opracowali później zabezpieczenia sprzętowe. Rozwiązanie firmy Intel nosi nazwę EIBRS, a ARM - CSV2.

„Rozwiązania te są złożone - oryginalny artykuł naukowy dostępny jest pod tym linkiem - ale ich istotą jest to, że predyktor 'w jakiś sposób' śledzi poziom uprawnień (użytkownika/jądra), na którym wykonywany jest cel” - wyjaśniają badacze VUSec. "I jak można się spodziewać, jeśli cel należy do niższego poziomu przywilejów, jądro nie będzie z niego korzystać (tzn. nie będzie już arbitralnych lokalizacji kodu dostarczonych przez atakującego, do których można spekulacyjnie porwać przepływ sterowania jądra)”.

Problem polega jednak na tym, że predyktor procesora opiera się na globalnej historii, aby wybrać wpisy docelowe do spekulacyjnego wykonania, a jak udowodnili badacze VUSec, ta globalna historia może zostać zatruta. Innymi słowy, podczas gdy oryginalny Spectre v2 pozwalał atakującym na faktyczne wstrzyknięcie lokalizacji kodu docelowego, a następnie podstępne wykonanie tego kodu przez jądro, nowy atak Spectre-BHI/BHB może jedynie zmusić jądro do błędnego przewidzenia i wykonania interesujących gadżetów lub fragmentów kodu, które już istnieją w historii i były wykonywane w przeszłości, ale które mogą spowodować wyciek danych.

„Czy Intel eIBRS i Arm CSV2 są uszkodzone? Tak jakby. Oznacza to, że zabezpieczenia działają zgodnie z założeniami, ale pozostała powierzchnia ataku jest znacznie bardziej znacząca, niż pierwotnie zakładali producenci. [...] Niemniej jednak, znalezienie gadżetów, które można wykorzystać jest trudniejsze niż wcześniej, ponieważ atakujący nie może bezpośrednio wstrzyknąć celów predyktora przez granice uprawnień” - stwierdzili analitycy.

Łagodzenie nowego błędu Spectre-BHI

Intel oznaczył nową lukę Spectre-BHI jako CVE-2022-0001 dla wariantu z krzyżowymi uprawnieniami i CVE-2022-0002 dla wariantu z tymi samymi uprawnieniami. Firma ARM opisuje ją jako CVE- 2022-23960 dla obu wariantów.

Według Intela, problem dotyczy większości procesorów firmy, z wyjątkiem tych z rodziny Atom. W przypadku ARM, podatne procesory to Cortex-A15, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75, Cortex-A76, Cortex-A76AE, Cortex-A77, Cortex-A78, Cortex-A78AE, Cortex-A78C, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2 i Neoverse V1.

Obie firmy wydały zalecenia i na razie udostępniają programowe środki zaradcze. ARM ma pięć różnych rozwiązań łagodzących w zależności od systemu.

W swoim exploicie dla Linuksa badacze VUSec wykorzystali eBPF, technologię dostępną od wersji 4.4 jądra, która umożliwia uruchamianie programów w piaskownicy w jądrze systemu operacyjnego. Chociaż eBPF nie jest częścią podstawowego problemu i można znaleźć inne gadżety kodu, które mogą powodować wyciek danych, obecność nieuprzywilejowanego eBPF „ogromnie ułatwia spekulacyjne wykonywanie (i inne) ataki” - twierdzą badacze. Z tego powodu zalecają oni wyłączenie go, a niektóre dystrybucje Linuksa zaczęły wyłączać go domyślnie.

Źródło: CSO

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200