Kowal - nowy atak na pamięć DRAM i układy DDR4

Zespół badaczy z ETH Zurich, Vrije Universiteit Amsterdam i Qualcomm opublikował nową metodę ataku RowHammer, która może zmienić zawartość poszczególnych bitów dynamicznej pamięci o dostępie swobodnym (DRAM). Atak otrzymał kryptonim Blacksmith i został zidentyfikowany jako CVE-2021-42114. Problemem podatnych jest wiele układów DDR4 wyposażonych w zabezpieczenia przed znanymi wcześniej metodami klasy RowHammer. Narzędzia do testowania systemów pod kątem luk są publikowane na GitHubie.

Przypomnijmy, że ataki klasy RowHammer pozwalają na zniekształcenie zawartości poszczególnych bitów pamięci poprzez cykliczne odczytywanie danych z sąsiednich komórek pamięci. Ponieważ pamięć DRAM jest dwuwymiarowym układem komórek, z których każde składa się z kondensatora i tranzystora, ciągłe odczytywanie tego samego obszaru pamięci powoduje wahania napięcia i anomalie, które powodują niewielką utratę ładunku w sąsiednich komórkach. Jeżeli intensywność odczytu będzie duża, sąsiednia komórka może stracić wystarczająco dużą ilość ładunku i kolejny cykl regeneracji nie będzie miał czasu na przywrócenie stanu pierwotnego, co doprowadzi do zmiany wartości danych przechowywanych w komórce .

Aby zabezpieczyć się przed RowHammerem, producenci chipów zaproponowali mechanizm TRR (Target Row Refresh), który chroni przed uszkodzeniem komórek w sąsiednich rzędach, jednak ponieważ ochrona opierała się na zasadzie „bezpieczeństwa przez zaciemnienie”, nie rozwiązało to problemu przy root, ale chroniony tylko przed znanymi specjalnymi przypadkami, co ułatwiło znalezienie sposobów na ominięcie ochrony. Na przykład w maju Google zaproponował metodę Half-Double, na którą ochrona TRR nie miała wpływu, ponieważ atak dotyczył komórek, które nie sąsiadowały bezpośrednio z celem.

Nowa metoda Blacksmitha oferuje inny sposób ominięcia zabezpieczenia TRR, oparty na nierównomiernym dostępie do dwóch lub więcej ciągów agresorów na różnych częstotliwościach, co powoduje wyciek ładunku. Aby określić wzór dostępu do pamięci prowadzący do wycieku ładunku, opracowano specjalny fuzzer, który automatycznie dobiera parametry ataku dla konkretnego chipa, zmieniając kolejność, intensywność i systematyczność dostępu do komórki.

Takie podejście, które nie wiąże się z oddziaływaniem na te same komórki, powoduje, że obecne metody ochrony TRR są nieskuteczne, co w takiej czy innej formie sprowadza się do zliczania liczby powtarzających się połączeń do komórek i po osiągnięciu określonych wartości inicjowania doładowań sąsiadujących komórek. W Blacksmith wzór dostępu jest rozłożony na kilka komórek jednocześnie z różnych stron celu, co pozwala osiągnąć wyciek ładunku bez osiągania wartości progowych.

Metoda okazała się znacznie skuteczniejsza od wcześniej proponowanych metod ominięcia TRR - badaczom udało się uzyskać zniekształcenia bitowe we wszystkich 40 niedawno zakupionych różnych układach pamięci DDR4 marek Samsung, Micron, SK Hynix i nieznanego producenta (producentem był nie określono na 4 żetonach). Dla porównania, zaproponowana wcześniej przez tych samych badaczy metoda TRRespass była skuteczna jedynie w przypadku 13 z 42 testowanych wówczas chipów.

Ogólnie rzecz biorąc, oczekuje się, że metoda Blacksmith będzie miała zastosowanie do 94% wszystkich chipów DRAM dostępnych na rynku, ale naukowcy twierdzą, że niektóre chipy są bardziej podatne na ataki i łatwiejsze do ataku niż inne. Zastosowanie kodów korekcji błędów (ECC) w chipach i podwojenie częstotliwości odświeżania pamięci nie zapewnia pełnej ochrony, ale komplikuje działanie. Warto zauważyć, że problemu nie można zablokować w już wydanych chipach i wymaga wdrożenia nowego zabezpieczenia na poziomie sprzętowym, więc atak pozostanie aktualny przez wiele lat.

Praktyczne przykłady obejmują metody wykorzystania Blacksmith do zmiany zawartości wpisów w tablicy stron pamięci (PTE, wpis w tablicy stron) w celu uzyskania uprawnień jądra, uszkadzając klucz publiczny RSA-2048 przechowywany w pamięci w OpenSSH (możesz przenieść klucz publiczny do czyjaś maszyna wirtualna tak, aby pasowała do klucza prywatnego atakującego, aby połączyć się z maszyną wirtualną ofiary) i ominąć sprawdzanie poświadczeń, modyfikując pamięć procesu Sudo w celu uzyskania uprawnień roota. W zależności od chipa, zmiana jednego bitu docelowego zajmuje od 3 sekund do kilku godzin czasu ataku.

Dodatkowo możemy odnotować publikację otwartego frameworku LiteX Row Hammer Tester do testowania metod ochrony pamięci przed atakami klasy RowHammer, opracowanego przez Antmicro dla Google. Framework opiera się na wykorzystaniu FPGA do pełnej kontroli poleceń przesyłanych bezpośrednio do układu DRAM w celu wyeliminowania wpływu kontrolera pamięci. Do interakcji z FPGA oferowany jest zestaw narzędzi w języku Python. Brama oparta na FPGA zawiera moduł do pakietowego przesyłania danych (definiuje wzorce dostępu do pamięci), moduł Payload Executor, kontroler oparty na LiteDRAM (przetwarza całą logikę wymaganą dla DRAM, w tym aktywację wierszy i aktualizację pamięci) oraz procesor VexRiscv. Opracowania projektu są rozpowszechniane na licencji Apache 2.0. Obsługiwane są różne platformy FPGA, w tym Lattice ECP5, Xilinx Series 6, 7, UltraScale i UltraScale+.

Źródło: opennet.ru

Dodaj komentarz