Ripristino dello stato FP pigro – Wikipedia


Vulnerabilità della sicurezza del processore Intel

Perdita dello stato pigro della FPU (CVE2018-3665), indicato anche come Ripristino dello stato FP lento(1) O PigroFP,(2)(3) è un vulnerabilità della sicurezza influenzando processore Intel CPU.(1)(4) La vulnerabilità è causata da una combinazione di difetti nel file esecuzione speculativa tecnologia presente nelle CPU interessate(1) e come gestiscono determinati sistemi operativi cambio di contesto sul unità in virgola mobile (FPU).(2) Sfruttando questa vulnerabilità, un local processi può far trapelare il contenuto dei registri FPU che appartengono ad un altro processo. Questa vulnerabilità è legata a Spettro E Fusione vulnerabilità che sono state rese pubbliche nel gennaio 2018.

Lo ha annunciato il Intel il 13 giugno 2018, dopo essere stato scoperto dai dipendenti di AmazzoniaTecnologia Cyberus e SYSGO.(1)(UN)

Oltre ad essere utilizzato per aritmetica in virgola mobilei registri FPU vengono utilizzati anche per altri scopi, inclusa la memorizzazione di dati crittografici quando si utilizza il file Set di istruzioni AESpresente in molte CPU Intel.(3) Ciò significa che questa vulnerabilità può consentire materiale chiave essere compromesso.(3)

Meccanismo(modificare)

Il punto mobile e SIMD i registri sono grandi e non vengono utilizzati da ogni attività (o thread) nel sistema. Per rendere più veloce il cambio di contesto, i microprocessori più comuni supportano la commutazione dello stato lento. Invece di memorizzare lo stato completo durante un cambio di contesto, il sistema operativo può semplicemente contrassegnare la FPU come “non disponibile” nella speranza che l’attività commutata non ne abbia bisogno. Se il sistema operativo ha indovinato correttamente, il tempo viene risparmiato. Se l’ipotesi è sbagliata, la prima istruzione FPU o SIMD causerà una trappola nel sistema operativo, che potrà quindi salvare lo stato nell’attività precedente e caricare lo stato corretto per l’attività corrente.

In CPU fuori servizio, la condizione “FPU non disponibile” non viene rilevata immediatamente. (In effetti, quasi non può essere rilevato immediatamente, poiché potrebbero esserci più istruzioni che causano errori in esecuzione simultaneamente e il processore deve accettarle Primo errore riscontrato per preservare l’illusione dell’esecuzione in ordine. L’informazione su quale sia la prima non è disponibile fino alla fase di ritiro in ordine.) Il processore esegue speculativamente l’istruzione utilizzando il contenuto del registro dell’attività precedentee alcune istruzioni seguenti, e solo successivamente rileva la condizione di FPU non disponibile. Sebbene tutto lo stato dell’architettura venga riportato all’inizio dell’istruzione che ha causato l’errore, è possibile utilizzare parte dello stato della FPU come indirizzo in un carico di memoria, attivando un caricamento nella cache del processore. Lo sfruttamento segue quindi lo stesso schema di tutte le vulnerabilità della famiglia Spectre: come lo stato della cache non stato dell’architettura (la cache influisce solo sulla velocità, non sulla correttezza), il carico della cache lo è non annullato e l’indirizzo, inclusa parte dello stato del registro dell’attività precedente, può essere successivamente rilevato misurando il tempo impiegato per accedere a diversi indirizzi di memoria.

È possibile sfruttare questo bug senza attivare effettivamente alcuna trappola del sistema operativo. Mettendo l’accesso alla FPU all’ombra di una forzatura previsione errata del ramo (ad esempio utilizzando a retpoline) il processore eseguirà comunque il codice in modo speculativo, ma riavvolgerà il ramo previsto in modo errato e non eseguirà mai effettivamente la trappola del sistema operativo. Ciò consente di ripetere rapidamente l’attacco, leggendo rapidamente l’intero stato del registro FPU e SIMD.

Mitigazione(modificare)

È possibile mitigare la vulnerabilità del sistema operativo e ipervisore livelli ripristinando sempre lo stato della FPU quando si cambiano i contesti del processo.(6) Con una soluzione del genere, no firmware è necessario l’aggiornamento. Alcuni sistemi operativi già non ripristinavano pigramente i registri FPU per impostazione predefinita, proteggendo i sistemi operativi sulle piattaforme hardware interessate, anche se esisteva il problema hardware sottostante.(6) Sul sistema operativo Linux che utilizza il kernel 3.7 o successivo, è possibile forzare il kernel a ripristinare rapidamente i registri FPU utilizzando il comando eagerfpu=on parametro del kernel.(3) Inoltre, molti software di sistema fornitori e progetti, inclusi Distribuzioni Linux,(7) OpenBSD,(8) E Xen(4) hanno rilasciato patch per risolvere la vulnerabilità.

  1. ^ IL OpenBSD project afferma di aver scoperto la vulnerabilità in modo indipendente.(5)

Guarda anche(modificare)

Riferimenti(modificare)

link esterno(modificare)




Source link

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna in alto