Docker Security

Hallo HaBo,

ich spiele gerade mit dem Gedanken Application wie Gitlab und Jenkins in Container laufen zu lassen aber ich hab bisher noch Sicherheitsbedenken.

Welche Möglichkeiten würde es geben um den Host vor den Container zu schützen ?

Am Host rennen schon Snort, Ossec und apparmor profile für docker und den nginx mit naxsi den ich vor die Container schalten würde.
 
Wenn du keine Bedenken hast diese Software ohne Container auf dem Host laufen zu lassen, warum hast du dann welche es mit Containern zu tun? Die Container erweitern ja die Rechte der Applikationen nicht, sofern du nicht unbedingt root als Default-Container-User verwendest. Also einfach darauf achten, dass du '-u' als Parameter verwendest, wenn du einen Container startest. Docker gibt dir sogar noch relativ erweiterte Möglichkeiten (im Vergleich zum Linux-Standard) um z.B. zu sehen was zuletzt an den Containern verändert wurde (docker history <ID>). Dadurch kannst du ohne zusätzlichen Audit-Kram einfach Regelsätze für dein IDS zur Überwachung der Docker-Container erstellen.

Insgesamt sehe ich Docker, sofern richtig eingesetzt, durchaus auch als Möglichkeit die Sicherheit zu verbessern. Neue Einfallstore für’s Host-System entstehen höchstens über den Virtualisierungslayer (die Wahrscheinlichkeiten für Sicherheitslücken im Linux-Kernel des Host-Systems ist aber höher als die für sicherheitsrelevante Bugs in der Virtualisierungssoftware) und durch falsche Handhabung. Richtige Handhabung heisst dabei vor allem:
- Container niemals als Root starten
- immer nur ein Programm pro Container
- Ports >1024 für die Server in den Containern verwenden und via iptables auf die gewünschten Host-Ports umleiten
- Software auf dem aktuellsten Stand halten und zukünftige Updatebarkeit gewährleisten
- beim Einrichten des Security-Layers auf dem Host-System darauf achten, dass durch Docker dynamische Netzwerk-Interfaces entstehen, die man ggf. mit überwachen möchte
 
Zurück
Oben