Vulnerabilità GhostWrite nei CPU RISC-V
Recentemente, è emersa una vulnerabilità critica nota come GhostWrite nel T-Head XuanTie C910, uno dei più performanti CPU RISC-V attualmente disponibili. Questo bug, a differenza di attacchi di tipo side-channel o transient-execution, è un errore diretto del processore stesso.
Come Funzionano i Sistemi Operativi Moderni
I moderni sistemi operativi collaborano con la CPU per mantenere ogni processo isolato dagli altri. Per raggiungere questo obiettivo, il sistema operativo suddivide la memoria fisica in spazi di memoria virtuale separati, uno per ogni processo. Questo meccanismo garantisce che ogni processo possa accedere solo alla propria memoria virtuale, evitando interferenze.
Architettura dell'Insieme di Istruzioni (ISA)
Il comportamento di una CPU è definito da un'architettura dell'insieme di istruzioni (ISA), che specifica le istruzioni assembly valide. Attualmente, il mercato delle CPU è dominato da due specifiche ISA: x86 e ARM, controllate da poche aziende. Questo limita la libertà di progettazione per altre aziende, poiché l'uso o la modifica di queste ISA richiede licenze costose e restrizioni. Al contrario, RISC-V è un'architettura open-source che chiunque può utilizzare e contribuire senza restrizioni, favorendo un ecosistema in continua espansione.
Il Bug GhostWrite
Il bug GhostWrite si manifesta attraverso istruzioni difettose nella sua estensione vettoriale, progettata per gestire valori di dati più grandi rispetto all'ISA di base. Queste istruzioni difettose interagiscono direttamente con la memoria fisica, eludendo l'isolamento dei processi normalmente garantito dal sistema operativo e dall'hardware. Ciò consente a un attaccante non privilegiato di scrivere in qualsiasi posizione di memoria, bypassando completamente le funzionalità di sicurezza.
Esempi di Sfruttamento di GhostWrite
Due exploit di prova dimostrano cosa può fare GhostWrite. Nel primo exploit, viene utilizzato per modificare la syscall del kernel, consentendo l'accesso root senza richiesta di password. Un video dimostra come GhostWrite possa essere utilizzato per patchare la syscall getuid del kernel. Sebbene GhostWrite possa solo scrivere in memoria, può essere sfruttato per creare una funzione di lettura modificando le tabelle di pagina in memoria. Questo consente all'attaccante di ottenere un indirizzo virtuale accessibile per qualsiasi indirizzo fisico.
Il secondo exploit mostra come questa funzione di lettura possa rivelare contenuti di memoria da un sistema. L'attaccante può riempire la memoria fisica con tabelle di pagina e, una volta modificata una di queste tabelle utilizzando GhostWrite, può leggere direttamente password segrete dalla memoria fisica.
Scoperta della Vulnerabilità
GhostWrite è stato scoperto analizzando istruzioni documentate e non documentate tramite un metodo chiamato differential fuzz-testing per CPU. Questo approccio consiste nel generare piccoli programmi, eseguirli su diverse CPU e confrontare i risultati. Quando i risultati differiscono, ciò suggerisce un problema in una delle CPU.
Chi è Colpito da Questa Vulnerabilità?
La maggior parte degli utenti non è direttamente colpita. Solo coloro che utilizzano hardware RISC-V vulnerabile, come i computer a scheda singola basati su C910 o soluzioni di cloud computing multi-utente, sono a rischio. Anche se non si è colpiti direttamente, è probabile che si interagisca in futuro con dispositivi vulnerabili.
Mitigazione della Vulnerabilità
Non esistono aggiornamenti software o patch in grado di risolvere questa vulnerabilità hardware. L'unica mitigazione consiste nel disabilitare l'estensione vettoriale nella CPU, il che impatta significativamente le prestazioni. I fornitori di servizi cloud dovrebbero disabilitare questa estensione sui CPU vulnerabili e informare i clienti riguardo all'impatto sulle prestazioni.
Impatti sulle Prestazioni
Disabilitare l'estensione vettoriale riduce notevolmente le prestazioni della CPU, specialmente per compiti che beneficiano dell'elaborazione parallela. Le applicazioni che dipendono fortemente da queste funzionalità potrebbero subire rallentamenti significativi. Nei benchmark effettuati, si è registrato un sovraccarico fino al 33% quando l'estensione vettoriale è stata disabilitata.
Conclusioni
GhostWrite non è un problema intrinseco all'ISA RISC-V, ma è specifico del design della CPU T-Head XuanTie C910. Esistono molte altre CPU RISC-V che non presentano questa vulnerabilità. La scoperta di GhostWrite sottolinea l'importanza di una continua vigilanza nella sicurezza hardware, specialmente in un'era in cui la tecnologia open-source sta guadagnando terreno.
Domande Frequenti
- GhostWrite è un attacco side-channel? No, è un bug architetturale.
- Ci sono prove di sfruttamento di questa vulnerabilità? Finora non ci sono segnalazioni di sfruttamento in ambienti reali.
- Cosa ha dichiarato T-Head? Hanno riconosciuto e riprodotto il bug, ma non sono a conoscenza di commenti pubblici o mitigazioni pianificate.