Infine, sei così innamorato di Docker che vuoi spostare i tuoi sistemi di produzione business-critical online con dati sensibili dei clienti su Docker Swarm. Alcuni potrebbero addirittura averlo già fatto. L'altra organizzazione non può permetterselo con una politica che vieta i processi di produzione in esecuzione in modalità root.
Quale potrebbe essere una lista di controllo di blocchi da considerare per un ambiente di produzione Docker? Uno non ha bisogno di tutti loro, ma tutti dovrebbero essere importanti per essere valutati.
Disclaimer: so che esiste una politica per evitare "grandi liste infinite", ma penso che questa lista di controllo non possa essere molto grande ... e infinita al giorno d'oggi.
Quindi - quali sono questi blocchi di edifici?
- Se non è già stato implementato, prendere in considerazione l'esecuzione di un sistema host Linux con impostazioni di sicurezza avanzate - kernel rinforzato, SELinux ecc.
- Prendi in considerazione l'utilizzo di una minuscola immagine di base Docker, come alpine, busybox o persino scratch, ad esempio inizia con un'immagine di base vuota
- Utilizzare impostazioni USER diverse da root
- Valutare attentamente per ridurre ulteriormente l'insieme già ridotto delle capacità del kernel concesse al contenitore
- Considera di avere un solo file binario eseguibile per contenitore per avviare il processo, idealmente collegato staticamente
- Coloro che vogliono rompere il sistema per ottenere l'accesso alla shell potrebbero chiedersi se hanno scoperto che il contenitore ha tutte le shell disabilitate
- Montare volumi di sola lettura ove possibile
Domanda: cos'altro?
devsecops
?
Consider using a tiny Docker base image, like alpine, busybox or even scratch e.g. start with an empty base image
migliora la sicurezza?