Spettro / fusione su una GPU

54

Le GPU sono vulnerabili agli attacchi di spettro / fusione, dal momento che hanno la maggior parte di ciò che rende le CPU attaccabili? C'è qualche informazione nella VRAM, che causerebbe problemi se fosse stata rubata?

    
posta Bálint 08.01.2018 - 11:42
fonte

4 risposte

46

Prima di tutto non ti aspetteresti normalmente che la memoria del kernel fosse mappata in una GPU. Anche se le GPU moderne generalmente non hanno molto supporto per la condivisione della memoria tra i processi.

Ci sono stati certamente articoli di ricerca sull'esecuzione speculativa all'interno di una GPU - Esecuzione speculativa su GPU: uno studio esplorativo; Liu, Eisenbeis, Gaudiot - ma non credo che venga fatto attivamente a livello hardware da qualsiasi dispositivo esistente.

Quindi, anche se teoricamente non c'è nulla che impedisca la creazione di una configurazione GPU / OS che possa permetterlo, dubito che ciò sia possibile su tutti i prodotti esistenti.

    
risposta data 08.01.2018 - 11:52
fonte
18

Una GPU (Graphical Processing Unit) non è vulnerabile agli attacchi di spettro / fusione.

Questo è dovuto a vari motivi:

  1. Una GPU è un processore completamente diverso.
  2. Non esegue il codice privilegiato (ad esempio il codice del kernel).
  3. Non esegue il sistema operativo.
  4. È ottimizzato per i calcoli vettoriali.
  5. Il suo codice micro è costruito in modo completamente diverso.
  6. È (molto spesso) non ha protezione per il codice privilegiato (come gli anelli di esecuzione su una CPU).
  7. Non ha accesso ai registri della CPU (direttamente), ha DMA (Direct Memory Access) ma anche molti altri dispositivi.
  8. Esiste solo una ricerca limitata su questo fatto da parte degli esperti di sicurezza, quindi nessuno è sicuro che non sia vulnerabile.
  9. Per quanto riguarda l'avere le stesse parti, queste parti sono condivise tra molti dispositivi o simili nel design. la memoria o l'esempio di una GPU sono mappati in modo diverso rispetto alla memoria di una CPU (sebbene condividano uno standard elettrico).
  10. L'accesso DMA dovrebbe essere limitato al livello di esecuzione corrente, poiché la scheda grafica è normalmente controllata dal kernel, nessuna applicazione a livello utente può accedervi direttamente. O inviare il codice ad esso. (Esistono driver per facilitare l'accesso a livello utente e limitare ciò che possono fare.) Per massimizzare le funzioni utilizzabili e non far saltare la carta (impostando impostazioni illegali ad esempio).
  11. Il codice che può essere eseguito sulla GPU è molto limitato in ciò che può eseguire (il set di istruzioni è limitato) DMA è, ad esempio, consentito solo indirettamente (prima caricarlo nella memoria delle schede grafiche piuttosto che l'accesso è concesso e viceversa).

TLDR; Le GPU non sono CPU e non sono progettate per essere multiutente / applicazione.  Hanno una certa protezione contro gli abusi ma la maggior parte di questo non è ancora stata testata dagli esperti di sicurezza.

    
risposta data 08.01.2018 - 12:06
fonte
17

Nvidia ha rilasciato aggiornamenti oggi che trattano i problemi. Quindi presumo che ci siano dei rischi dal momento che hanno creato degli aggiornamenti.

link

Table 2.1 Security Updates for NVIDIA Software Vulnerabilities CVE ID NVIDIA Issue Number Description CVE-2017-5753 1975134 Computer systems with microprocessors utilizing speculative execution and branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis. For more information on this issue, see the NVIDIA GPU security updates for speculative side channel Security Bulletin posted on the NVIDIA Product Security page

E cita esplicitamente GeForce nel summenzionato post link

Affected Products

Product                | OS
GeForce, Quadro, NVS   | Windows, Linux, FreeBSD, Solaris
Tesla                  | Windows, Linux
    
risposta data 09.01.2018 - 15:43
fonte
1

Fondamentalmente Meltdown e Spectre sono attacchi di canale laterale che sfruttano le debolezze dei processi privilegiati e privilegiati che condividono le stesse risorse, la disponibilità di risorse che sono informazioni non protette e dove il lato non privilegiato può ingannare il lato privilegiato nel consumare risorse in un modo che dipende da un segreto, anche se e perché la richiesta è in definitiva cancellata o respinta. La GPU condivide certamente risorse e processi non privilegiati in grado di eseguire il codice lì. Se quel codice è in grado di rilevare conflitti di risorse e richiedere dati che non si suppone (e non) di ricevere, non escluderei la possibilità di attacchi simili che coinvolgono la GPU.

    
risposta data 09.01.2018 - 08:55
fonte

Leggi altre domande sui tag