TikTag — an attack on the speculative execution mechanism in ARM CPUs that allows bypassing MemTag protection

Grupa badawcza z Uniwersytetu Seulskiego i firmy Samsung opracowała technikę ataku na procesory ARM, noszącą kodową nazwę TikTag, którą można wykorzystać do ominięcia sprzętowego mechanizmu ochrony MemTag (MTE, Memory Tagging Extension) obecnego w chipach opartych na architekturze ARMv8.5-A. Atak pozwala na określenie zawartości tagów TikTag dla dowolnych adresów pamięci z powodu wycieków danych, które występują w wyniku spekulacyjnego wykonywania instrukcji CPU.

Technologia MemTag umożliwia przypisanie tagów do obszarów pamięci oraz organizację sprawdzania poprawności użycia wskaźników w celu zablokowania eksploatacji podatności spowodowanych dostępem do już zwolnionych bloków pamięci, przepełnieniem bufora i dostępem przed inicjalizacją. Podczas korzystania z MemTag dla każdego 16 bajtów fizycznej pamięci tworzony jest 4-bitowy tag, który działa jak klucz do dostępu do tej pamięci. Tag może być generowany przez aplikację dla przydzielanego obszaru pamięci przy użyciu specjalnych instrukcji CPU, a następnie przechowywany w górnych nieużywanych bitach wskaźnika. Podczas dostępu do pamięci z użyciem tagowanego wskaźnika, procesor sprawdza zgodność tagu przypisanego do wskaźnika z tagami przypisanymi do bloków pamięci, a dostęp jest dozwolony tylko wtedy, gdy tagi się zgadzają.

Proponowana metoda ataku umożliwia określenie tagów przypisanych do bloków pamięci i ominięcie ochrony MemTag. Badacze wykazali możliwość przeprowadzenia ataku TikTag przy wykorzystaniu podatności w jądrze Linux i przeglądarce Chrome, używając istniejących w tych produktach sekwencji instrukcji (gadżetów), prowadzących do spekulacyjnego wykonywania kodu. Podobne gadżety, podczas wykonywania w trybie spekulacyjnym kodu operującego na wskaźnikach, powodują odczyt metadanych MemTag w zależności od zewnętrznych warunków, na które może wpływać atakujący. Po określeniu błędnego prognozy wynik spekulacyjnego wykonania jest odrzucany, ale uzyskane dane pozostają w pamięci podręcznej i mogą być później wydobyte za pomocą analizy kanałów bocznych. Prawdopodobieństwo pomyślnego ominięcia ochrony MemTag w przeprowadzonych testach oszacowane zostało na 95% podczas ataku trwającego około 4 sekundy.

TikTag - atak na mechanizm spekulacyjnego wykonywania w CPU ARM, umożliwiający ominięcie ochrony MemTag

Wykryto dwa rodzaje gadżetów, które prowadzą do wycieku informacji o tagach MemTag. W pierwszym przypadku wykonywanie spekulacyjne występuje przy błędnym przewidywaniu przejścia, a warunki do wykonania gadżetu mogą być stworzone poprzez manipulację wywołaniami systemowymi. W drugim przypadku
wykonywanie spekulacyjne występuje z powodu błędu w przewidywaniu zależności między operacjami odczytu a zapisu przy użyciu optymalizacji STLF (Store-To-Load-Forwarding), co pozwala na podjęcie tagu, oceniając stan pamięci podręcznej (jeśli tag się zgadza, wartość zostanie bezpośrednio przekierowana z poprzedniego polecenia „store” do operacji „load”, zmieniając stan pamięci podręcznej). Pierwszy rodzaj gadżetów nadaje się do ataku na jądro Linux, a drugi na silnik JavaScript V8 używany w przeglądarkach opartych na Chromium. Prototyp narzędzi do przeprowadzenia ataku został opublikowany na GitHubie.

TikTag - atak na mechanizm spekulacyjnego wykonywania w CPU ARM, umożliwiający ominięcie ochrony MemTagTikTag - atak na mechanizm spekulacyjnego wykonywania w CPU ARM, umożliwiający ominięcie ochrony MemTag

Firma ARM potwierdziła możliwość przeprowadzenia ataku na systemach z procesorami Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 i Cortex-A720, ale nie zamierza wprowadzać zmian w CPU, aby zablokować problem, ponieważ architektura MemTag zakłada, że tagi nie są danymi sekretami dla aplikacji. W kodzie źródłowym Chromium problem również pozostaje niepoprawiony, ponieważ w przeglądarce Chrome ochrona oparta na MemTag na razie nie jest stosowana domyślnie. Zespół odpowiedzialny za bezpieczeństwo platformy Android uznał możliwość przeprowadzenia ataku na urządzenia Pixel 8, w których stosuje się ochronę MemTag, dodał poprawki w celu zablokowania wycieków i wyraził gotowość do wypłaty nagrody za znalezienie luki.

Jako obejścia w celu zablokowania ataku, badacze proponują użycie instrukcji sb lub isb, aby zakazać wykonywania spekulacyjnego podczas przeprowadzania krytycznych operacji na pamięci lub włączenie pomiędzy instrukcjami rozgałęzienia a instrukcjami dostępu do pamięci wypełnienia z innych instrukcji.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster