Cosa rende systemd-nspawn ancora "inadatto per configurazioni di container sicure"?


21

Questo è indicato nella pagina man di systemd-nspawn

Si noti che anche se vengono prese queste precauzioni di sicurezza systemd-nspawn non è adatto per configurazioni di container sicure. Molte delle funzionalità di sicurezza possono essere eluse e sono quindi principalmente utili per evitare modifiche accidentali al sistema host dal contenitore. L'uso previsto di questo programma è il debug e il testing, nonché la creazione di pacchetti, distribuzioni e software coinvolti nella gestione di avvio e sistemi.

Questa stessa domanda è stata successivamente posta nella mailing list nel 2011 , ma la risposta sembra essere obsoleta.

systemd-nspawn contiene codice da eseguire CLONE_NEWNETusando l' --private-networkopzione adesso. Questo sembra coprire il privato AF_UNIXproblema dello spazio dei nomi, e credo che l' CAP_NET_RAWe CAP_NET_BINDproblemi menzionati.

Quali problemi rimangono a questo punto e cosa fa ad esempio LXC oltre a ciò che systemd-nspawnpuò attualmente fare?


AF_UNIX viene semi-isolato con CLONE_NEWNET: socket astratti - separati, basati su filesytem - uniti (a meno che non ci siano filesystem condivisi tra host e container). Ciò rende conveniente avviare le applicazioni X, escludendo la rete per applicazioni particolari (poiché Xorg apre sia socket UNIX astratto che filesystem).
Vi.

Risposte:


12

LXC è un po 'meglio perché può eseguire container come utenti non ottimizzati . Questo è possibile con systemd-nspawn, ma solo per scenari in cui è necessario un solo utente (anziché multiplo), che può essere difficile o meno sicuro per scenari multi-processo in scenari container. Se vuoi sapere perché docker, lxc e systemd-nspawn non sono intrinsecamente un solido meccanismo di sicurezza, leggi questo: https://opensource.com/business/14/7/docker-security-selinux . Fondamentalmente, i contenitori hanno ancora accesso al kernel e qualsiasi exploit del kernel ottiene il controllo dell'intera macchina. Su un kernel monolitico come Linux, gli exploit del kernel non sono rari.


3
Questa risposta non è corretta systemd-nspawn supporta il rilascio dei privilegi a un altro utente: freedesktop.org/software/systemd/man/systemd-nspawn.html
David Timothy Strauss,

Sono abbastanza sicuro che tutto ciò che fa è eseguire la console / shell come utente non privelegato, ma eseguire tutto il resto come root. Puoi esaminarlo?
CameronNemo,

1
Ok, riprendo la mia ultima affermazione. Tuttavia, non ha una corretta gestione subuid / subgid, solo un utente non ottimizzato per container.
CameronNemo,

2
La possibilità di passare a un solo utente non privilegiato per container invece di supportare la gestione completa di subuid / subgid non è un problema di sicurezza. È una limitazione delle funzionalità.
David Timothy Strauss,

Si lo so. Stavo solo sottolineando la differenza.
CameronNemo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.