Arm wprowadził funkcję zabezpieczeń sprzętowych o nazwie Memory Tagging Extensions (MTE) w 2018 r. Teraz wiemy, że może ona nie spełniać obietnic.
MTE działa poprzez tagowanie 16-bajtowych bloków fizycznej pamięci 4-bitowymi kluczami metadanych. W praktyce wygląda to tak, że kiedy program uzyskuje dostęp do danych w oznakowanym bloku za pomocą wskaźnika, sprzęt sprawdza, czy wskaźnik zawiera odpowiadający klucz dla tego bloku pamięci. Brak takiego klucza generuje błąd (i blokadę), potencjalnie wykrywając próby dostępu do zabronionych obszarów pamięci.
Technologia była promowana jako obrona przed powszechnymi błędami pamięci w C/C++, takimi jak przepełnienia bufora i używanie pamięci po zwolnieniu, które mogłyby prowadzić do przejęcia systemu i danych. Arm miał nadzieję, że MTE pomoże developerom wykrywać te błędy podczas testowania i zatrzymywać ataki w czasie rzeczywistym.
Zobacz również:
Badacze mają skuteczne obejście
Badacze z Narodowego Uniwersytetu w Seulu, Samsunga i Georgia Tech wykazali, że MTE można obejść w około 95% przypadków w mniej niż cztery sekundy, używając tzw. ataków spekulacyjnych.
Ich artykuł, “TikTag: Breaking Arm’s Memory Tagging Extension with Speculative Execution,” opisuje dwie techniki, nazwane TIKTAG-v1 i TIKTAG-v2, które mogą wyodrębniać tagi MTE dla dowolnych adresów pamięci, obserwując przy tym, jak operacje spekulacyjne wpływają na wstępne pobieranie danych.
Spekulacyjne wykonanie to technika optymalizacji, w której procesory wykonują niektóre operacje z wyprzedzeniem i odrzucają wyniki, jeśli te nie są potrzebne. Jednak spekulacyjny dostęp do danych może pozostawić kanały boczne przez pewien czas, tworząc okno, przez które wyciekają informacje.
Badacze byli w stanie pomyślnie wyodrębnić tagi MTE z Chrome na Androidzie i jądra Linuksa z ponad 95-procentowym powodzeniem w mniej niż cztery sekundy.
Warto zauważyć, że wyodrębnione tagi niekoniecznie umożliwiają bezpośrednie wykorzystanie. Wrażliwe dane, takie jak hasła i klucze szyfrowania, nie są bezpośrednio ujawniane. Jednak pozwalają atakującym na podważenie zabezpieczeń MTE, czyniąc je mniej skutecznymi przeciwko bardziej zaawansowanym atakom.
Specjaliści zaproponowali wiele rozwiązań tych podatności, takich jak modyfikacja sprzętu w celu zapobiegania wyciekom stanów pamięci podręcznej przez ataki spekulacyjne, wstawianie instrukcji bariery spekulacyjnej, dodawanie instrukcji paddingu i zwiększenie sandboxingu w celu ograniczenia spekulacyjnego dostępu. Odkrycia zostały też zgłoszone firmie Arm, która… uznała problem, ale nie uważała go za “decydujący”.
Mniej więcej w tym samym czasie zespół Chrome Google’a zdecydował się nie uwzględniać sugerowanych przez badaczy środków zaradczych, argumentując, że silnik V8 Chrome nie jest przeznaczony do gwarantowania poufności tagów MTE. Jednocześnie zespół bezpieczeństwa ds. Androida przyznał nagrodę za wykrycie błędu po potwierdzeniu problemu i rozwiązaniu go w serii telefonów Pixel 8.
Zgłoś naruszenie/Błąd
Oryginalne źródło ZOBACZ
Dodaj kanał RSS
Musisz być zalogowanym aby zaproponować nowy kanal RSS