I ricercatori del Centro Helmholtz per la sicurezza informatica (CISPA) hanno pubblicato i risultati di uno studio sulla sicurezza dei processori basati sull'architettura RISC-V e hanno rivelato informazioni su una vulnerabilità soprannominata GhostWrite. La vulnerabilità riguarda i processori RISC-V XuanTie C910, prodotti dalla compagnia cinese T-Head (sussidiaria di Alibaba) e sviluppati come progetti open source. La vulnerabilità consente a un attaccante con accesso non privilegiato e limitato al sistema di leggere e scrivere in qualsiasi area della memoria fisica, oltre a ottenere accesso al controllo dei dispositivi periferici, come le schede di rete che utilizzano MMIO (Memory-Mapped Input/Output).
La vulnerabilità è causata da carenze nell'architettura del processore relative all'isolamento delle istruzioni del processore aggiunte dal produttore, che ampliano l'architettura del set di istruzioni RISC-V e consentono l'accesso diretto alla DRAM, bypassando i meccanismi di memoria virtuale. Il funzionamento di alcune istruzioni avanzate direttamente con la memoria fisica anziché con la memoria virtuale permette di eludere l'isolamento della memoria tra i processi.
La tecnica di attacco preparata è riproducibile al 100% e richiede l'esecuzione del proprio codice nel giro di pochi microsecondi. I metodi di isolamento software, come i contenitori e gli ambienti sandbox, non ostacolano l'esploitazione della vulnerabilità. L'unico modo per bloccare la vulnerabilità è disabilitare completamente il supporto per le estensioni vettoriali, il che comporta una riduzione delle prestazioni nei test rvv-bench del 33% (nell'annotazione del rapporto è indicato il 77%, mentre nella pagina di sintesi il 33%, con dettagli che menzionano una diminuzione delle prestazioni di memcpy del 33% e di memset dell'8%), e riduce di circa la metà il set di istruzioni del processore disponibile per le applicazioni.
La CPU XuanTie C910 è uno dei chip RISC-V più performanti attualmente disponibili sul mercato e già ampiamente utilizzati in server sistemi cloud e laptop. Ad esempio, il problema si manifesta nei server Scaleway Elastic Metal RV1, nei cluster Lichee Cluster 4A, nel laptop Lichee Book 4A, nella console di gioco Lichee Console 4A, nel computer portatile Lichee Pocket 4A, nei PC monoboard Sipeed Lichee Pi 4A, Milk-V Meles e BeagleV-Ahead.
Come esempio, i ricercatori hanno preparato un exploit che consente a un utente non privilegiato di ottenere i diritti di root in Linux. L'exploit modifica il contenuto della tabella delle pagine in memoria, utilizzata per la traduzione degli indirizzi virtuali in indirizzi fisici, per ottenere indirizzi virtuali associati a qualsiasi indirizzo fisico. È stato inoltre preparato un esempio di exploit per leggere il contenuto della memoria del kernel e di altri processi, che consente di estrarre chiavi di crittografia e password memorizzate in memoria.
Inoltre, i ricercatori hanno identificato altre due vulnerabilità architetturali meno pericolose: una riguarda i processori T-Head XuanTie C906 e l'altra i T-Head XuanTie C908. Entrambe le vulnerabilità si limitano a un attacco di denial-of-service causato dall'arresto del CPU. Le vulnerabilità possono rappresentare un pericolo per le piattaforme cloud costruite su chip T-Head XuanTie, poiché se si ha accesso all'esecuzione di codice in un ambiente cloud, è possibile interrompere anche il funzionamento di altri utenti serviti sulla stessa server.
I problemi sono stati identificati utilizzando il framework RISCVuzz, creato per il fuzzing testing dei CPU. Il framework identifica differenze nell'implementazione delle stesse istruzioni estese su diversi CPU, in base all'ipotesi che, a causa dell'assenza di un registro unico per le estensioni del set di istruzioni RISC-V, istruzioni codificate in modo identico su chip di diversi produttori possano comportare azioni diverse. Il controllo ha comportato il confronto del comportamento nella gestione delle istruzioni del processore su diversi CPU RISC-V e l'analisi di potenziali vulnerabilità in situazioni in cui si sono osservate divergenze nel comportamento.
Fonte: opennet.ru
