[ Home | Liste | F.A.Q. | Risorse | Cerca... ]


[ Data: precedente | successivo | indice ] [ Argomento: precedente | successivo | indice ]


Archivio: Aprile 2007 ml@sikurezza.org
Soggetto: Re: [ml] Whitepaper sulla virtualizzazione e sicurezza
Mittente: Claudio Telmon
Data: Wed,  4 Apr 2007 22:02:43 +0200 (CEST)
Daniele Bellucci wrote:
>> Hmm, ti riferisci al semplice chroot? L'ultima volta che ho provato
>> (su linux), un processo che girava come root in un chroot poteva
>> tranquillamente fare un mount del filesystem root in una qualsiasi
>> directory, nonché del filesystem proc, il che è praticamente come
>> essere fuori dal chroot. 
> 
> mi spieghi come ha fatto?
> perchè se avessi utilizzato una qualche Jail seria (ES:GRSecurity)
> tutti questi problemi non sarebbero sorti.

Niente GRSecurity. Solo chroot. L'ho chiesto apposta ;) Una banale
syscall, appunto.

> ok le sycall, ma non ok l'interazione con i driver.
> Con un minimo di dimestichezza, ci vuol poco a fare un modulo kernel (e
> tanti altri se ne trovano pronti all'uso) che impediscono i problemi di
> cui sopra. Vedi poi le capability, RBAC etc. etc.

A parte che le syscall non sono certo poco, su questo non sono
d'accordo, per vari motivi.

Per prima cosa, non vedo come tu possa impedire l'interazione fra i
dati generati dall'utente e i driver, a meno naturalmente di
togliergli l'accesso alle funzionalità offerte dai driver.

Poi, l'idea che un "modulo scritto da qualcuno con un po' di
dimestichezza", ovvero buttare del codice scritto in proprio nel
kernel, sia una buona pratica dal punto di vista della sicurezza non
rientra nella mia concezione di sicurezza ;) Magari è questione di
gusti.

Soprattutto, se stiamo confrontando due modelli, le cose non
pertinenti non entrano in gioco: cose come le capability le puoi
applicare in entrambi i casi, e in entrambi aiutano. Lo stesso per
GRSecurity. Ho qualche dubbio in più sulla pertinenza di RBAC, ma
vale comunque lo stesso discorso.

> 
> 
>> Se ho ben capito il discorso, la logica della virtualizzazione
>> dovrebbe essere diversa. La virtualizzazione (mi riferisco alla
>> virtualizzazione completa, altrimenti le cose sono meno lineari) non
>> ti permette di vedere il sistema guest: 
> 
> che bisogno potrei avere di vedere il sistema guest?
> l'unico che vedo è quello di accedere alle altre macchine virtuali

Xen ti offre un'interfaccia per farle comunicare? Non so perché c'è,
ma non mi sembra una grande idea dal punto di vista della sicurezza,
e su questo sono d'accordo. Tolta questa (che è un problema
specifico di Xen e non della virtualizzazione, Xen funzionerebbe
anche senza), a me sembra che per vedere una macchina virtuale da
un'altra dovresti passare dal sistema host. Come altrimenti?

> l'intera macchina virtuale e le risorse con cui essa
> integisce. Es:
> * Risorse HW che vengono da lei utilizzate

La macchina virtuale non vede l'harware direttamente, a differenza
del kernel sul quale gira il un ambiente in chroot. L'accesso
all'hardware è controllato dallo strato di virtualizzazione, che ti
fa vedere quello che vuole. Ne sono un esempio chiaro i dischi
virtuali di vmware. Se poi lo strato di virtualizzazione vuole, ti
da un accesso più diretto (vedi usb sempre in vmware), ma solo se
vuole.

> * VFS dell'intera macchina virtuale

Che è dedicato alla tua applicazione, e se sei già root non ti offre
niente di più di quanto già hai.

> * accesso al segmento di rete con cui la macchina virtuale è connessa

Stessa cosa per il chroot, direi.

> * ....
> 
> e non ultimo: la possibilità di infettare il kernel
> in esecuzione sulla macchina virtuale, crearme una backdoor
> che nasconde processi, socket, file descriptor, etc. etc.
> 
> Cosa è cambiato rispetto al caso in cui questa macchina fosse
> reale e non virtuale?
> 
> A mio avviso, niente.

A mio avviso, tanto :) Un esempio è questa cosa su cui stanno
lavorando qui a Pisa:
http://www-serra.unipi.it/sicurezza/tesi1.pdf
In pratica dalla macchina host vai a curiosare direttamente nella
memoria della macchina guest, senza fermare la macchina e senza
farci girare processi. Niente processi nascosti, niente rootkit.

> 
>> Non l'ho capita, me la spieghi meglio? Se il proxy è in serie prima
>> del server ed è effettivamente un proxy (e quindi non fa routing)
>> qual'è la differenza, per quanto riguarda il packet screening,
>> rispetto a farli comunicare su localhost?
> 
> Immagina due processi generici che comunicano tramite
> Shared Memory. Xen permette di shareare pagine di memoria
> tra i dom, da quanto letto.

Dovresi modificare apache per interagire in questo modo con un
"reverse proxy", anziché con sessioni tcp, giusto? In cosa
differisce rispetto a farli comunicare via localhost (nel senso
dell'interfaccia virtuale), che è quello che avevo capito
all'inizio? Ovvero, continua a non essermi chiaro il vantaggio in
termini di sicurezza.

ciao

- Claudio

-- 

Claudio Telmon
claudio@xxxxxxxxxx
http://www.telmon.org





[ Home | Liste | F.A.Q. | Risorse | Cerca... ]

www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005