ZenHammer — metoda atakowania do manipulacji zawartością pamięci na platformach AMD Zen

Badacze z Federalnego Instytutu Technologii w Zurychu opracowali metodę ataku ZenHammer, będącą wariantem ataków klasy RowHammer, służącą do modyfikacji zawartości poszczególnych bitów dynamicznej pamięci RAM (DRAM), dostosowaną do użycia na platformach z procesorami AMD. Poprzednie metody ataków klasy RowHammer ograniczały się do systemów opartych na procesorach Intel, jednak przeprowadzone badania wykazały, że zniekształcenie komórek pamięci można również osiągnąć na platformach z kontrolerami pamięci firmy AMD.

Działanie metody zostało zademonstrowane na systemach AMD Zen 2 i Zen 3 z pamięcią DDR4 od trzech wiodących producentów (Samsung, Micron i SK Hynix). Atak skutecznie omija mechanizm TRR (Target Row Refresh), który ma na celu ochronę przed zniekształceniem komórek pamięci w sąsiednich wierszach. Zdaniem badaczy, systemy oparte na CPU AMD Zen 3 są bardziej podatne na atak niż systemy z procesorami Intel Coffee Lake, i są łatwiejsze oraz skuteczniejsze do zaatakowania. Na systemach AMD Zen 2 udało się osiągnąć zniekształcenia komórek w 7 na 10 testowanych układach DDR4, a na systemach Zen 3 w 6 na 10. Badacze również przeanalizowali możliwość przeprowadzenia ataku na systemy AMD Zen 4 z pamięcią DDR5, lecz zaprojektowaną dla DDR4 metodę ataku udało się skutecznie odtworzyć jedynie na 1 z 10 testowanych układów pamięci DDR5, przy czym sama możliwość ataku nie została wykluczona, jednak wymaga opracowania bardziej efektywnych wzorców odczytu, odpowiednich dla urządzeń DDR5.

W celu pracy z układami AMD udało się dostosować wcześniej opracowane exploity, które zmieniają zawartość wpisów w tablicy stron pamięci (PTE, page table entry) w celu uzyskania uprawnienia jądra, omijając kontrolę hasła/poświadczeń poprzez modyfikację pamięci procesu sudo oraz uszkadzając przechowywany w pamięci klucz publiczny RSA-2048 w OpenSSH w celu odtworzenia klucza prywatnego. Atak na strony pamięci udało się odtworzyć w 7 na 10 testowanych układach DDR4, atak na klucz RSA — na 6 układach, a atak na sudo — na 4 układach, przy czym czas ataku wyniósł odpowiednio 164, 267 i 209 sekund.

ZenHammer - metoda ataku do modyfikacji zawartości pamięci na platformach AMD Zen

Metoda może być również zastosowana do ataku na system za pośrednictwem przeglądarek w celu wprowadzenia zmian z maszyn wirtualnych lub do przeprowadzenia ataku sieciowego. Na GitHubie, na licencji MIT, zamieszczono kod źródłowy narzędzia DARE do inżynierii wstecznej rozkładu adresów w pamięci DRAM, a także dwa zestawy narzędzi do testowania fuzzingowego, które powodują zniekształcenia bitów w pamięci — ddr4_zen2_zen3_pub dla chipów DDR4 (Zen 2 i Zen 3) oraz ddr5_zen4_pub dla chipów DDR5 (Zen 4), które można wykorzystać do sprawdzania swoich systemów pod kątem podatności na atak.

ZenHammer - metoda ataku do modyfikacji zawartości pamięci na platformach AMD Zen

Do zniekształcania bitów stosuje się metodę RowHammer, która opiera się na tym, że w pamięci DRAM, będącej dwuwymiarową macierzą komórek składających się z kondensatora i tranzystora, ciągłe odczytywanie tej samej części pamięci prowadzi do fluktuacji napięcia i anomalii, powodujących niewielką utratę ładunku sąsiednich komórek. Jeśli intensywność odczytu jest duża, sąsiednia komórka może stracić wystarczającą ilość ładunku, a kolejny cykl regeneracji nie zdąży przywrócić jej początkowego stanu, co prowadzi do zmiany wartości danych przechowywanych w komórce. W trakcie badań naukowych zidentyfikowano cechy mechanizmów mapowania pamięci fizycznej i synchronizacji z aktualizacją pamięci stosowanych w procesorach AMD, które pozwoliły na odtworzenie niskopoziomowego adresowania DRAM, określenie adresów sąsiednich komórek, opracowanie metod obejścia pamięci podręcznej oraz obliczenie wzorców i częstotliwości operacji prowadzących do utraty ładunku.

Aby chronić przed RowHammer, producenci chipów stosują mechanizm TRR (Target Row Refresh), który blokuje zniekształcenie komórek w pewnych przypadkach, ale nie chroni przed wszystkimi możliwymi wariantami ataku. Najskuteczniejszą metodą ochrony pozostaje użycie pamięci z kodami korekcji błędów (ECC), które znacznie utrudniają, ale całkowicie nie wykluczają przeprowadzania ataków klasy RowHammer. Zmniejszenie prawdopodobieństwa udanego ataku możliwe jest również poprzez zwiększenie częstotliwości regeneracji pamięci.

Firma AMD opublikowała raport dotyczący problemu, w którym zaznaczono, że w procesorach AMD używane są kontrolery pamięci zgodne ze specyfikacjami DDR. Sukces ataku w dużej mierze zależy od ustawień systemu i pamięci DRAM, dlatego w sprawie rozwiązania problemu należy kontaktować się z producentami pamięci i systemów. Wśród dostępnych sposobów utrudnienia przeprowadzania ataków typu Rowhammer wymienia się wykorzystanie pamięci ECC, zwiększenie częstotliwości odświeżania pamięci, wyłączenie trybu opóźnionego odświeżania oraz stosowanie procesorów z kontrolerami wspierającymi tryb MAC (Maximum Activate Count) dla DDR4 (1, 2 i 3 pokolenie AMD EPYC „Naple”, „Rome” i „Milan”) oraz RFM (Refresh Management) dla DDR5 (4 pokolenie AMD EPYC).

Ź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