Blacksmith - un nou atac asupra memoriei DRAM și cipurilor DDR4

O echipă de cercetători de la ETH Zurich, Vrije Universiteit Amsterdam și Qualcomm au publicat o nouă metodă de atac RowHammer care poate modifica conținutul biților individuali de memorie dinamică cu acces aleatoriu (DRAM). Atacul a fost numit de cod Blacksmith și identificat ca CVE-2021-42114. Multe cipuri DDR4 echipate cu protecție împotriva metodelor de clasă RowHammer cunoscute anterior sunt susceptibile la această problemă. Instrumentele pentru testarea sistemelor dumneavoastră pentru vulnerabilități sunt publicate pe GitHub.

Amintiți-vă că atacurile clasei RowHammer vă permit să distorsionați conținutul biților de memorie individuali prin citirea ciclică a datelor din celulele de memorie învecinate. Deoarece memoria DRAM este o matrice bidimensională de celule, fiecare constând dintr-un condensator și un tranzistor, efectuarea de citiri continue a aceleiași regiuni de memorie are ca rezultat fluctuații de tensiune și anomalii care provoacă o mică pierdere de încărcare în celulele învecinate. Dacă intensitatea citirii este mare, atunci celula vecină poate pierde o cantitate suficient de mare de încărcare, iar următorul ciclu de regenerare nu va avea timp să-și restabilească starea inițială, ceea ce va duce la o modificare a valorii datelor stocate în celulă. .

Pentru a proteja împotriva RowHammer, producătorii de cipuri au propus mecanismul TRR (Target Row Refresh), care protejează împotriva coruperii celulelor din rândurile adiacente, dar deoarece protecția s-a bazat pe principiul „securității prin obscuritate”, nu a rezolvat problema la rădăcina, dar protejată numai de cazuri speciale cunoscute, ceea ce a făcut mai ușor să găsiți modalități de a ocoli protecția. De exemplu, în luna mai, Google a propus metoda Half-Duble, care nu a fost afectată de protecția TRR, deoarece atacul a afectat celule care nu erau direct adiacente țintei.

Noua metodă a lui Blacksmith oferă o modalitate diferită de a ocoli protecția TRR, bazată pe acces neuniform la două sau mai multe șiruri de agresor la frecvențe diferite pentru a provoca scurgeri de încărcare. Pentru a determina modelul de acces la memorie care duce la scurgerile de încărcare, a fost dezvoltat un fuzzer special care selectează automat parametrii de atac pentru un anumit cip, variind ordinea, intensitatea și sistematicitatea accesului la celule.

O astfel de abordare, care nu este asociată cu influențarea acelorași celule, face ca metodele actuale de protecție TRR să fie ineficiente, care într-o formă sau alta se rezumă la numărarea numărului de apeluri repetate către celule și, atunci când sunt atinse anumite valori, inițierea reîncărcării. a celulelor vecine. În Blacksmith, modelul de acces este răspândit în mai multe celule simultan din diferite părți ale țintei, ceea ce face posibilă obținerea scurgerii de încărcare fără a atinge valorile de prag.

Metoda s-a dovedit a fi semnificativ mai eficientă decât metodele propuse anterior pentru ocolirea TRR - cercetătorii au reușit să obțină distorsiuni de biți în toate cele 40 de cipuri de memorie DDR4 achiziționate recent, fabricate de Samsung, Micron, SK Hynix și un producător necunoscut (producătorul a fost nespecificat pe 4 jetoane). Pentru comparație, metoda TRRespass propusă anterior de aceiași cercetători a fost eficientă pentru doar 13 din 42 de cipuri testate la acel moment.

În general, metoda Blacksmith este de așteptat să se aplice la 94% din toate cipurile DRAM de pe piață, dar cercetătorii spun că unele cipuri sunt mai vulnerabile și mai ușor de atacat decât altele. Utilizarea codurilor de corectare a erorilor (ECC) în cipuri și dublarea ratei de reîmprospătare a memoriei nu oferă protecție completă, dar complică operarea. Este de remarcat faptul că problema nu poate fi blocată în cipurile deja lansate și necesită implementarea unei noi protecție la nivel hardware, astfel încât atacul va rămâne relevant pentru mulți ani.

Exemplele practice includ metode de utilizare a Blacksmith pentru a modifica conținutul intrărilor din tabelul paginii de memorie (PTE, intrarea tabelului de pagini) pentru a obține privilegii de kernel, corupând cheia publică RSA-2048 stocată în memorie în OpenSSH (puteți aduce cheia publică în mașina virtuală a altcuiva pentru a se potrivi cu cheia privată a atacatorului pentru a se conecta la VM-ul victimei) și ocoliți verificarea acreditărilor modificând memoria procesului sudo pentru a obține privilegii de root. În funcție de cip, este nevoie de oriunde de la 3 secunde la câteva ore de timp de atac pentru a schimba un bit țintă.

În plus, putem remarca publicarea cadrului deschis LiteX Row Hammer Tester pentru testarea metodelor de protecție a memoriei împotriva atacurilor clasei RowHammer, dezvoltat de Antmicro pentru Google. Cadrul se bazează pe utilizarea FPGA pentru a controla complet comenzile transmise direct către cipul DRAM pentru a elimina influența controlerului de memorie. Setul de instrumente în Python este oferit pentru interacțiunea cu FPGA. Gateway-ul bazat pe FPGA include un modul pentru transferul de date de pachete (definește modelele de acces la memorie), un Payload Executor, un controler bazat pe LiteDRAM (procesează toată logica necesară pentru DRAM, inclusiv activarea rândurilor și actualizarea memoriei) și un CPU VexRiscv. Dezvoltarile proiectului sunt distribuite sub licenta Apache 2.0. Sunt acceptate diverse platforme FPGA, inclusiv Lattice ECP5, Xilinx Series 6, 7, UltraScale și UltraScale+.

Sursa: opennet.ru

Adauga un comentariu