Šveitsi föderaalne tehnoloogaülikool Zürichist on välja töötanud ZenHammeri rünnaku meetodi, mis on RowHammeri rünnakute klassi variatsioon dünaamilise juhtmäluga (DRAM) bitiväärtuste muutmiseks, kohandatud AMD protsessoritega platvormidele. Varasemad RowHammeri rünnakumeetodid piirdusid Intel protsessoritega süsteemidega, kuid uuringud on näidanud, et mälu rakkude moonutusi saab saavutada ka AMD mälukontrolleritega platvormidel.
Meetodi töö on demonstreeritud AMD Zen 2 ja Zen 3 süsteemides, kus kasutatakse DDR4 mälu kolme juhtiva tootja (Samsung, Micron ja SK Hynix) tooteid. Rünnak võimaldab edukalt ületada mälakiipides rakendatud TRR (Target Row Refresh) mehhanismi, mis on suunatud naaberridade mälu rakkude väärkasutuse kaitsmiseks. Uurijate hinnangul on AMD Zen 3 baasil töötavad süsteemid rohkem haavatavad kui Intel Coffee Lake protsessoritega süsteemid, ning neid on lihtsam ja efektiivsem rünnata. AMD Zen 2 süsteemides õnnestus mälurakkude väärkasutust saavutada 7-l 10 testitud DDR4 kiibil, Zen 3 süsteemides aga 6-l 10-st. Uurijad analüüsisid ka rünnaku võimalust AMD Zen 4 süsteemidele, kus kasutatakse DDR5 mälu, kuid DDR4 jaoks välja töötatud ründemeetod õnnestus edukalt reprodutseerida vaid 1-l 10 testitud DDR5 mälu kiibil; see ei välistanud rünnaku võimalust, kuid nõudis tõhusamate lugemisviiside väljatöötamist, mis sobiksid DDR5 seadmetele.
AMD kiipide töötlemiseks suudeti kohandada varem arendatud eksploidiga, mis muudab mälulehekülgede kirjeid (PTE, page table entry) tuumprivileegide saamiseks, vältides parooli/õiguste kontrollimist sudo protsessi mälu muutmise kaudu ja kahjustades OpenSSH-s säilitatavat RSA-2048 avatud võtit sulgvariandi rekonstruimiseks. Mälu lehekülgede rünnak õnnestus reproduseerida 7-st 10-testidud DDR4 kiibist, RSA võtme rünnak 6 kiibil, ning sudo rünnak 4 kiibil, rünnaku aeg oli vastavalt 164, 267 ja 209 sekundit.

Meetod võib samuti olla rakendatav rünnaku korraldamiseks süsteemi kaudu brauserid, et muudatusi sisse viia virtuaalmasinad või võrgurünnaku korraldamiseks. GitHubis on MIT litsentsi all avaldatud DARE tööriistade lähtekood, mis on mõeldud DRAM-i mäluaadresside mälu tagasipöördumise inseneriasutuse jaoks, samuti kaks bitide moonutamise fuzzing-testimise utiliidikomplekti - ddr4_zen2_zen3_pub DDR4 kiipide (Zen 2 ja Zen 3) jaoks ning ddr5_zen4_pub DDR5 kiipide (Zen 4) jaoks, mida saab kasutada rünnakute vastupidavuse testimiseks.

Bittide moonutamiseks kasutatakse RowHammer'i meetodit, mis põhineb DRAM mälu omadustel, mis on kahe mõõtmega ruum, koosnedes kondensaatoritest ja transistoritest. Kui sama mälu piirkonda järjestikku lugeda, põhjustab see pingefluktuatsioone ja anomaaliaid, mis võivad põhjustada naaberrakkude väikeseid laadimiskaotusi. Suure lugemissageduse korral võib naaberrakk kaotada piisavalt suures mahus laadimist, et järgmine regeneratsioonitsükkel ei suuda taastada selle algset seisundit, mille tulemusena muutuvad rakkude andmed. Uurija tuvastas AMD protsessorites kasutatud füüsilise mälu kaardistamise ja mälu uuendamise sünkroniseerimise eripärad, mis võimaldasid luua DRAM-i madalama taseme aadressimist, määrata naaberrakkude aadressid, välja töötada vahemälu ümbersuunamise meetodid ning arvutada mustrid ja operatsioonide sageduse, mis viivad laadimise kadumiseni.
RowHammeri kaitsmiseks kasutavad kiibitootjad TRR-mehhanismi (Target Row Refresh), mis blokeerib rakkude moonutamise teatud juhtudel, kuid ei kaitse kõigi võimalike rünnakute eest. Kõige tõhusam kaitsemeetod jääb endiselt vigade paranduse mälu (ECC) kasutamiseks, mis keerukustab rünnakute läbiviimist, kuid ei välista neid täielikult. Eduka rünnaku tõenäosust vähendab ka mälu regeneratsiooni sageduse suurendamine.
AMD on avaldanud aruande probleemist, kus öeldakse, et AMD protsessorites kasutatakse mälu kontrollerit, mis vastab DDR spetsifikatsioonidele, ja kuna rünnaku edukus sõltub peamiselt süsteemi ja DRAM mälu seadistustest, tuleb probleemide lahendamise küsimustega pöörduda mälu ja süsteemide tootjate poole. Rünnaku klassi Rowhammer keerukamaks muutmise olemasolevatest meetoditest mainitakse ECC-mälu kasutamist, mäluregeneratsiooni sageduse suurendamist, viibitud regeneratsioonirežiimi väljalülitamist ja protsessorite kasutamist, mille kontrollerid toetavad DDR4 (1., 2. ja 3. põlvkond AMD EPYC 'Naple', 'Rome' ja 'Milan') MAC (Maximum Activate Count) režiimi ja DDR5 (4. põlvkond AMD EPYC) RFM (Refresh Management).
Allikas: opennet.ru
