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?