Un utente root in un Docker / LXC può rompere la sicurezza dell'intero sistema?

12

La mia domanda è probabilmente più sull'LXC che su Docker, ma mi chiedo quali sono i meccanismi di sicurezza per impedire a un utente root all'interno di un'immagine Docker di accedere all'intero host.

Più precisamente, mi chiedo quale sia il limite delle capacità di tale utente root prima che tu raggiunga un punto in cui puoi fare cose pericolose.

In genere, per scopi didattici, ho bisogno che gli studenti caricino un modulo del kernel da un'immagine Docker. Questo modulo del kernel sarebbe accessibile da tutto il sistema? E, se no, quali sono i limiti e in che modo LXC si occupa della separazione della memoria all'interno dello spazio del kernel?

In breve, vorrei sapere fino a che punto possiamo andare con LXC senza renderlo dannoso per il sistema.

    
posta perror 30.11.2015 - 18:21
fonte

1 risposta

11

Risposta breve: il root sul contenitore docker può uscire dalla prigione e compromettere il sistema.

Docker ha lo scopo di semplificare la vita di sviluppatori e amministratori di sistema, non di contenere programmi isolati gli uni dagli altri. Sono presenti alcune funzionalità di sicurezza, ma non sono l'intenzione principale. L'idea è quella di spedire un contenitore con l'applicazione e ogni pre-requisito imballato insieme e lasciare che l'utente lo avvii senza problemi, non per tenere sotto controllo gli utenti o le applicazioni che hanno un comportamento anomalo.

Ci sono alcuni exploit che rendono possibile a un utente che esegue applicazioni root all'interno di un container di liberarsi dal contenitore e compromettere l'host. Docker ha preso alcune misure per rimediare a quelle scappatoie, ma sono ingombranti da impiegare.

Questo articolo di sicurezza Docker ti dice di non consentire agli utenti di caricare i moduli. Per consentire il caricamento del modulo si consente all'utente di liberarsi facilmente dalla prigione. Se vuoi sicurezza e lascia che le persone caricino moduli, usa una VM.

Puoi creare macchine virtuali leggere usando Xen, VirtualBox o Kvm, e saranno isolate l'una dall'altra. Puoi dare a tutti gli utenti la priorità sull'immagine e non saranno in grado di fare confusione tra loro né con il sistema host.

    
risposta data 30.11.2015 - 18:39
fonte

Leggi altre domande sui tag