Blacksmith – uus rünnak DRAM-mälu ja DDR4-kiipide vastu

ETH Zürichi, Vrije Universiteit Amsterdami ja Qualcommi teadlaste meeskond on avaldanud uue RowHammeri ründemeetodi, mis võib muuta dünaamilise muutmälu (DRAM) üksikute bittide sisu. Rünnak kandis koodnimetust Blacksmith ja identifitseeriti kui CVE-2021-42114. Paljud DDR4 kiibid, mis on varustatud kaitsega varem tuntud RowHammer klassi meetodite vastu, on probleemile vastuvõtlikud. Tööriistad süsteemide haavatavuse testimiseks on avaldatud GitHubis.

Tuletage meelde, et RowHammer klassi rünnakud võimaldavad teil moonutada üksikute mälubittide sisu, lugedes tsükliliselt andmeid naabermälurakkudest. Kuna DRAM-mälu on kahemõõtmeline rakkude massiiv, millest igaüks koosneb kondensaatorist ja transistorist, põhjustab sama mälupiirkonna pidev lugemine pingekõikumisi ja anomaaliaid, mis põhjustavad naaberrakkudes väikese laengu kadu. Kui lugemise intensiivsus on kõrge, võib naaberrakk kaotada piisavalt suure laengu ja järgmisel regenereerimistsüklil pole aega oma esialgset olekut taastada, mis toob kaasa lahtrisse salvestatud andmete väärtuse muutumise. .

RowHammeri eest kaitsmiseks pakkusid kiibitootjad välja TRR-i (Target Row Refresh) mehhanismi, mis kaitseb naaberridade rakkude korruptsiooni eest, kuid kuna kaitse põhines “security by obscurity” põhimõttel, ei lahendanud see probleemi. juur, kuid kaitstud ainult teadaolevate erijuhtude eest, mistõttu oli lihtne leida viise, kuidas kaitsest mööda minna. Näiteks mais pakkus Google välja Half-Double meetodi, mida TRR-kaitse ei mõjutanud, kuna rünnak mõjutas rakke, mis ei olnud sihtmärgiga vahetult külgnevad.

Blacksmithi uus meetod pakub erinevat võimalust TRR-kaitsest mööda hiilimiseks, mis põhineb ebaühtlasel juurdepääsul kahele või enamale agressori stringile erinevatel sagedustel, et põhjustada laengu leket. Laengu lekkeni viiva mälu juurdepääsumustri kindlaksmääramiseks on välja töötatud spetsiaalne fuzzer, mis valib automaatselt konkreetse kiibi rünnaku parameetrid, muutes rakkude juurdepääsu järjekorda, intensiivsust ja süstemaatilisust.

Selline lähenemine, mis ei ole seotud samade rakkude mõjutamisega, muudab praegused TRR-i kaitsemeetodid ebatõhusaks, mis ühel või teisel kujul taandub korduvate rakkudele tehtud kõnede loendamisele ja teatud väärtuste saavutamisel laadimise algatamisele. naaberrakkudest. Blacksmithis jaotatakse juurdepääsumuster korraga mitme lahtri vahel sihtmärgi eri külgedelt, mis võimaldab saavutada laengu lekke ilma läviväärtusi saavutamata.

Meetod osutus oluliselt tõhusamaks kui varem pakutud meetodid TRR-ist mööda hiilimiseks – teadlastel õnnestus saavutada bitimoonutus kõigis 40 hiljuti ostetud erinevas Samsungi, Microni, SK Hynixi ja tundmatu tootja DDR4 mälukiibis (tootja oli pole täpsustatud 4 kiibil). Võrdluseks – samade teadlaste poolt varem välja pakutud TRRespassi meetod oli efektiivne vaid 13 puhul 42st sel ajal testitud kiibist.

Üldiselt peaks Blacksmithi meetod kehtima 94% kõigist turul olevatest DRAM-kiipidest, kuid teadlaste sõnul on mõned kiibid haavatavamad ja kergemini rünnatavad kui teised. Kiipides veaparanduskoodide (ECC) kasutamine ja mälu värskendussageduse kahekordistamine ei taga täielikku kaitset, küll aga raskendab tööd. Tähelepanuväärne on see, et probleemi ei saa blokeerida juba välja antud kiipides ja see nõuab uue kaitse rakendamist riistvara tasemel, nii et rünnak jääb aktuaalseks paljudeks aastateks.

Praktilised näited hõlmavad meetodeid, kuidas Blacksmithi kasutada mälu lehe tabeli kirjete sisu muutmiseks (PTE, lehekülje tabeli kirje), et saada kerneli privileege, rikkudes OpenSSH-s mällu salvestatud RSA-2048 avaliku võtme (saate tuua avaliku võtme kellegi teise virtuaalmasinat, et see sobiks ründaja privaatvõtmega, et luua ühendus ohvri virtuaalmasinaga) ja jätke mandaatide kontrollist mööda, muutes sudo protsessi mälu, et saada juurõigused. Olenevalt kiibist kulub ühe sihtbiti muutmiseks 3 sekundist mitme tunnini ründeaega.

Lisaks võime märkida avatud LiteX Row Hammer Tester raamistiku avaldamist mälukaitsemeetodite testimiseks RowHammer klassi rünnakute vastu, mille on välja töötanud Antmicro Google'ile. Raamistik põhineb FPGA kasutamisel otse DRAM-kiibile edastatavate käskude täielikuks juhtimiseks, et välistada mälukontrolleri mõju. FPGA-ga suhtlemiseks pakutakse Pythoni tööriistakomplekti. FPGA-põhine lüüs sisaldab pakettandmete edastamise moodulit (määratleb mälu juurdepääsumustrid), Payload Executorit, LiteDRAM-põhist kontrollerit (töötleb kogu DRAM-i jaoks vajalikku loogikat, sealhulgas ridade aktiveerimist ja mälu värskendamist) ja VexRiscv protsessorit. Projekti arendusi levitatakse Apache 2.0 litsentsi all. Toetatakse erinevaid FPGA platvorme, sealhulgas Lattice ECP5, Xilinx Series 6, 7, UltraScale ja UltraScale+.

Allikas: opennet.ru

Lisa kommentaar