Un grup de cercetători de la École Polytechnique Fédérale de Lausanne, Universitatea Liberă din Amsterdam și Qualcomm au publicat o nouă metodă de atac din clasa RowHammer, care permite modificarea conținutului unor biți individuali din memoria RAM dinamică (DRAM). Atacul a fost numit Blacksmith și identificat cu CVE-2021-42114. Multe cipuri DDR4, dotate cu protecție împotriva metodelor anterioare din clasa RowHammer, sunt vulnerabile la această problemă. Instrumentele pentru testarea sistemelor proprii împotriva acestei vulnerabilități sunt disponibile pe GitHub.
Trebuie să reamintim că atacurile din clasa RowHammer permit distorsionarea conținutului unor biți de memorie prin citirea ciclică a datelor din celule adiacente. Deoarece memoria DRAM reprezintă un aranjament bidimensional de celule, fiecare dintre acestea constând dintr-un condensator și un tranzistor, citirea continuă a aceleași zone de memorie duce la fluctuații de tensiune și anomalii care provoacă o pierdere minoră de sarcină în celulele vecine. Dacă intensitatea citirii este mare, celula vecină poate pierde o cantitate semnificativă de sarcină, iar următorul ciclu de regenerare nu are timp să-i restituie starea inițială, ceea ce duce la modificarea valorii stocate în celulă.
Pentru a se proteja împotriva RowHammer, producătorii de cipuri au propus mecanismul TRR (Target Row Refresh), care protejează împotriva distorsiunii celulelor din rânduri adiacente, dar deoarece protecția se bazase pe principiul „securitate prin obscuritate”, aceasta nu rezolva problema în mod fundamental și proteja doar împotriva cazurilor particulare cunoscute, ceea ce permitea găsirea ușoară a unor metode de ocolire a protecției. De exemplu, în mai, Google a propus metoda Half-Double, care nu era afectată de protecția TRR, deoarece atacul implica celule care nu erau direct adiacente țintei.
Noua metodă Blacksmith oferă o altă modalitate de a ocoli protecția TRR, bazată pe adresarea inegală a două sau mai multe rânduri-agresor cu o frecvență diferită pentru a provoca scurgeri de sarcină. Pentru a determina un model de acces la memorie care duce la scurgeri de sarcină, a fost dezvoltat un fuzzer special, care ajustează automat parametrii atacului pentru cipul specific, variind ordinea, intensitatea și sistematicitatea accesului la celule.
O astfel de abordare, nesusținută de afectarea acelorași celule, face ineficiente metodele actuale de protecție TRR, care se reduc, într-un fel sau altul, la numărarea apelurilor repetate către celule și la inițierea reprogării celulelor adiacente atunci când se ating anumite valori. În Blacksmith, modelul de acces se extinde simultan pe mai multe celule din diferite părți ale celei țintite, ceea ce permite scurgerea de sarcină fără a atinge valorile prag.
Metoda s-a dovedit a fi semnificativ mai eficientă decât metodele anterioare propuse pentru a ocoli TRR - cercetătorii au reușit să distorsioneze biții în toate cele 40 de cipuri de memorie DDR4 recent achiziționate, produse de Samsung, Micron, SK Hynix și un producător necunoscut (la 4 cipuri, producătorul nu a fost indicat). Pentru comparație, metoda TRRespass propusă anterior de aceiași cercetători s-a dovedit eficientă doar pentru 13 din cele 42 de cipuri testate la acel moment.
În general, se presupune că metoda Blacksmith este aplicabilă pentru 94% din toate cipurile DRAM disponibile pe piață, dar conform declarațiilor cercetătorilor, unele cipuri sunt mai vulnerabile și mai ușor de atacat decât altele. Utilizarea codurilor de corecție a erorilor (ECC) în cipuri și dublarea frecvenței de actualizare a memoriei nu oferă o protecție completă, dar complică exploatarea. Este demn de remarcat că problema nu poate fi blocată în cipurile deja lansate și necesită implementarea unei noi protecții la nivel hardware, astfel încât atacul va rămâne relevant încă mulți ani.
Ca exemple practice, sunt prezentate metodele de aplicare a Blacksmith pentru modificarea conținutului înregistrărilor din tabelul paginilor de memorie (PTE, page table entry) pentru obținerea privilegii de nucleu, deteriorarea cheii publice RSA-2048 stocate în memorie în OpenSSH (se poate aduce cheia publică în conformitate cu cheia privată a atacatorului pentru conectarea la VM-ul victimei) și ocolirea verificării împuternicirilor prin modificarea memoriei procesului sudo pentru obținerea privilegiilor root. În funcție de cip, pentru modificarea unui singur bit țintă este nevoie de la 3 secunde până la câteva ore de desfășurare a atacului. mașina virtuală de înregistrare a conexiunii la VM-ul victimei) și ocolirea verificării împuternicirilor prin modificarea memoriei procesului sudo pentru obținerea privilegiilor root. În funcție de cip, pentru modificarea unui singur bit țintă este nevoie de la 3 secunde până la câteva ore de desfășurare a atacului.

Pe lângă aceasta, se remarcă publicarea unui cadru deschis LiteX Row Hammer Tester pentru testarea metodologiilor de protecție a memoriei împotriva atacurilor de tip RowHammer, dezvoltat de compania Antmicro la cererea Google. Cadru se bazează pe utilizarea FPGA pentru a controla complet comenzile transmise direct în cipul DRAM, pentru a exclude influența controlerului de memorie. Pentru interacțiunea cu FPGA, se propune un instrumentar în limbajul Python. Gateway-ul bazat pe FPGA include un modul pentru transferul de date în loturi (care definește tiparele de acces la memorie), Payload Executor, un controler bazat pe LiteDRAM (care prelucrează toată logica necesară pentru DRAM, inclusiv activarea rândurilor și actualizarea memoriei) și CPU VexRiscv. Lucrările proiectului sunt distribuite sub licența Apache 2.0. Este suportată utilizarea diferitelor platforme FPGA, inclusiv Lattice ECP5, Xilinx Series 6, 7, UltraScale și UltraScale+.
Sursa: opennet.ro
