Contenitori o macchine virtuali: Che è più sicura? La risposta vi sorprenderà

0
97

Zero

Sono macchine virtuali (VM) più sicuro di contenitori? Pensi di sapere la risposta, ma IBM Research ha trovato contenitori possono essere sicuro o, più sicuro, di macchine virtuali.

James Bottomley, un IBM Research Distinto Ingegnere e sviluppatore del kernel Linux, scrive: “Uno dei maggiori problemi con l’attuale dibattito sul Contenitore vs Hypervisor di sicurezza è che nessuno, in realtà, ha sviluppato un sistema di misurazione di sicurezza, in modo che il dibattito è tutto in termini qualitativi (hypervisor ‘sentire’ più sicuro di contenitori a causa dell’interfaccia di larghezza), ma nessuno in realtà ha fatto un confronto quantitativo.” Per soddisfare questa esigenza, Bottomley creato Attacco Orizzontale Profilo (HAP), progettato per descrivere la protezione del sistema in un modo che può essere misurata oggettivamente. Bottomley ha scoperto che la “finestra Mobile contenitore con un ben realizzata seccomp profilo (che blocchi imprevisti chiamate di sistema) fornisce all’incirca l’equivalente di sicurezza con l’hypervisor.”

Bottomley inizia con la definizione Attacco Verticale di Profilo (VAP). Questo è tutto il codice, che è attraversata per fornire un servizio di tutta la strada dall’ingresso all’aggiornamento del database di uscita. Questo codice, come tutti i programmi, contiene un bug. Il bug densità varia, ma più il codice di attraversare maggiore è la possibilità di esposizione per un buco di sicurezza. Stack di buchi di sicurezza exploit — che può saltare in fisico host del server o VMs-sono HAPs.

HAPs sono la peggior specie di buchi di sicurezza. Bottomley li chiama, “potenzialmente business distruggendo eventi”. Così, come si fa a misurare un sistema per HAPs? Bottomley, spiega:

L’approccio Quantitativo per la misurazione HAP dice che prendiamo il bug densità del Kernel di Linux il codice e moltiplicarlo per la quantità di codice univoco attraversata dal sistema in esecuzione dopo aver raggiunto uno stato stazionario (nel senso che non sembra essere l’attraversamento di qualsiasi nuovo kernel percorsi). Per il bene di questo metodo, si assume che il bug densità uniforme e, quindi, HAP è approssimata da una quantità di codice attraversato in stato stazionario. La misurazione di questo per un sistema in esecuzione, è un’altra faccenda, ma, fortunatamente, il kernel ha un meccanismo chiamato ftrace che può essere utilizzato per fornire una traccia di tutte le funzioni chiamate da un determinato userspace, e quindi dà una ragionevole approssimazione del numero di linee di codice attraversato. (Nota: questa è un’approssimazione perché si misura il numero totale di linee in funzione senza tener conto del codice interno di flusso, principalmente a causa ftrace non dare molti dettagli.) Inoltre, questo metodo funziona molto bene per i contenitori in cui tutto il flusso di controllo emana da un noto gruppo di processi mediante la chiamata di sistema, ma funziona meno bene per gli hypervisor dove, oltre alla diretta hypercall interfaccia, devi aggiungere anche le tracce dal back-end demoni (come il kvm vhost thread del kernel o dom0 in caso di Xen).

In breve, si misura da quante linee di codice di un sistema, sia esso di metallo nudo, VM, o contenitore–utilizza per eseguire una determinata applicazione. Il codice viene eseguito, il più probabile è quello di avere un PORTATORE di protezione a livello del foro.

Dopo aver definito HAPs e come misurarlo, Bottomley, poi corse per diversi parametri standard — redis-panca-set, redis-bench-get, python-il tornado e il nodo-express, con questi ultimi due anche in esecuzione il server web con semplici esterno transazionale clienti. Ha eseguito questi test con la finestra Mobile, Google gVisor, un contenitore di runtime sandbox; gVisor-kvm, lo stesso contenitore sandbox utilizzando il KVM, Linux integrato di VM hypervisor; Kata Contenitori, un open-source, leggero VM; e Nabla, IBM ha appena rilasciato tipo di contenitore, che è stato progettato per il forte isolamento del server.

Bottomley trovato Nabla runtime avuto una migliore “HAP che l’hypervisor contenute Kata tecnologia, il che significa che abbiamo raggiunto un contenitore con sistema migliore HAP (più sicuro) di hypervisor.”

Non era solo IBM progetto, però, che si è dimostrato più sicuro. Egli ha anche trovato “finestra Mobile contenitore con un ben realizzata seccomp profilo (che blocchi imprevisti chiamate di sistema) fornisce all’incirca l’equivalente di sicurezza con l’hypervisor.”

GVisor era un’altra storia. Al meglio, gVisor avuto risultati anche con la finestra Mobile di un caso d’uso, ma in un caso è stato, significativamente peggiore. Bottomley specula perché “gVisor cerca di migliorare il contenimento riscrivendo il sistema Linux interfaccia di chiamata in Go. Tuttavia, nessuno ha prestato attenzione alla quantità di chiamate di sistema Vai runtime utilizza in realtà, che è ciò che questi risultati sono davvero mostrando.” Se questo è il caso, Bottomley pensa una versione futura di gVisor potrebbe essere riscritto per essere molto più sicuro.

Il vero punto, però, non è che la tecnologia è più sicuro per sé. E ‘ che, per i più gravi problemi di sicurezza, contenitori e le macchine virtuali hanno circa lo stesso livello di sicurezza. Infatti, Bottomley pensa, “è perfettamente possibile avere i contenitori che sono più sicuro di hypervisor e pone a riposo, infine, le argomentazioni che è il più sicuro delle tecnologie”.

“Il passo successivo”, ha continuato, “è stabilire l’entità dell’esposizione a un’applicazione dannosa e per fare questo, un certo tipo di fuzz testing deve essere impiegata”

Inoltre, Bottomley lavoro è solo l’inizio. Ha mostrato, è possibile misurare oggettivamente di un’applicazione di sicurezza. Come ha detto, “non mi aspetto che questa sarà l’ultima parola nel dibattito, ma con la descrizione di come abbiamo fatto io spero che altri possano sviluppare le misure quantitative.”

Storie Correlate:

Kata Contenitori Progetto lancia contenitore sicuro infrastructureGoogle fonti aperte gVisor, un sandbox contenitore runtimeTechRepublic: 5 consigli per proteggere i vostri contenitori Docker

Argomenti Correlati:

Linux

Di sicurezza, TV

La Gestione Dei Dati

CXO

Centri Dati

0