Výzkumníci z Curyšské technické vysoké školy vyvinuli metodu útoku ZenHammer, což je varianta útoků třídy RowHammer, zaměřená na změnu obsahu jednotlivých bitů dynamické operační paměti (DRAM), přizpůsobená pro použití na platformách s procesory AMD. Předchozí metody útoků třídy RowHammer byly omezeny na systémy založené na procesorech Intel, ale uskutečněný výzkum ukázal, že i deformace paměťových buněk lze dosáhnout na platformách s paměťovými řadiči od společnosti AMD.
Funkčnost metody byla demonstrována na systémech AMD Zen 2 a Zen 3 s pamětí DDR4 od tří předních výrobců (Samsung, Micron a SK Hynix). Útok úspěšně obchází mechanismus TRR (Target Row Refresh) implementovaný v paměťových čipech, který je zaměřen na ochranu před deformací paměťových buněk v sousedních řadách. Podle hodnocení výzkumníků jsou systémy založené na procesorech AMD Zen 3 více zranitelné než systémy s procesory Intel Coffee Lake, takže je snazší a efektivněji je napadnout. Na systémech AMD Zen 2 byla deformace buněk dosažena u 7 z 10 testovaných čipů DDR4, zatímco na systémech Zen 3 u 6 z 10. Výzkumníci také analyzovali možnost útoku na systémy AMD Zen 4 s pamětí DDR5, ale metodu útoku vyvinutou pro DDR4 se podařilo úspěšně reprodukovat pouze u 1 z 10 testovaných paměťových čipů DDR5, přičemž možnost útoku není vyloučena, ale vyžaduje vývoj efektivnějších vzorů čtení vhodných pro zařízení DDR5.
Při práci s čipy AMD se podařilo přizpůsobit dříve vyvinuté exploity, které mění obsah záznamů v tabulce stránek paměti (PTE, page table entry) k získání privilegii jádra, obcházející kontrolu hesla/povolení skrze modifikaci paměti procesu sudo a poškozující uložený v paměti veřejný klíč RSA-2048 v OpenSSH k rekonstrukci soukromého klíče. Útok na stránky paměti se podařilo reprodukovat na 7 z 10 testovaných čipů DDR4, útok na klíč RSA na 6 čipech a útok na sudo na 4 čipech, přičemž doba útoku byla 164, 267 a 209 sekund.

Metoda může být také aplikována pro útok na systém prostřednictvím prohlížečů, aby došlo k provádění změn z virtuálních strojů nebo pro organizaci útoku na síť. Na GitHubu je pod licencí MIT zveřejněn zdrojový kód nástroje DARE pro reverzní inženýrství rozložení adres v paměti DRAM, stejně jako dvě sady utilit pro fuzzing-testování zkreslení bitů v paměti – ddr4_zen2_zen3_pub pro čipy DDR4 (Zen 2 a Zen 3) a ddr5_zen4_pub pro čipy DDR5 (Zen 4), které mohou být použity pro testování vlastních systémů na zranitelnost útoku.

Pro zkreslení bitů se používá metoda RowHammer, která se zakládá na tom, že v paměti DRAM, která představuje dvourozměrnou matici buněk složených z kondenzátoru a tranzistoru, kontinuální čtení stejné oblasti paměti vede k výkyvům napětí a anomáliím způsobujícím malé ztráty náboje sousedních buněk. Pokud je intenzita čtení vysoká, sousední buňka může ztratit dostatečně velké množství náboje a další regenerační cyklus nemusí stihnout obnovit její původní stav, což povede ke změně hodnoty uložených dat v buňce. V rámci výzkumu byly identifikovány rysy mechanismů mapování fyzické paměti a synchronizace s aktualizací paměti v procesorech AMD, které umožnily rekonstrukci nízkoúrovňové adresace DRAM, určení adres sousedních buněk, vývoj metod obcházení cachování, výpočet vzorců a frekvence operací vedoucích ke ztrátě náboje.
Pro ochranu proti RowHammer výrobci čipů používají mechanismus TRR (Target Row Refresh), který blokuje zkreslení buněk v určitých případech, ale nechrání před všemi možnými varianty útoku. Nejúčinnějším metodou ochrany zůstává použití paměti s kódy pro opravu chyb (ECC), které značně ztěžují, ale zcela nevylučují provádění útoků třídy RowHammer. Snížení pravděpodobnosti úspěšného útoku také umožňuje zvýšení frekvence regenerace paměti.
Společnost AMD zveřejnila zprávu o problému, v níž uvedla, že v procesorech AMD jsou použity paměťové řadiče splňující specifikace DDR, a protože úspěšnost útoku závisí převážně na nastavení systému a DRAM paměti, je třeba se na otázky týkající se odstranění problému obrátit na výrobce pamětí a systémů. Mezi existujícími metodami, jak ztížit provádění útoků typu Rowhammer, je uvedeno použití ECC pamětí, zvýšení frekvence obnovování paměti, vypnutí režimu odloženého obnovování a použití procesorů s řadiči podporujícími režim MAC (Maximum Activate Count) pro DDR4 (1., 2. a 3. generace AMD EPYC „Naple“, „Rome“ a „Milan“) a RFM (Refresh Management) pro DDR5 (4. generace AMD EPYC).
Zdroj: opennet.ru
