Schließlich lieben Sie Docker so sehr, dass Sie Ihre geschäftskritischen Online-Produktionssysteme mit vertraulichen Kundendaten auf einen Docker-Schwarm verlagern möchten. Einige hätten es vielleicht sogar schon getan. Die andere Organisation kann es sich nicht leisten, wenn eine Richtlinie verbietet, dass Produktionsprozesse im Root-Modus ausgeführt werden.
Was könnte eine Checkliste mit Bausteinen sein, die für eine Docker-Produktionsumgebung in Betracht gezogen werden sollten? Man braucht nicht alle, aber alle sollten wichtig sein, um beurteilt zu werden.
Haftungsausschluss: Ich weiß, dass es eine SE-Richtlinie gibt, um "große endlose Listen" zu vermeiden, aber ich denke, diese Checkliste kann nicht sehr groß sein ... und ist heutzutage endlos.
Also - was sind diese Bausteine?
- Wenn noch nicht implementiert, sollten Sie ein Linux-Hostsystem mit erweiterten Sicherheitseinstellungen (gehärteter Kernel, SELinux usw.) ausführen.
- Erwägen Sie die Verwendung eines winzigen Docker-Basisbilds, wie z. B. "Alpine", "Busybox" oder "Scratch". Beginnen Sie beispielsweise mit einem leeren Basisbild
- Verwenden Sie eine andere USER-Einstellung als root
- Prüfen Sie sorgfältig, ob die bereits eingeschränkten Kernelfunktionen, die dem Container gewährt werden, noch weiter reduziert werden können
- Erwägen Sie, nur eine ausführbare Binärdatei pro Container zu haben, um Ihren Prozess zu starten, idealerweise statisch verknüpft
- Diejenigen, die Ihr System unterbrechen möchten, um einen Shell-Zugriff zu erhalten, fragen sich möglicherweise, ob in Ihrem Container alle Shells deaktiviert sind
- Aktivieren Sie schreibgeschützte Volumes, wo dies nur möglich ist
Frage: was noch?
devsecops
?
Consider using a tiny Docker base image, like alpine, busybox or even scratch e.g. start with an empty base image
die Sicherheit erhöht?