GoFetch – Luka w zabezpieczeniach Apple Silicon (M-Chip), której nie można zamknąć

Naukowe badanie Apple Silicon – w szczególności wersji M1, M2 i M3 – wykazało, że ma on lukę w zabezpieczeniach, której nie można łatwo zamknąć. Możliwość odczytu kluczy bezpieczeństwa lub zaszyfrowanych danych, zwana „GoFetch”, wynika ze struktury sprzętowej chipów. Ponieważ pewne dane są ładowane do pamięci wstępnej, tak zwanej pamięci podręcznej, w celu zapewnienia lepszej wydajności i są już przypisane do klastrów procesorów przewidzianych do wykorzystania w przyszłości, oprogramowanie hakerskie działające w tym samym klastrze może uzyskać dostęp do pewnych danych; również na kluczach bezpieczeństwa. I to pomimo tego, że nie ma ona uprawnień administratora, a raczej proste uprawnienia użytkownika.

Ze względu na lukę GoFetch w Apple Silicon klucze bezpieczeństwa z rdzeni wydajnościowych chipa M mogą zostać złamane. Hasła i zaszyfrowane dane nie są już wówczas bezpieczne.
Ze względu na lukę GoFetch w Apple Silicon klucze bezpieczeństwa z rdzeni wydajnościowych chipa M mogą zostać złamane. Hasła i zaszyfrowane dane nie są już wówczas bezpieczne.

Luka w zabezpieczeniach Apple Silicon GoFetch

GoFetch opiera się na fakcie, że w rdzeniach wydajnościowych jednostek CPU układu M-chip stosowane są tak zwane prefetchery zależne od pamięci danych (DMP). Ten rodzaj akceleracji sprzętowej procesów programowych określa adresy ich pamięci przed wykorzystaniem określonych danych załadowanych do pamięci podręcznej procesora. To następnie skraca czas dostępu do tych danych, co przyspiesza ogólne korzystanie z komputera Mac. Jednak złośliwe oprogramowanie zaprojektowane z myślą o tym podejściu może natychmiast zainterweniować i odczytać określone dane.

Mówi, jak wykorzystać lukę na dedykowanej stronie internetowej (w wolnym tłumaczeniu): „Aby wykorzystać DMP, tworzymy wybrane dane wejściowe dla operacji kryptograficznych w taki sposób, że wartości przypominające wskaźniki pojawiają się tylko wtedy, gdy poprawnie odgadniemy niektóre fragmenty tajnego klucza […] Korzystając z tego podejścia, demonstrujemy kompleksowe ataki polegające na ekstrakcji klucza na popularnych Implementacje w czasie stałym klasycznej (OpenSSL Diffie-Hellman Key Exchange, deszyfrowanie Go RSA) i kryptografii postkwantowej (CRYSTALS-Kyber i CRYSTALS-Dilithium)."

Kryptografia na rdzeniach wydajnościowych jako (powolne) obejście

Rdzenie wydajnościowe jednostki CPU na chipie M są zaprojektowane tak, aby wykonywać procesy tak szybko, jak to możliwe. Dlatego stosuje się DMP. Oczywiście możliwość szybkiego wykonywania obliczeń sprawia, że ​​rdzenie te idealnie nadają się do szyfrowania i deszyfrowania. Jak opisano, DMP zapewniają możliwość odczytania używanych kluczy lub przechowywanych w nich danych w tajemnicy. Możliwą metodą zapobiegania atakom GoFetch jest szyfrowanie i deszyfrowanie z dala od rdzeni wydajnościowych.

Jednakże outsourcing do rdzeni wydajności, które nie zostały zaprojektowane z myślą o szybkości, ale o oszczędzaniu energii, może sprawić, że procesy staną się zauważalnie dłuższe. Ponadto przekierowania do innych rdzeni (o ile rozumiem) nie można po prostu wymusić w całym systemie poprzez aktualizację systemu macOS. Procedura musi zostać wdrożona ręcznie w oprogramowaniu przez twórców odpowiednich aplikacji lub narzędzi systemowych. Dostępne jest zatem obejście ograniczające możliwości ataku GoFetch. Jest to jednak czasochłonne i może spowolnić pracę na komputerze Mac.

>>>Wyjaśnienie: rdzenie o wysokiej wydajności w porównaniu z rdzeniami o wysokiej wydajności w Apple Silicon<<

Wprowadzenie do tematu i artykuł naukowy

Jeśli interesuje Cię temat, a nie chcesz tylko mojego amatorskiego wykonania z drugiej ręki, to mogę polecić strony internetowe, które wyjaśniają temat na podstawie danych z pierwszej ręki. Pierwsza strona internetowa to https://gofetch.fail/. Znajdziesz tam krótki opis problemu, listę autorów i uczelni, na których pracują. I na koniec FAQ ze wszystkimi ważnymi pytaniami i odpowiedziami na dany temat. Obejmuje to m.in. notatkę, że Apple został poinformowany o wynikach badań 5 grudnia 2023 r.

Artykuł na ten temat ma charakter bardziej naukowy, który można pobrać w formacie PDF (https://gofetch.fail/files/gofetch.pdf). Na 21 stronach znajdują się wszystkie szczegółowe informacje na dany temat, od szczegółowego wprowadzenia do tła dziedziny badawczej, po konfigurację eksperymentu i uzyskane wyniki. Nie mogę powiedzieć, że dużo z tego rozumiem, zwłaszcza wzory i inne opisy matematyczne, które czasami wypełniają całe akapity. Każdy, kto to zrozumie, z pewnością uzyska wiele informacji z pliku PDF.

Film Jensa o GoFetch

Moje wskazówki i porady dotyczące technologii i Apple

Podobał Ci się artykuł i czy instrukcje na blogu Ci pomogły? Wtedy byłbym szczęśliwy, gdybyś bloga poprzez stałe członkostwo będzie wspierać.

2 komentarze na temat „GoFetch – luka w zabezpieczeniach Apple Silicon (M-Chip), której nie można zamknąć”

  1. piwo jest dobre

    Niestety zapomniałeś o tym fragmencie:

    Czy DMP można wyłączyć?
    Tak, ale tylko na niektórych procesorach. Obserwujemy, że bit DIT ustawiony na procesorach m3 skutecznie wyłącza DMP. Nie dotyczy to m1 i m2. Ponadto odpowiednik Intela, bit DOIT, może zostać użyty do wyłączenia DMP w procesorach Raptor Lake.

    1. Johannesa Domke’a

      Dziękuję za dodanie. Ponieważ nie rozumiem użycia lub manipulacji DIT i odpowiadającym mu bitem, prawdopodobnie celowo go pominąłem.

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone * oznakowane

Na blogu Sir Apfelot znajdziesz porady, instrukcje i recenzje produktów Apple, takich jak iPhone, iPad, Apple Watch, AirPods, iMac, Mac Pro, Mac Mini i Mac Studio.

Promocje
Zakupy
  •  
  •