Protezione di chiavi / password su hardware virtuale (XEN, KVM, VMWare, ecc.)

15

Esiste un modo ragionevole per proteggere i dati sull'hardware virtuale? Ciò che intendo per "hardware virtuale" sono i vari sistemi ospitati che possono essere noleggiati da vari hoster online, che funzionano su XEN, KVM, VMWare ESXi e così via.

Con l'hardware dedicato reale si può in qualche modo presumere che il sistema stesso non sia stato compromesso se:

  1. il software può essere assunto come sicuro, cioè il software in esecuzione su quella macchina (ssh, webserver, ecc.) può essere considerato non essere stato sfruttato o forzato bruto
  2. l'hardware può essere assunto come non compromesso, ovvero la macchina non è andata offline in modo che un utente malintenzionato possa aver cambiato parti hardware essenziali come HDD / RAM / ecc con quelle compromesse. (Sì, so di hardware hot-swappable, ma supponiamo che lascerà tracce sufficienti, sia nei registri che nei malfunzionamenti del software, se non è fatto da un'autorità legittima.)

Ma con l'hardware virtuale l'ipotesi che l'hardware non sia stato compromesso non regge più, perché l'hoster può mettere in pausa, copiare e riavviare la macchina a proprio piacimento, senza che si riavvii o addirittura offline. Inoltre, l'hoster ha accesso diretto all'intera RAM e ai dischi di una macchina virtuale, mentre è ancora in esecuzione.

Con qualche sforzo l'hoster potrebbe persino essere in grado di cambiare il file authorized_keys o il file / etc / passwd sul sistema per ottenere l'accesso (root) ad esso e quindi possibilmente essere in grado di visualizzare il contenuto delle partizioni crittografate che sono attualmente montato.

Date queste vulnerabilità o possibili attacchi le mie domande ora sono:

  1. Quanto sono realistiche queste vulnerabilità, sono una minaccia reale o solo una "fantascienza"? C'è qualcosa che li rende poco pratici nella realtà? I venditori di software VM (Citrix, VMWare, ecc.) Implementano meccanismi di sicurezza che rendono questi attacchi più difficili? (C'è ancora qualcosa che possono fare per rendere questo più difficile, oltre alla sicurezza per oscurità)? Oppure i venditori di macchine virtuali potrebbero persino fornire strumenti agli hosters (che in fin dei conti sono i loro clienti diretti) che rendono questi attacchi più facili?

  2. Esiste un modo efficace in cui un sistema operativo guest può proteggere se stesso o i dati nella RAM e sui dischi da questo tipo di attacchi? Gli approcci informatici fidati (codice firmato, ecc.) Potrebbero essere di qualche aiuto? Conosco DEP e ASLR, ma ciò non impedirà all'host di leggere ancora ogni frammento di memoria disponibile. Suppongo anche che la crittografia RAM sia fuori questione con le convenzionali macchine hardware / VM x86, dal momento che non sarebbe più una memoria "ad accesso casuale".

  3. Ci sono state ricerche su questo? Sono sorpreso di quanto poca discussione ci sia su questo argomento. È tutto così ovvio o irrisolvibile, o c'è ancora troppo poco interesse?

posta Dexter 08.03.2012 - 14:37
fonte

2 risposte

5

Per me sembra chiaro, solo considerando ipotetici, che un server virtuale non ha alcuna protezione tecnica pratica da parte dell'amministratore dell'host reale.

Cercherò di essere specifico. Non deve essere poco pratico craccare un server virtuale, dato il controllo dell'host reale. Ecco il tipo di strategia che immagino. Disassemblare il software host della macchina virtuale e individuare il driver della tastiera virtuale. Quindi modificare, non necessariamente il software host della macchina virtuale, ma forse una tabella di distribuzione nel kernel del sistema operativo. In questo modo, è possibile eseguire una sequenza di chiamate di sistema che è caratteristica del driver della tastiera virtuale per attivare un logger per le chiavi di input virtuali. Il risultato è un keylogger per il server virtuale che non può essere rilevato chiaramente dal lato virtuale.

Un sistema host che impedirebbe questo tipo di manipolazione probabilmente non funzionerebbe molto bene. È abbastanza difficile eseguire il debug e il monitoraggio del software senza aggiungere intenzionalmente ostacoli agli analisti.

    
risposta data 09.03.2012 - 07:27
fonte
4

Per quanto riguarda le risorse, sono sicuro che una ricerca su google per ricerche / studiosi può fornire molti risultati sulle implicazioni di sicurezza teorica e pratica della virtualizzazione. Eccone uno che ho trovato (ma ce ne sono molti altri): Linee guida per la sicurezza completa della virtualizzazione NIST

Sì, la virtualizzazione apre molti vettori di attacco che sono meno accessibili (ma ancora possibili) quando si esegue direttamente sull'hardware. Gli stessi principi si potrebbero dire comunque sulla scrittura dell'intero codice per eseguire l'hardware, invece di utilizzare un sistema operativo esistente. Esegui il tuo accesso a basso livello di memoria, I / O e gestione dei processi per evitare che qualche patch del kernel o un trojan possano accedere allo stesso segmento di memoria del tuo programma.

C'è ovviamente anche una questione di fiducia. Se non ti puoi fidare del tuo provider di hosting, allora non mi fiderò nemmeno di loro con il mio hardware. Fidati del tuo sistema operativo? Ti fidi di tutti i codici e moduli delle applicazioni di terze parti?

Infine, cosa più importante a mio parere, come quasi tutto nella vita, è un compromesso tra il rischio e i benefici. Desideri tutti i numerosi vantaggi della virtualizzazione e dell'hosting virtuale "nel cloud"? (avviando i server virtuali in modo progressivo, scalando i server su / giù, acquisendo istantanee al volo, clonando macchine virtuali, avendo un semplice accesso alla console per ogni server senza la necessità di hardware aggiuntivo, aggiungendo interfacce di rete virtuali per creare complesse configurazioni di rete per nominarne alcune) o preferisci avere meno flessibilità ma un po 'più di sicurezza *? La scelta è ovviamente tua. E dipende dalla tua percezione di rischio vs beneficio.

* Alcuni sostengono che la virtualizzazione può aiutare ad aumentare la disponibilità , che è ovviamente anche una parte importante della sicurezza.

    
risposta data 09.03.2012 - 09:51
fonte

Leggi altre domande sui tag