Gli ambienti virtualizzati sono vulnerabili all'attacco di Row Hammer?

12

Row Hammer è un exploit che si affida ai difetti della RAM per ottenere un accesso illimitato al contenuto della RAM, consentendo di leggere / scrivere memoria altrimenti protetta e ottenere privilegi più elevati sul sistema.

Per funzionare, questo exploit accederà ad una fila di memoria legittimamente accessibile in un loop ad una velocità molto alta e senza cache, e la frequenza di questa operazione indurrà una variazione nel valore della riga adiacente, limitata.

Wikipedia descrive l'exploit come segue:

By combining the disturbance errors with memory spraying, this exploit is capable of altering page table entries (PTEs) used by the virtual memory system for mapping virtual addresses to physical addresses, which results in the exploit gaining unrestricted memory access.

Per quanto ne so, mentre questo exploit può essere in grado di fornire all'utente malintenzionato un privilegio di Super User su un sistema guest (non parlo di "root" dato che questo attacco non dipende dal SO), mi chiedo se può davvero consentirgli di sfuggire al guest virtualizzato e raggiungere gli altri ospiti o il sistema host stesso.

  • Sebbene questo attacco sia descritto come fornire "accesso illimitato a tutta la memoria fisica installata su un computer" , questa memoria deve essere ancora indirizzabile dal processo dannoso. Secondo la mia comprensione, una memoria virtuale "ospite" è mappata su una regione della memoria fisica effettiva e esistono diverse misure, sia sull'hardware (CPU con hardware-assisted virutalization set di istruzioni) e il software (il software di virtualizzazione) livelli, per garantire che non sarà in grado di indirizzare la memoria al di fuori di quest'area.
  • Per accedere alle aree di memoria normalmente riservate, il processo deve modificare le PTE. All'interno del guest, sono accessibili solo le PTE del sistema guest, non le PTE di quella host.
  • Esiste un problema di gallina e uova: al fine di aggirare l'accesso alla memoria imposto dal software di virtualizzazione, il processo deve alterarne la memoria. Tuttavia, poiché il software di virtualizzazione è in esecuzione sul sistema host, il processo dannoso deve prima essere in grado di indirizzare la memoria del sistema host per farlo.
  • La definizione di Wikipedia menziona la modifica delle PTE (voci delle tabelle delle pagine). Le moderne CPU forniscono la Tanslation Address di secondo livello ( SLAT , ovvero paging annidato o nidificato per isolare le tabelle delle pagine degli ospiti a livello hardware). Le mie supposizioni sopra sarebbero bypassabili, migliorerebbe la resistenza dei sistemi virtualizzati contro Row Hammer?
posta WhiteWinterWolf 22.06.2016 - 11:58
fonte

3 risposte

3

Dipende dal tuo avversario, anche se dirò di no.

Al momento, non ci sono vulnerabilità note per questo vettore di attacco. Quindi, se i tuoi avversari sono degli script kiddies, allora sei al sicuro.

Sarà una scatola di cioccolatini (non sapendo cosa potresti ottenere), quindi un attacco inutile:

  • Probabilmente una vulnerabilità potrebbe consentire a qualcuno di leggere o modificare una riga diversa, ma non sapere quali informazioni sono dove lo rende quasi inutile, eliminando la maggior parte degli avversari.
  • Il livello HV può re-mappare o anche scambiare la memoria in qualsiasi momento
  • L'HV potrebbe avere una dozzina o un centinaio di VM diverse, non c'è modo di sceglierne uno.
  • L'HV potrebbe fare qualcosa come VMotion e spostarlo su un host hardware diverso
  • Anche eseguire Row Hammer sulla stessa VM per ottenere privilegi elevati è soggetto a quanto sopra, rendendolo imprevedibile.

Quando la tua minaccia / avversario ha un finanziamento illimitato e ti prende di mira in modo specifico, tutte le scommesse sono spente, anche se probabilmente, cercheranno un percorso più facile nell'ambiente, inclusi gli attacchi fisici.

Dato il numero di vulnerabilità di 0 giorni, anche quelle sugli Hypervisor, il martello di Row sembra un po 'inutile.

    
risposta data 22.07.2016 - 23:52
fonte
1

Penso che questo debba essere suddiviso in domande più piccole a cui è possibile rispondere in modo ragionevole.

La VM può accedere ripetutamente allo stesso indirizzo di memoria abbastanza rapidamente da attivare l'effetto martello riga?

Non vedo alcuna ragione per cui sarebbe impossibile. È certamente possibile che qualcosa sull'ambiente virtualizzato possa finire per interferire con quel processo. Un ambiente virtualizzato potrebbe teoricamente monitorare quel tipo di pattern di accesso e provare a bloccarlo, ma sospetto che il sovraccarico sarebbe piuttosto negativo e avrebbe un impatto negativo sulle prestazioni. Non sono a conoscenza di nessuno che in realtà lo implementa. È anche certamente possibile che possa interferire accidentalmente con il processo. Come menzionato da MikeP, potrebbe capitare di rimappare la memoria nel mezzo dell'attacco o attivare una migrazione su un altro server nel mezzo di un attacco o anche semplicemente anticipare la VM per consentire l'esecuzione di un'altra VM. Supponevo che la VM avrebbe cercato di evitare di rimappare la memoria che è stata pesantemente utilizzata in quanto avrebbe probabilmente un impatto negativo sulle prestazioni, ma una migrazione VM potrebbe essere attivata se l'ambiente virtuale vede l'attacco di riga come pressione di memoria e sta provando a "aggiustare" quello.

La prossima domanda è: se riesci a far girare un po ', puoi usarlo per realizzare qualcosa?

IMO questo diventa molto più complicato. L'ambiente virtualizzato aggiunge almeno un ulteriore livello di traduzione degli indirizzi che rende l'identificazione di un bersaglio di martello di riga e che l'obiettivo potrebbe cambiare in qualsiasi momento. Potrebbe anche nascondere informazioni sul layout fisico sottostante necessario per identificare correttamente una destinazione. Penso che queste sfide in cima alle potenziali sfide, anche innescando il bit flip, rendano questo poco pratico e probabilmente rendano impossibile la creazione di un exploit affidabile. È molto più probabile che tu crei essenzialmente un attacco DoS bloccando una VM o l'intero ambiente virtuale rispetto a un'escalation di privilegi affidabile.

    
risposta data 23.07.2016 - 00:19
fonte
0

Il successo teorico di un Row Hammer Attack nel tuo scenario è dato. Ma le possibilità pratiche potrebbero essere limitate o la complessità della catena di attacco molto alta. Questa non è una limitazione di Row Hammer per sé , è una dipendenza dello scenario del mondo reale. Un utente malintenzionato in un Ospite dovrebbe influire sull'host per ottenere privilegi elevati o per influenzare direttamente un altro Ospite . Questo potrebbe essere possibile in alcune circostanze, ma richiederebbe un'ottima preparazione, molto tempo e anche un po 'di fortuna.

    
risposta data 26.06.2016 - 09:01
fonte

Leggi altre domande sui tag