Container Sicherheit¶
Faktoren für die Sicherheit der Container-Techniken:
Herkunft der genutzten Images
Wegen der Kernel-syscall Techniken (siehe namespaces) problematisch!
Tipp
Bitte seccomp >= Version 2.2.1
Anm./Empfehlung zu Thema namespaces:
# cat /boot/config-$(uname -r) | grep CONFIG_SECCOMP=
CONFIG_SECCOMP=y
# rpm -qa | grep seccomp
libseccomp2-2.3.2-lp150.1.9.x86_64
joeb@opensuse:~/rst/docker>
Links:
Empfehlungen:
Implementierungen mittels
cgroups
(Control Groups für Nutzung von Limits)Applikationen in Container möglichst nicht mit root
Fähigkeiten der Images einschränken
User-Namespace aktiv
seccomp/SELinux/Apparmor
keine SUID im Container
aktuelle Kernel
Container-Host härten, aktualisieren, patchen
Container-Host Zugriffe einschränken
Netzwerk sichern / konfigurieren
Hinweis
Also: SELinux und auch Firewalltechnken (Netfilter/iptables, firewalld, …) bedenken.
Zu diesen vertiefenden Themen in Produktionsumgebungen an dieser Stelle keine weiteren Ausführungen.
Faktoren für Security¶
Ganz wichtige aber eben auch ganz dicke Bretter…
AppArmor (Application Armor)
SELinux (Security Enhanced Linux) - wollen wir für Test auf
permissive
Status ermitteln mit:
sestatus
oderls -Z
(bei CentOS; bei Debian, openSUSE sollte SELinux deaktiv sein)(Auszug/Zeile:) Current Mode: enforcing
Ausschalten mit
setenforce 0
Dauerhafte Konfiguration in
/etc/sysconfig/selinux
Netfilter/iptables (bzw. Dienste firewalld, ufw)
Anm.: auch immer mal verantwortlich bei vermeintlichen Docker Technik Problemen!
Sicherheitstechnik¶
Container sind zwar durch Namespaces isoliert. Doch das ist bei Weitem nicht derselbe Schutz, wie es bei echten Virtualisierungen erreicht werden kann.
Technische Ansätze zur Isolierung zum Host:
Namespaces (siehe UIDs, GIDs, PIDs pro Container)
Mount-Namespaces auf Kernelebene (sicherer als chroot)
eigener Netzwerkstack
Gefahr
Docker Prozess verlangen nach root
Siehe Rechte für
ls -l /var/run/docker.sock
srw-rw---- 1 root docker 0 7. Jan 12:35 /var/run/docker.sock
Aus Vereinfachungs- und Seminargründen entscheiden wir uns dennoch für
usermod -aG docker joeb
Ansätze zur Verbesserung der Sicherheit: