Az Egyesült Államok és Ausztrália több egyetemének kutatói kidolgoztak két Rowhammer osztályú támadást – GDDR-Hammer és GeForge – amelyek lehetővé teszik, hogy az NVIDIA GPU-n futó nem privilégizált CUDA kernel segítségével egyes bitek torzulását érjék el a GDDR videomemória chipjeiben. A tavaly bemutatott GPUHammer módszerhez képest az új támadások nem korlátozódnak a GPU memóriájában feldolgozott adatok torzítására, hanem teljes hozzáférést biztosítanak a CPU címtartományához tartozó összes fő memóriához. A kutatók olyan exploitokat mutattak be, amelyek root hozzáférést biztosítanak a fő rendszerhez, miközben nem privilégizált CUDA kernel fut a GPU-n.
Mindkét támadás előidézi a töltés korai elvesztését bizonyos videomemória cellákban, amelyekhez a támadóknak nincs közvetlen hozzáférésük, ami a tárolt bitek megváltozásához vezet. A CPU címtartományához tartozó memória olvasási és írási lehetősége a GPU memóriakiosztó (cudaMalloc) működésének megzavarásával valósul meg, így megsértve a GPU memóriaizolációját, és véletlenszerű GPU vagy CPU fizikai címekhez társítva a GPU virtuális címeit.
A beavatkozás a GPU memóriájában található bitek értékeinek torzításán keresztül történik, ahol a GPU memóriaoldal-táblák találhatók, amelyek a virtuális címek fizikai címekre történő fordításáért felelnek. A GDDR-Hammer és GeForge támadások közötti különbség abban rejlik, hogy a GDDR-Hammer módszer a legutolsó szintű oldal-táblát (PT – Last Level Page Table) módosítja, míg a GeForge a legutolsó szintű oldalkönyvtárat (PD0 – Last Level Page Directory).
Ezen kívül a címfordító táblák közvetlen GPU hozzáférést használnak a CPU memóriájához, így a GPU oldal-táblájában található cím fizikai címre módosítása a fő RAM-ban és az APERTURE jelzés aktiválása, amely lehetővé teszi a CPU memória térképezési módot, lehetővé teszi az adatok olvasását és írását a fő memória elérésével PCIe buszon, IOMMU kikapcsolt állapotában (alapértelmezés szerint kikapcsolva).


Sikeres támadások bizonyították, hogy a nagy teljesítményű professzionális NVIDIA RTX A6000 grafikus kártyák, amelyek az Ampere mikroarchitektúrára épülnek (az új kártyák ára 6850 $-tól, a használtaké 4000 $-tól kezdődik), és a lakossági NVIDIA RTX 3060 modellek (250-300 $) esetében is lehetséges. A Rowhammer védelem megkerülésére kifejlesztett technika a GPU által biztosított párhuzamos műveletek kihasználásával 64-szeresére növelte a cella torzulásának gyakoriságát a korábbi támadásokhoz képest. Ideiglenes intézkedésként az „nvidia-smi -e 1” paranccsal az ECC (Error Correcting Codes) hibajavító módot lehet aktiválni, de ez kiegészítő költségeket von maga után, és potenciálisan megkerülhető olyan támadási módszerekkel, mint az ECCploit és az ECC.fail.
A RowHammer támadás lehetővé teszi a DRAM memória egyes bitek tartalmának torzítását a szomszédos memóriaüregek adataiból való ciklikus olvasás révén. Mivel a DRAM memória egy kétdimenziós cella tömböt képvisel, ahol minden cella egy kondenzátorból és egy tranzisztorból áll, a folyamatos olvasás egy bizonyos memória területről feszültség ingadozásokat és anomáliákat okoz, amelyek kis mennyiségű töltés elvesztéséhez vezetnek a szomszédos cellákban. Ha az olvasási intenzitás magas, akkor a szomszédos cella elegendő töltést veszíthet ahhoz, hogy a következő regenerálási ciklus már nem tudja visszaállítani az eredeti állapotát, ami a cellában tárolt adatok értékének megváltozásához vezet.
A Rowhammer támadási módszert 2014-ben javasolták, ezt követően biztonsági kutatók és hardvergyártók között elkezdődött egy macska-egér harc — a memóriachip gyártói próbálták blokkolni a sebezhetőséget, míg a kutatók új módszereket találtak a megkerülésére. Például a RowHammer védelme érdekében a chipgyártók TRR (Target Row Refresh) mechanizmust vezettek be, de kiderült, hogy ez a cellák torzulásának megakadályozását csak korlátozott esetekben biztosítja, és nem véd minden lehetséges támadás ellen. Támadási módszereket dolgoztak ki DDR3, DDR4 és DDR5 chipekre Intel, AMD és ARM processzoros rendszerekhez, valamint az NVIDIA GPU GDDR memóriájához. Ezen kívül felfedeztek módszereket az ECC hibajavításon való megkerülésre, és javasolták a támadások végrehajtását hálózaton vagy JavaScript kód futtatásával a böngészőben.
Forrás: opennet.ru
