Zaproponowano metodę ataku do zdalnego określenia fragmentów pamięci na serwerze

Grupa badawcza z Uniwersytetu Technicznego w Grazu (Austria), wcześniej znana z opracowania ataków MDS, NetSpectre, Throwhammer i ZombieLoad, opublikowała nową metodę ataku (CVE-2021-3714) wykorzystującą kanały boczne na mechanizm deduplikacji stron pamięci (Memory-Deduplication), umożliwiającą określenie obecności określonych danych w pamięci, organizowanie byte-by-byte wycieków zawartości pamięci lub określenie układu pamięci w celu ominięcia ochrony opartej na losowości adresów (ASLR). W porównaniu do wcześniej demonstrowanych wariantów ataków na mechanizm deduplikacji, nowa metoda różni się przeprowadzaniem ataku z zewnętrznego hosta przy użyciu jako kryterium zmiany czasów odpowiedzi na wysyłane przez atakującego zapytania za pośrednictwem protokołów HTTP/1 i HTTP/2. Możliwość przeprowadzenia ataku zademonstrowano dla serwerów opartych na systemach Linux i Windows.

Ataki na mechanizm deduplikacji pamięci wykorzystują jako kanał do wycieku informacji różnicę w czasie przetwarzania operacji zapisu w sytuacjach, gdy zmiana danych prowadzi do sklonowania deduplikowanej strony pamięci za pomocą mechanizmu Copy-On-Write (COW). W trakcie działania jądro identyfikuje identyczne strony pamięci z różnych procesów i łączy je, wyświetlając identyczne strony pamięci w jednym obszarze fizycznej pamięci, aby przechować tylko jedną kopię. Gdy jeden z procesów próbuje zmienić dane powiązane z deduplikowanymi stronami, generowane jest wyjątek (page fault) i przy pomocy mechanizmu Copy-On-Write automatycznie tworzona jest osobna kopia strony pamięci, która jest przypisywana do procesu. Czas potrzebny na skopiowanie zajmuje dodatkowy czas, co może być oznaką zmiany danych, które pokrywają się z innym procesem.

Badacze pokazali, że opóźnienia wynikające z działania mechanizmu COW można uchwycić nie tylko lokalnie, ale także analizując zmiany czasów dostawy odpowiedzi w sieci. Proponowanych jest kilka metod określania zawartości pamięci zdalnego hosta poprzez analizę czasów wykonania zapytań za pośrednictwem protokołów HTTP/1 i HTTP/2. Do zachowania dobieranych wzorców wykorzystywane są typowe aplikacje webowe, które przechowują w pamięci informacje zawarte w żądaniach.

Ogólny zasada ataku sprowadza się do wypełnienia na serwerze strona pamięci danymi, potencjalnie powtarzającymi treść już istniejącej na serwerze strony pamięci. Następnie atakujący czeka na czas wymagany do wykonania deduplikacji przez jądro i połączenia strony pamięci, po czym wprowadza zmianę w kontrolowanej duplikowanej danej i ocenia czas reakcji, aby określić skuteczność ataku.

Zaproponowano metodę ataku do zdalnego określenia fragmentów pamięci na serwerze

W przeprowadzonych eksperymentach maksymalna prędkość wycieku informacji wyniosła 34,41 bajtów na godzinę przy ataku przez sieć globalną oraz 302,16 bajtów na godzinę przy ataku przez sieć lokalną, co jest szybsze niż inne metody wydobywania danych przez zewnętrzne kanały (np. przy ataku NetSpectre prędkość przesyłania danych wynosi 7,5 bajtów na godzinę).

Zaproponowano trzy warianty ataku. Pierwszy wariant pozwala na określenie danych w pamięci serwera www, na którym używany jest Memcached. Atak polega na załadowaniu określonych zbiorów danych do magazynu Memcached, oczyszczeniu deduplikowanego bloku, ponownym zapisaniu tego samego elementu i stworzeniu warunków do wystąpienia COW-kopiowania poprzez zmianę zawartości bloku. W trakcie eksperymentu z Memcached udało się w 166,51 sekundy określić wersję libc zainstalowaną w systemie uruchomionym na maszynie wirtualnej.

Drugi wariant umożliwił poznanie zawartości rekordów w bazie danych MariaDB przy użyciu magazynu InnoDB, poprzez odtworzenie zawartości bajt po bajcie. Atak przeprowadzany jest poprzez wysyłanie specjalnie zmodyfikowanych zapytań, prowadzących do jedwabytowych różnic w stronach pamięci oraz analizę czasu reakcji, aby ustalić, że przypuszczenie dotyczące zawartości bajta było prawidłowe. Prędkość takiego wycieku jest niewielka i wynosi 1,5 bajta na godzinę przy ataku z sieci lokalnej. Zaletą metody jest to, że może być stosowana do odzyskiwania nieznanej zawartości pamięci.

Trzeci wariant pozwolił w ciągu 4 minut całkowicie obejść mechanizm ochrony KASLR i uzyskać informacje o przesunięciu w pamięci obrazu jądra maszyny wirtualnej, w sytuacji, gdy adres przesunięcia znajduje się na stronie pamięci, inne dane, w której nie ulegają zmianie. Atak został przeprowadzony z hosta znajdującego się za 14 przelotami (hops) od atakowanego systemu. Przykłady kodu do przeprowadzenia przedstawionych ataków obiecano opublikować na GitHub.

Ź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