Opracowali serię ataków na przywracanie pamięci podręcznej procesora w przeglądarkach internetowych bez konieczności obsługi języka JavaScript

Zespół naukowców z różnych uczelni Amerykanie, Izraelczycy i Australijczycy opracował trzy ataki na przeglądarki internetowe, które umożliwiają wydobycie informacji o zawartości pamięci podręcznej procesora. Metoda działa w przeglądarkach bez JavaScriptut, a pozostałe dwie omijają istniejące metody ochrony przed atakami przez kanały osób trzecich, w tym te używane w przeglądarce Tor i DeterFox.

Aby przeanalizować zawartość pamięci podręcznej w formacie wszystkie ataki wykorzystują metodę „Prime + Probe”Że polega na zapełnieniu pamięci podręcznej zestawem wartości referencyjnych i określeniu zmian poprzez pomiar czasu dostępu do nich po naładowaniu. W celu ominięcia mechanizmów bezpieczeństwa obecnych w przeglądarkach, które uniemożliwiają dokładny pomiar czasu, w dwóch wersjach wywoływany jest kontrolowany atakujący serwer DNS lub WebSocket, który rejestruje czas odebrania żądań. W jednym przykładzie wykonania ustalony czas odpowiedzi DNS jest używany jako odniesienie czasowe.

Pomiary wykonane z wykorzystaniem zewnętrznych serwerów DNS lub WebSocket, dzięki zastosowaniu systemu klasyfikacji opartego na uczeniu maszynowym, wystarczyły do ​​przewidzenia wartości z dokładnością 98% w najbardziej optymalnym scenariuszu (średnio 80-90%). Metody ataku zostały przetestowane na różnych platformach sprzętowych (Intel, AMD Ryzen, Apple M1, Samsung Exynos) i okazały się wszechstronne.

Pierwszy wariant ataku DNS Racing wykorzystuje klasyczną implementację metody Prime + Probe przy użyciu tablic JavaScript. Różnice sprowadzają się do użycia zewnętrznego licznika czasu opartego na DNS i modułu obsługi błędów, który uruchamia się podczas próby załadowania obrazu z nieistniejącej domeny. Zewnętrzny licznik czasu umożliwia ataki Prime + Probe w przeglądarkach, które ograniczają lub całkowicie wyłączają dostęp do licznika czasu JavaScript.

W przypadku serwera DNS hostowanego w tej samej sieci Ethernet dokładność licznika czasu szacuje się na około 2 ms, co jest wystarczające do przeprowadzenia ataku kanału bocznego (dla porównania: precyzja standardowego licznika czasu JavaScript w przeglądarce Tor ma została zredukowana do 100 ms). Do ataku nie jest wymagana kontrola nad serwerem DNS, ponieważ czas wykonania operacji jest tak dobrany, aby czas odpowiedzi DNS był sygnałem wczesnego zakończenia weryfikacji (w zależności od tego, czy procedura obsługi błędów została uruchomiona wcześniej, czy później). , stwierdza się, że operacja weryfikacji z pamięcią podręczną została zakończona) ...

Drugi atak „String and Sock” ma na celu ominięcie technik bezpieczeństwa które ograniczają użycie tablic JavaScript niskiego poziomu. Zamiast tablic, String i Sock używają bardzo dużych operacji na łańcuchach, których rozmiar dobiera się tak, aby zmienna obejmowała całą pamięć podręczną LLC (pamięć podręczną najwyższego poziomu).

Następnie za pomocą funkcji indexOf () wyszukiwany jest mały podciąg w ciągu, którego początkowo nie ma w oryginalnym ciągu, to znaczy operacja wyszukiwania skutkuje iteracją po całym ciągu. Ponieważ rozmiar linii odpowiada rozmiarowi pamięci podręcznej LLC, skanowanie umożliwia wykonanie operacji weryfikacji pamięci podręcznej bez manipulowania tablicami. Aby zmierzyć opóźnienia, zamiast DNS, jest to odwołanie do atakującego serwera WebSocket kontrolowanego przez atakującego: przed rozpoczęciem i po zakończeniu operacji wyszukiwania żądania wysyłane są w łańcuchu,

Trzecia wersja ataku "CSS PP0" poprzez HTML i CSS i może działać w przeglądarkach z wyłączoną obsługą JavaScript. Ta metoda wygląda jak „String and Sock”, ale nie jest powiązana z JavaScriptem. Atak generuje zestaw selektorów CSS, które wyszukują według maski. Świetna oryginalna linia, która wypełnia pamięć podręczną jest ustawiana przez utworzenie znacznika DIV z bardzo dużą nazwą klasy, in który wewnątrz znajduje się zestaw innych elementów div z własnymi identyfikatorami.

Każdy z te zagnieżdżone elementy div są stylizowane za pomocą selektora, który szuka podciągu. Podczas renderowania strony przeglądarka najpierw próbuje przetworzyć wewnętrzne elementy div, co skutkuje wyszukiwaniem dużego ciągu. Wyszukiwanie odbywa się za pomocą oczywiście brakującej maski i prowadzi do iteracji całego ciągu, po czym wyzwalany jest warunek „nie” i podejmowana jest próba załadowania obrazu tła.


Zostaw swój komentarz

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

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.