I ricercatori del Politecnico di Zurigo, in collaborazione con gli ingegneri di Google, hanno sviluppato una nuova tecnica di attacco di tipo Rowhammer chiamata Phoenix (CVE-2025-6202), che consente di eludere i meccanismi di protezione TRR (Target Row Refresh) implementati nei chip DDR5, progettati per prevenire la distorsione delle celle di memoria a causa della perdita di carica. È stato pubblicato un prototipo di exploit che permette di modificare il contenuto di un singolo bit nella memoria RAM, aumentando così i privilegi nel sistema. È stata effettuata una dimostrazione dell'attacco su un PC con processore AMD basato sull'architettura Zen 4 e memoria DDR5 di SK Hynix, eseguendo operazioni tipiche da desktop.
L'attacco RowHammer consente di alterare il contenuto di singoli bit di memoria DRAM attraverso la lettura ciclica dei dati dalle celle di memoria adiacenti. Poiché la memoria DRAM è costituita da un array bidimensionale di celle, ognuna delle quali è composta da un condensatore e un transistor, la lettura continua della stessa area di memoria provoca fluttuazioni di tensione e anomalie che possono causare una leggera perdita di carica nelle celle vicine. Se l'intensità di lettura è elevata, una cella adiacente può perdere una quantità sufficiente di carica e il successivo ciclo di rigenerazione potrebbe non riuscire a ripristinare il suo stato originale, portando a una modifica del valore dei dati memorizzati nella cella.
Il metodo di attacco Rowhammer è stato proposto nel 2014, dando inizio a un gioco del gatto e del topo tra i ricercatori della sicurezza e i produttori di hardware: i produttori di chip di memoria hanno cercato di bloccare la vulnerabilità, mentre i ricercatori hanno trovato nuovi modi per aggirarla. Ad esempio, per proteggersi dal Rowhammer, i produttori di chip hanno introdotto il meccanismo TRR (Target Row Refresh), ma si è scoperto che esso blocca la distorsione delle celle solo in casi specifici, senza proteggere contro tutte le possibili varianti di attacco. Le tecniche di attacco sono state sviluppate per i chip DDR3, DDR4 e DDR5 su sistemi con processori Intel, AMD e ARM, così come per la memoria video utilizzata nelle schede grafiche NVIDIA. Inoltre, sono stati trovati modi per aggirare la correzione degli errori ECC e sono state proposte varianti di attacco attraverso la rete e tramite l'esecuzione di codice JavaScript nel browser.
Un fattore chiave per aggirare la protezione contro la distorsione delle celle di memoria nel DRAM è comprendere la logica di funzionamento del meccanismo TRR, che si basa principalmente sulla segretezza dei dettagli di implementazione e sul principio "sicurezza attraverso l'oscurità". Per determinare la logica di funzionamento e condurre un reverse engineering, i ricercatori hanno creato schede speciali basate su FGPA Arty-A7 e ZCU104, che consentono di testare i moduli di memoria DDR5 SO-DIMM e RDIMM, identificare schemi di accesso alle celle di memoria, determinare quali comandi DDR a basso livello vengono trasmessi dopo operazioni software sulla memoria e analizzare le risposte a questi.

È emerso che la protezione nei chip DDR5 analizzati è implementata senza comandi aggiuntivi per gestire la frequenza di aggiornamento della memoria e fa affidamento su circuiti con una frequenza di ricarica variabile delle celle. Per condurre con successo un attacco Rowhammer in queste condizioni è necessaria una precisa monitorizzazione di migliaia di operazioni di aggiornamento delle celle. In tali circostanze, i metodi di attacco Rowhammer esistenti in precedenza si sono dimostrati inapplicabili, portando i ricercatori a sviluppare un nuovo metodo che implementa l'auto-correzione dei pattern di accesso man mano che vengono identificate le operazioni di aggiornamento della memoria saltate durante l'attacco.
Il metodo si è rivelato efficace e durante i test ha permesso di ottenere un'alterazione controllata del bit di memoria su tutti e 15 i chip DDR5 della SK Hynix (che detiene il 36% del mercato DRAM) prodotti dalla fine del 2021 fino alla fine del 2024. Un'alterazione di un singolo bit è risultata sufficiente per creare un exploit che consente di ottenere accesso root nel sistema attaccando un sistema con CPU AMD Ryzen 7 7700X e memoria SK Hynix DDR5 in 109 secondi. Per bloccare il metodo di attacco proposto, si consiglia di aumentare la frequenza di aggiornamento della memoria di tre volte.
Tra i metodi di sfruttamento che consentono di ottenere diritti root tramite l'alterazione di un bit, sono state esaminate le seguenti tecniche: modifica del contenuto delle voci della tabella delle pagine di memoria (PTE, page table entry) per ottenere privilegi di kernel; danneggiamento della chiave RSA-2048 memorizzata in OpenSSH (è possibile riportare la chiave pubblica su un sistema di terzi. macchina virtuale in conformità con la chiave privata dell'attaccante per connettersi alla VM della vittima); eludere il controllo delle autorizzazioni tramite la modifica della memoria del processo sudo. Il metodo con PTE si è rivelato efficace per tutti i 15 chip testati, l'attacco tramite RSA è riuscito per 11 chip, mentre tramite sudo per 5.

Nell'exploit per collocare le tabelle delle pagine di memoria nelle celle DRAM selezionate è stata impiegata la tecnica Rubicon, svelata simultaneamente con l'attacco Phoenix. Rubicon manipola le peculiarità dell'ottimizzazione nel sistema di allocazione della memoria del kernel Linux e consente di ottenere l'allocazione di memoria in aree con un diverso valore di "migratetype", riservate a operazioni privilegiate. La presenza del problema è stata confermata nei kernel Linux a partire dalla versione 5.4 fino alla 6.8, ma teoricamente la vulnerabilità interessa tutti i kernel con il meccanismo di allocazione della memoria Zoned Buddy Allocator.
Oltre a semplificare l'esecuzione di attacchi di tipo Rowhammer, la tecnica Rubicon è applicabile anche per aumentare l'efficacia degli attacchi microarchitetturali, come Spectre, e per facilitare l'individuazione della posizione in memoria dei dati segreti che devono essere estratti tramite perdite durante l'esecuzione speculativa delle istruzioni. Rubicon consente di eliminare la lunga fase di scansione della memoria e di identificazione dei file, come \/etc\/shadow. Invece, è possibile iniziare immediatamente a sfruttare le vulnerabilità microarchitetturali, grazie alla collocazione predefinita del file a un indirizzo fisico noto. Ad esempio, l'applicazione del metodo Rubicon ha permesso di accelerare la perdita di dati su un sistema con CPU Intel i7-8700K da 2698 a 9.5 secondi (284 volte più veloce), e su CPU AMD EPYC 7252, da 189 a 27.9 secondi (6.8 volte più veloce).

Nel frattempo, un altro gruppo di ricercatori dell'Università di George Mason ha dimostrato l'applicabilità degli attacchi di tipo Rowhammer per compromettere i sistemi di intelligenza artificiale. I ricercatori hanno proposto il metodo OneFlip, che consente di modificare specificamente il comportamento dei modelli AI attraverso la distorsione di 1 bit di informazioni in memoria. È disponibile un esempio di codice per l'inserimento di una modifica trojan in una rete neurale. È stato dimostrato come la modifica di un solo bit possa essere utilizzata per alterare il funzionamento del modello di pilota automatico e cambiare l'interpretazione del segnale stradale "Stop" in "Limite di velocità". È stata anche considerata l'applicazione del metodo per eludere i sistemi di riconoscimento facciale. Per i modelli che memorizzano i pesi sotto forma di numeri interi a 32 bit, il successo dell'attacco è valutato al 99,9% senza influire sulle caratteristiche originali del modello.

Fonte: opennet.ru
