Le soluzioni container sono sufficientemente sicure per eseguire codice completamente non attendibile, in particolare come servizio VPS?

1

Un certo numero di risposte qui su questo Stack Exchange sostengono che i contenitori sono intrinsecamente insicuri e non si dovrebbe mai eseguire codice non fidato in un contenitore, per non parlare di eseguire un contenitore interamente costruito da qualcun altro.

Eppure, ci sono un certo numero di aziende che attualmente offrono servizi VPS in stile AWS che utilizzano container anziché virtualizzazione.

Naturalmente, a meno che non si esegua il proprio data center privato con guardie armate e non si connetta a Internet, nessun VPS o server in affitto è perfettamente sicuro. Affinché i contenitori siano rilevanti, la possibilità di attacco non deve essere zero, deve solo essere sufficientemente piccola rispetto ai vettori di attacco di servizi alternativi.

Quindi la domanda è: quanto possono essere sicuri i contenitori? Esistono sistemi di container (se sì, quali) che attualmente non hanno exploit noti e per i quali è probabile che gli exploit siano abbastanza difficili da realizzare?

E un aspetto specifico della domanda: nel peggiore dei casi, esiste un sistema di contenitori in cui l'esecuzione di un contenitore non sicuro può essere considerata sicura quanto l'esecuzione di codice non contenitore come utente non privilegiato?

    
posta Josh 04.05.2016 - 21:53
fonte

1 risposta

0

È abbastanza difficile discutere la sicurezza della containerizzazione in isolamento, in quanto essenzialmente le funzioni di isolamento fornite sono funzioni del kernel di Linux (supponendo che stiamo parlando di progetti come LXD, Docker e Rkt).

È giusto dire che un'applicazione in un contenitore su un host non è probabilmente meno sicura della stessa applicazione in esecuzione all'esterno del contenitore sullo stesso host.

Suggerirei che un contenitore ben configurato possa aggiungere una notevole sicurezza alla soluzione generale rispetto ai processi non ancora contenuti.

Funzionalità come spazi dei nomi di Linux, cgroup, funzionalità, filtraggio syscall e sistemi di controllo degli accessi obbligatori (come AppArmor o SELinux) possono essere utilizzati per proteggere i processi in esecuzione in un contenitore.

In molti casi dipende da quanto sforzo l'operatore è disposto a mettere nella configurazione della sicurezza del container. Le impostazioni predefinite di questi progetti tendono a favorire il fatto che la maggior parte delle app funzionino in modo apparente anziché concentrarsi sulla sicurezza assoluta, quindi c'è un certo margine di manovra per essere indurito.

    
risposta data 21.06.2016 - 18:54
fonte

Leggi altre domande sui tag