Zürihi Tehnikaülikooli teadlased on välja töötanud ZenHammer rünnaku, mis on RowHammer tüüpi rünnaku variant, mis muudab dünaamilise juhusliku mälus (DRAM) üksikute bittide sisu ning on kohandatud AMD protsessoritega platvormide jaoks. Varasemad RowHammer tüüpi rünnakud piirdusid Intel protsessoripõhiste süsteemidega, kuid uuring on näidanud, et mälurakkude moonutusi on võimalik saavutada ka AMD mälukontrolleritega platvormidel.
Meetodi efektiivsust on demonstreeritud AMD Zen 2 ja Zen 3 süsteemides, kus on kasutatud kolme peamise tootja (Samsung, Micron ja SK Hynix) DDR4 mälusid. Rünnak suudab edukalt ületada mälukruntides rakendatavat TRR (Target Row Refresh) mehhanismi, mis kaitseb kõrvutised mälurakudest tuleneva moonutamise eest. Teadlaste hinnangul on AMD Zen 3 põhised süsteemid oluliselt haavatavamad kui Intel Coffee Lake protsessoritega süsteemid, olles rünnatavamad ja efektiivsemad. AMD Zen 2 süsteemides õnnestus moonutusi saavutada 7-l 10-st testitud DDR4 kiibist, samas kui Zen 3 süsteemides 6-l 10-st. Teadlased analüüsisid ka võimalust rünnata AMD Zen 4 süsteeme DDR5 mäludega, kuid DDR4-le loodud rünnakumeetodi õnnestus edastada vaid 1-l 10-st testitud DDR5 mälu kiibist, samas kui rünnaku võimalus ei ole välistatud; see vajab aga tõhusamate lugemismudelite väljatöötamist, mis sobivad DDR5 seadmetele.
AMD kiipide puhul õnnestus varem väljatöötatud eksploidid kohandada, mis muudavad mälulehe sisestuste (PTE, page table entry) sisu, et saada tuumapuhkuse õigusi, ületades parooli/kinnituse kontrolli sudo protsessi mälu modifitseerimise ja OpenSSH-s talletatud RSA-2048 avaliku võtme kahjustamise kaudu, et rekonstrueerida privaatne võti. Mälulehtede rünnak õnnestus detaljeerida 7-l 10-st testitud DDR4 kiibist, RSA võtme rünnak 6 kiibil ning sudo rünnak 4 kiibil, rünnakuaegadeks vastavalt 164, 267 ja 209 sekundit.

Meetod võib samuti rakenduda rünnaku elluviimiseks süsteemile veebibrauserite kaudu, et teha muudatusi. virtuaalmasinate või korraldada ründe võrku. GitHubis on MIT litsentsi all saadaval DARE tööriistade avatud lähtekood, mis on mõeldud DRAM mälu aadresside tagasijõudmiseks, samuti kaks komplekti utiliite bitide hävitamise fuzzing-testimiseks — ddr4_zen2_zen3_pub DDR4 (Zen 2 ja Zen 3) kiipide jaoks ning ddr5_zen4_pub DDR5 (Zen 4) kiipide jaoks, mida saab kasutada oma süsteemide rünnakute suhtes haavatavuse kontrollimiseks.

Bite hävitamiseks kasutatakse RowHammeri meetodit, mis põhineb asjaolul, et DRAM-is, mis on kahes mõõtmes akude ja transistoride rakkudest koosnev massiiv, sama mäluala pidev lugemine põhjustab pinge kõikumisi ja anomaaliaid, mis põhjustavad naaberakkude väikese koormuse kadumise. Kui lugemise intensiivsus on suur, võib naaberakk kaotada piisavalt suurt kogust koormust ja järgmine regenereerimise tsükkel ei suuda taastada selle algset olekut, mis viib andmete väärtuste muutumiseni, mis on salvestatud rakku. Uurija on tuvastanud AMD protsessorite füüsilise mäluga kaardistamise ja mälu värskendamise sünkroniseerimise mehhanismide omadused, mis võimaldasid rekonstrueerida madala taseme DRAM-aadressimist, määrata naaberakkude aadresse, välja töötada kätkestamise kava, arvutada mustrid ja operatsioonide sageduse, mis põhjustavad koormuse kadumise.
RowHammeri kaitseks kasutavad kiibitootjad TRR (Target Row Refresh) mehhanismi, mis blokeerib rakkude hävitamise teatud juhtudel, kuid ei kaitse kõigi võimalike rünnakute variantide eest. Kõige tõhusam kaitsemeetod jääb mälu kasutamine vigade parandamise koodidega (ECC), mis muudab rünnakute teostamise oluliselt keeruliseks, kuid ei kõrvalda neid täielikult. Samuti aitab rünnaku edukuse tõenäosust vähendada mälu regenereerimise sageduse suurendamine.
AMD avaldas aruande probleemist, milles öeldakse, et AMD protsessorid kasutavad DDR spetsifikatsioonidele vastavaid mälukontrollereid, ning kuna rünnaku edukus sõltub peamiselt süsteemi seadistustest ja DRAM mälust, tuleks probleemide lahendamiseks pöörduda mälu ja süsteemide tootjate poole. Rünnakute raskendamiseks Rowhammeri klassis mainitakse olemasolevatest meetoditest ECC mälu kasutamist, mäluregeneratsiooni sageduse tõstmist, edasilükatud regeneratsiooni režiimi väljalülitamist ning protsessorite kasutamist, mis toetavad MAC (Maximum Activate Count) režiimi DDR4 jaoks (AMD EPYC "Naple", "Rome" ja "Milan" 1., 2. ja 3. põlvkond) ja RFM (Refresh Management) DDR5 jaoks (AMD EPYC 4. põlvkond).
Allikas: opennet.ru
