Grupa badaczy z Politechniki Federalnej w Zurychu, Wolnego Uniwersytetu w Amsterdamie i firmy Qualcomm opublikowała nową metodę ataku klasy RowHammer, pozwalającą na modyfikację zawartości pojedynczych bitów dynamicznej pamięci RAM (DRAM). Atak nosi kodową nazwę Blacksmith i identyfikator CVE-2021-42114. Wiele układów DDR4, wyposażonych w zabezpieczenia przed wcześniej znanymi metodami klasy RowHammer, jest podatnych na to zagrożenie. Narzędzie do testowania własnych systemów na podatność na tę lukę zostało opublikowane na GitHubie.
Przypomnijmy, że ataki klasy RowHammer umożliwiają zniekształcenie zawartości pojedynczych bitów pamięci poprzez cykliczne odczyty danych z sąsiednich komórek pamięci. Ponieważ pamięć DRAM jest dwuwymiarową macierzą komórek, z których każda składa się z kondensatora i tranzystora, ciągłe odczytywanie tej samej strefy pamięci prowadzi do fluktuacji napięcia i anomalii, które powodują niewielką utratę ładunku w sąsiednich komórkach. Jeśli intensywność odczytów jest wysoka, to sąsiednia komórka może stracić znaczną ilość ładunku, a kolejny cykl regeneracji nie nadąży za przywróceniem jej pierwotnego stanu, co doprowadzi do zmiany wartości danych przechowywanych w tej komórce.
Aby chronić przed RowHammer, producenci układów zaproponowali mechanizm TRR (Target Row Refresh), który chroni przed zniekształceniem komórek w sąsiednich wierszach, lecz ponieważ zabezpieczenie opierało się na zasadzie «bezpieczeństwa przez niejasność (security by obscurity)», nie rozwiązywało problemu u źródła, a jedynie chroniło przed znanymi szczególnymi przypadkami, co pozwalało na łatwe znajdowanie sposobów obejścia tego zabezpieczenia. Na przykład w maju firma Google zaproponowała metodę Half-Double, która nie była objęta ochroną TRR, ponieważ podczas ataku były zaangażowane komórki nieprzylegające bezpośrednio do celu.
Nowa metoda Blacksmith proponuje inny sposób na obejście zabezpieczeń TRR, oparty na nierównomiernym dostępie z różną częstotliwością do dwóch lub więcej wierszy agresorów w celu wywołania utraty ładunku. W celu określenia wzoru dostępu do pamięci, prowadzącego do wycieku ładunku, opracowano specjalny fuzzer, który automatycznie dobiera parametry ataku dla konkretnego układu, zmieniając kolejność, intensywność i systematyczność dostępu do komórek.
Podobna metoda, niezwiązana z oddziaływaniem na te same komórki, czyni obecne metody ochrony TRR nieefektywnymi, które w różnej formie polegają na zliczaniu liczby powtarzających się odwołań do komórek i w momencie osiągnięcia określonych wartości inicjują przeładowanie sąsiednich komórek. W Blacksmith wzorzec dostępu rozkłada się na kilka komórek z różnych stron od docelowej, co pozwala na uzyskanie wycieku ładunku bez osiągania progowych wartości.
Metoda okazała się znacznie skuteczniejsza niż wcześniej proponowane sposoby omijania TRR — badacze zdołali osiągnąć zniekształcenia bitów we wszystkich 40 niedawno zakupionych różnych chipach pamięci DDR4 wyprodukowanych przez Samsung, Micron, SK Hynix oraz nieznanego producenta (w przypadku 4 chipów producent nie był podany). Dla porównania, wcześniej proponowana przez tych samych badaczy metoda TRRespass okazała się skuteczna jedynie dla 13 z 42 przetestowanych wówczas chipów.
W ogólnym ujęciu zakłada się, że metoda Blacksmith jest stosowalna do 94% wszystkich chipów DRAM dostępnych na rynku, ale według badaczy, niektóre chipy są bardziej podatne i prostsze do zaatakowania niż inne. Stosowanie w chipach kodów korekcji błędów (ECC) oraz podwajanie częstotliwości odświeżania pamięci nie zapewnia pełnej ochrony, ale utrudnia eksploatację. Co ciekawe, problem nie może być zablokowany w już wydanych chipach i wymaga wdrożenia nowej ochrony na poziomie sprzętowym, więc atak pozostanie aktualny przez wiele lat.
Jako praktyczne przykłady podano metody zastosowania Blacksmith do zmiany zawartości wpisów w tabeli stron pamięci (PTE, page table entry) w celu uzyskania przywilejów jądra, uszkodzenia przechowywanego w pamięci klucza publicznego RSA-2048 w OpenSSH (można podać klucz publiczny zgodny z kluczem prywatnym atakującego w celu połączenia się z VM ofiary) oraz omijania weryfikacji uprawnień poprzez modyfikację pamięci procesu sudo w celu uzyskania uprawnień roota. W zależności od chipa, zmiana jednego docelowego bitu wymaga od 3 sekund do kilku godzin przeprowadzenia ataku. maszynie wirtualnej W zależności od chipa, zmiana jednego docelowego bitu wymaga od 3 sekund do kilku godzin przeprowadzenia ataku.

Dodatkowo warto wspomnieć o publikacji otwartego frameworka LiteX Row Hammer Tester, służącego do weryfikacji metod ochrony pamięci przed atakami typu RowHammer, opracowanego przez firmę Antmicro na zlecenie Google. Framework ten bazuje na użyciu FPGA do pełnego zarządzania poleceniami przesyłanymi bezpośrednio do chipu DRAM, aby wyeliminować wpływ kontrolera pamięci. Do interakcji z FPGA dostępne jest narzędzie w języku Python. Brama oparta na FPGA zawiera moduł do pakietowego przesyłania danych (określa wzorce dostępu do pamięci), Payload Executor, kontroler oparty na LiteDRAM (przetwarza całą wymaganą logikę dla DRAM, w tym aktywację wierszy i aktualizację pamięci) oraz CPU VexRiscv. Opracowania projektu są udostępniane na licencji Apache 2.0. Obsługiwane są różne platformy FPGA, w tym Lattice ECP5, Xilinx Series 6, 7, UltraScale oraz UltraScale+.
Źródło: opennet.ru
