Docker Bench Security: Server und Container nach CIS prüfen

Docker Bench Security ist ein Open-Source-Skript, das die Sicherheit von Docker-Hosts und Containern anhand der CIS-Docker-Benchmark-Richtlinien überprüft. Es analysiert Konfigurationen, Berechtigungen, Netzwerk- und Container-Settings und liefert einen umfassenden Bericht über potenzielle Sicherheitsrisiken. In diesem Tutorial erfahren Sie, wie Docker Bench Security installiert, ausgeführt und interpretiert wird, um Ihre Umgebung nach Best Practices abzusichern.

Voraussetzungen

Bevor Docker Bench Security genutzt werden kann, sollte der Host einige Voraussetzungen erfüllen:

  • Docker Engine installiert und korrekt konfiguriert
  • Zugriff auf den Host mit Root-Rechten oder via sudo
  • Git für das Klonen des Repositories
  • Netzwerkzugriff für das Herunterladen der Images

Installation und Start

Docker Bench Security wird direkt als Container ausgeführt, ohne dass eine separate Installation notwendig ist.

git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
sudo sh docker-bench-security.sh
  • Das Skript prüft sowohl Docker-Host als auch laufende Container
  • Root-Rechte sind notwendig, da viele Checks System- und Containerkonfigurationen einsehen
  • Es werden Empfehlungen für Konfigurationen, Berechtigungen und Netzwerke ausgegeben

Docker Bench Security als Container ausführen

Alternativ kann das Skript direkt als Container gestartet werden, ohne Repository zu klonen:

docker run -it --net host --pid host --userns host 
  --cap-add audit_control 
  -v /var/lib:/var/lib 
  -v /var/run/docker.sock:/var/run/docker.sock 
  -v /etc:/etc:ro 
  -v /usr/bin/docker-containerd:/usr/bin/docker-containerd:ro 
  -v /usr/bin/docker-runc:/usr/bin/docker-runc:ro 
  --label docker_bench_security 
  docker/docker-bench-security
  • Bind-Mounts geben Zugriff auf relevante Systempfade
  • –net host und –pid host erlauben die Überprüfung von Netzwerk- und Prozesskonfigurationen
  • Label hilft, den Container im Ergebnisbericht zu identifizieren

Ausgabe und Interpretation

Das Skript liefert einen ausführlichen Bericht, unterteilt in Kategorien wie Host Configuration, Docker Daemon, Container Images, Networking und Logging.

  • [WARN]: Hinweise auf mögliche Sicherheitslücken
  • [INFO]: Informationen ohne akuten Handlungsbedarf
  • [PASS]: Konfiguration entspricht der CIS-Benchmark

Beispielausgabe

[INFO] 1 - Host Configuration
[WARN] 1.1 - Ensure that Docker is up-to-date
[PASS] 1.2 - Ensure a separate partition for containers exists
[INFO] 2 - Docker Daemon Configuration
[WARN] 2.1 - Ensure that the logging level is set to 'info'
  • [WARN] Einträge zeigen Handlungsbedarf
  • [PASS] Einträge entsprechen den Best Practices
  • [INFO] Zusätzliche Hinweise für Administratoren

Wichtige Prüfbereiche

1. Host Configuration

  • Kernel-Version und Security-Patches
  • Richtige Partitionierung für Docker-Daten
  • Minimal erforderliche Services aktiviert

2. Docker Daemon

  • TLS für Remote API aktiviert
  • Logging-Level konfiguriert
  • Rootless Mode oder Benutzerrechte korrekt gesetzt

3. Container Images

  • Nur signierte Images nutzen
  • Keine Root-Container ohne Notwendigkeit
  • Regelmäßige Updates und Scans

4. Container Runtime

  • Capabilities auf Minimum reduzieren
  • Read-only Filesystem einsetzen
  • Healthchecks und Restart Policies implementieren

5. Networking

  • Externe Ports minimieren
  • Container nur in notwendigen Netzwerken verbinden
  • Firewall-Regeln prüfen

6. Logging & Monitoring

  • Zentrale Log-Speicherung konfigurieren
  • Audit-Mechanismen aktivieren
  • Monitoring-Lösungen wie Prometheus oder ELK nutzen

Integration in CI/CD

Docker Bench Security lässt sich in CI/CD-Pipelines einbinden, um bei jedem Build oder Deployment automatische Sicherheitschecks durchzuführen.

#!/bin/bash
docker run -it --net host --pid host --userns host 
  --cap-add audit_control 
  -v /var/lib:/var/lib 
  -v /var/run/docker.sock:/var/run/docker.sock 
  docker/docker-bench-security | tee bench-report.txt
  • Pipeline generiert Bericht für Review
  • Warnungen können automatisiert Alarme triggern
  • Regelmäßige Prüfungen erhöhen Compliance

Best Practices

  • Docker Bench Security regelmäßig ausführen, mindestens nach Updates
  • Alle [WARN]-Einträge prüfen und Maßnahmen ergreifen
  • Persistente Speicherung der Reports für Audits
  • Healthchecks, Least Privilege und Seccomp/AppArmor ergänzend nutzen
  • Rootless Docker und minimale Capabilities bevorzugen
  • Regelmäßige Image-Scans und Updates implementieren

Zusammenfassung

Docker Bench Security bietet eine schnelle Möglichkeit, die Konformität von Hosts und Containern mit den CIS-Benchmarks zu prüfen. Durch die Kombination mit Least Privilege, Seccomp, AppArmor, Resource Limits und zentralisiertem Logging können Container-Umgebungen sicher, stabil und auditfähig betrieben werden.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles