Container-Technologien wie Docker und Kubernetes haben die Softwareentwicklung revolutioniert — doch mit ihrer wachsenden Verbreitung steigt auch das Angriffspotenzial. Container-Sicherheit ist längst kein Randthema mehr, sondern eine strategische Pflicht für jedes Unternehmen, das moderne Infrastruktur betreibt. Gerade in deutschen KMU fehlen jedoch oft klare Richtlinien und praktische Maßnahmen, um Container-Umgebungen systematisch abzusichern. Dieser Leitfaden liefert Ihnen genau das: konkrete Handlungsempfehlungen, praxisnahe Checklisten und technische Best Practices, die Sie sofort umsetzen können.
Warum Container-Sicherheit für KMU geschäftskritisch ist
Container gelten als leichtgewichtig, schnell und portabel — Eigenschaften, die sie in der modernen Entwicklung unverzichtbar machen. Doch genau diese Eigenschaften schaffen neue Angriffsflächen. Ein kompromittierter Container kann im schlimmsten Fall den gesamten Host oder benachbarte Dienste gefährden.
Laut dem CNCF Annual Survey nutzen mittlerweile über 84 % aller Unternehmen Container in der Produktion — darunter zunehmend auch mittelständische Betriebe. Gleichzeitig zeigen Sicherheitsberichte, dass über 60 % aller Container-Images in öffentlichen Registries kritische Schwachstellen enthalten.
Für KMU bedeutet das: Wer Container einsetzt, ohne eine durchdachte Sicherheitsstrategie zu verfolgen, riskiert Datenverluste, Compliance-Verstöße und Betriebsausfälle. Die gute Nachricht: Mit den richtigen Maßnahmen lassen sich die meisten Risiken strukturiert und kosteneffizient minimieren.
Container-Sicherheit beginnt beim Image
Der erste und wichtigste Sicherheitsanker ist das Container-Image selbst. Viele Sicherheitsprobleme entstehen bereits, bevor ein Container überhaupt gestartet wird.
Vertrauenswürdige Basis-Images verwenden
Verwenden Sie ausschließlich offizielle Basis-Images aus vertrauenswürdigen Quellen wie dem Docker Official Images-Programm oder internen, geprüften Registries. Folgende Grundregeln gelten dabei:
- Nutzen Sie minimale Basis-Images wie `alpine` oder `distroless`, die nur das Nötigste enthalten
- Vermeiden Sie `latest`-Tags — verwenden Sie stattdessen pinned Versionen (z. B. `node:20.11-alpine3.19`)
- Aktualisieren Sie Basis-Images regelmäßig, mindestens monatlich
- Führen Sie eigene interne Image-Registries mit Zugriffskontrollen
Automatisches Image-Scanning integrieren
Image-Scanning sollte ein fester Bestandteil Ihrer CI/CD-Pipeline sein. Tools wie Trivy, Grype oder Snyk Container scannen Images automatisch auf bekannte CVEs (Common Vulnerabilities and Exposures) und melden kritische Schwachstellen vor dem Deployment.
Ein typischer Scan-Workflow sieht so aus:
1. Entwickler pusht Code in das Repository
2. CI/CD-Pipeline baut das Container-Image
3. Scanner analysiert das Image auf Schwachstellen
4. Bei kritischen Findings: Pipeline schlägt fehl, kein Deployment
5. Entwickler behebt die Schwachstelle und wiederholt den Prozess
Dieses Prinzip — "Shift Left Security" — verlagert Sicherheitsprüfungen in frühe Entwicklungsphasen und reduziert Kosten für spätere Korrekturen erheblich.
Laufzeit-Sicherheit: Container richtig betreiben
Ein sicheres Image ist nur der Anfang. Ebenso wichtig ist, wie Container zur Laufzeit konfiguriert und überwacht werden.
Least-Privilege-Prinzip konsequent umsetzen
Das Least-Privilege-Prinzip besagt: Jeder Prozess erhält nur die Berechtigungen, die er tatsächlich benötigt — nicht mehr. In der Container-Praxis bedeutet das:
- Container niemals als Root (UID 0) ausführen — nutzen Sie dedizierte, unprivilegierte Benutzer im Dockerfile
- `--privileged`-Flag vermeiden, es gewährt dem Container nahezu vollständigen Host-Zugriff
- Linux Capabilities gezielt einschränken: `--cap-drop=ALL --cap-add=NET_BIND_SERVICE` erlaubt nur das Notwendige
- Read-only Filesystems aktivieren: `--read-only` verhindert, dass Angreifer Dateien im Container modifizieren
- Temporäre Schreibzugriffe nur über explizit gemountete Volumes erlauben
Ressourcenlimits und Isolation
Ohne Ressourcenlimits kann ein kompromittierter oder fehlerhafter Container den gesamten Host destabilisieren. Setzen Sie daher immer explizite Limits:
yaml
resources:
limits:
cpu: "500m"
memory: "256Mi"
requests:
cpu: "100m"
memory: "128Mi"
Ergänzend empfiehlt sich der Einsatz von seccomp-Profilen und AppArmor-Policies, die den Syscall-Umfang eines Containers auf das funktional Notwendige beschränken.
Kubernetes-Sicherheit: Der Orchestrierungskontext
Wer Container in Kubernetes betreibt, muss die Sicherheitsarchitektur auf Cluster-Ebene denken. Kubernetes bietet mächtige Sicherheitsmechanismen — sie müssen jedoch aktiv konfiguriert werden.
RBAC: Zugriff auf API-Ebene kontrollieren
Role-Based Access Control (RBAC) ist das zentrale Werkzeug zur Zugriffskontrolle in Kubernetes. Richtig konfiguriert, stellt es sicher, dass Nutzer, Serviceaccounts und Workloads nur auf die Ressourcen zugreifen können, die sie benötigen.
Best Practices für RBAC:
- Erstellen Sie granulare Rollen statt allgemeiner `cluster-admin`-Rechte zu vergeben
- Serviceaccounts pro Anwendung anlegen, nicht den Standard-Serviceaccount verwenden
- Regelmäßige Audits: Wer hat aktuell welche Berechtigungen im Cluster?
- `kubectl auth can-i` nutzen, um Berechtigungen gezielt zu überprüfen
Network Policies: Netzwerksegmentierung in Kubernetes
Standardmäßig können alle Pods in einem Kubernetes-Cluster miteinander kommunizieren. Das ist ein erhebliches Sicherheitsrisiko. Network Policies erlauben es, den Netzwerkverkehr zwischen Pods und Namespaces gezielt zu steuern:
- Definieren Sie explizit, welche Pods miteinander kommunizieren dürfen
- Sperren Sie allen ausgehenden Traffic standardmäßig und öffnen Sie nur benötigte Verbindungen
- Trennen Sie Produktions-, Staging- und Entwicklungsumgebungen in eigene Namespaces
- Nutzen Sie Service-Mesh-Lösungen wie Istio oder Linkerd für mTLS zwischen Services
Pod Security Standards durchsetzen
Seit Kubernetes 1.25 ersetzen Pod Security Standards (PSS) die veralteten PodSecurityPolicies. Sie definieren drei Sicherheitsstufen:
1. Privileged — keine Einschränkungen (nur für System-Workloads)
2. Baseline — verhindert bekannte Privilege-Escalation-Angriffe
3. Restricted — strikteste Konfiguration, folgt aktuellen Best Practices
Für Produktionsumgebungen empfehlen wir grundsätzlich den Restricted-Level als Ausgangsbasis.
Secrets Management: Sensitive Daten schützen
Secrets — Passwörter, API-Keys, Zertifikate — gehören zu den kritischsten Daten in Container-Umgebungen. Sie dürfen unter keinen Umständen in Images eingebettet oder in Umgebungsvariablen ungesichert übergeben werden.
Best Practices für Secrets Management in Container-Umgebungen:
- Secrets niemals im Dockerfile oder in versionierten Konfigurationsdateien speichern
- Kubernetes Secrets nur als Ausgangspunkt nutzen — sie sind Base64-kodiert, aber nicht verschlüsselt
- Externe Secret-Manager wie HashiCorp Vault, AWS Secrets Manager oder Azure Key Vault einsetzen
- Secrets regelmäßig rotieren und kurzlebige Credentials bevorzugen
- Envelope Encryption für Kubernetes Secrets aktivieren (etcd-Verschlüsselung)
Ergänzend zu diesen Maßnahmen lohnt sich ein Blick auf unsere Empfehlungen zur sicheren API-Key-Verwaltung — viele Prinzipien überschneiden sich direkt mit dem Secrets-Management in Container-Umgebungen.
Supply Chain Security: Die unsichtbare Gefahr
Software Supply Chain Attacks — Angriffe auf die Lieferkette Ihrer Software — sind eine der am schnellsten wachsenden Bedrohungskategorien. Der SolarWinds-Angriff hat eindrücklich gezeigt, welche Schäden kompromittierte Build-Ketten anrichten können.
Image Signing und Verification
Container-Image-Signing stellt sicher, dass nur verifizierte, unveränderte Images in Ihrer Umgebung laufen. Empfohlene Tools:
- Cosign (Teil des Sigstore-Projekts): Signiert und verifiziert Container-Images kryptografisch
- Notary v2: Industriestandard für Content Trust in Container-Registries
- Policy Controller (Sigstore): Kubernetes-Admission-Controller, der nur signierte Images zulässt
SBOM: Software Bill of Materials
Eine Software Bill of Materials (SBOM) ist ein vollständiges Inventar aller Komponenten, Bibliotheken und Abhängigkeiten eines Container-Images. SBOMs sind mittlerweile in vielen regulierten Branchen und bei Behördenaufträgen verpflichtend.
Tools zur SBOM-Generierung: Syft, Docker Scout oder Trivy können SBOMs automatisch im SPDX- oder CycloneDX-Format erzeugen.
Monitoring und Incident Response für Container
Sicherheit endet nicht mit der Konfiguration. Laufzeit-Monitoring und eine klare Incident-Response-Strategie sind ebenso entscheidend.
Laufzeit-Bedrohungserkennung
Tools wie Falco (CNCF-Projekt) überwachen Container-Aktivitäten in Echtzeit und schlagen bei verdächtigem Verhalten Alarm — z. B. wenn ein Container unerwartet eine Shell öffnet oder sensible Systemdateien liest.
Empfohlene Monitoring-Maßnahmen:
- Zentrales Log-Management mit Tools wie Loki, Elasticsearch oder Splunk
- Anomalie-basierte Alerts auf ungewöhnliche Netzwerkverbindungen
- Container-Aktivitätsprotokollierung auf Syscall-Ebene mit Falco oder Sysdig
- Regelmäßige Überprüfung der Kubernetes Audit Logs
Container-Sicherheit in die DevSecOps-Kultur integrieren
Technische Maßnahmen allein reichen nicht aus. DevSecOps — die Integration von Sicherheit in den gesamten Entwicklungsprozess — ist der kulturelle Rahmen, der langfristig wirkt. Wenn Sie noch dabei sind, eine solche Kultur zu etablieren, finden Sie in unserem Leitfaden zur DevOps-Kultur in KMU hilfreiche Grundlagen dazu.
Ihre Container-Sicherheits-Checkliste auf einen Blick
Nutzen Sie diese Checkliste als Ausgangspunkt für die Absicherung Ihrer Container-Umgebung:
Image-Sicherheit:
- [ ] Nur offizielle, minimale Basis-Images verwenden
- [ ] Image-Scanning in CI/CD-Pipeline integriert
- [ ] Keine Secrets im Image oder Dockerfile
- [ ] Images signiert und verifiziert (Cosign/Notary)
Laufzeit-Sicherheit:
- [ ] Container läuft als Non-Root-User
- [ ] `--privileged` nicht verwendet
- [ ] Read-only Filesystem aktiviert
- [ ] CPU- und Memory-Limits gesetzt
- [ ] Seccomp- und AppArmor-Profile aktiv
Kubernetes-Sicherheit:
- [ ] RBAC nach Least-Privilege konfiguriert
- [ ] Network Policies für alle Namespaces definiert
- [ ] Pod Security Standards auf `Baseline` oder `Restricted` gesetzt
- [ ] Secrets aus externem Secret-Manager geladen
Monitoring:
- [ ] Falco oder vergleichbares Laufzeit-Monitoring aktiv
- [ ] Kubernetes Audit Logs aktiviert und ausgewertet
- [ ] Incident Response Plan für Container-Vorfälle vorhanden
Fazit: Container-Sicherheit als kontinuierlicher Prozess
Container-Sicherheit ist kein einmaliges Projekt, sondern ein kontinuierlicher Prozess, der technisches Know-how, klare Prozesse und die richtige Unternehmenskultur vereint. Die gute Nachricht für KMU: Sie müssen nicht alle Maßnahmen gleichzeitig umsetzen. Beginnen Sie mit den wirkungsvollsten Schritten — sicherem Image-Building, konsequentem Least-Privilege und automatischem Scanning — und bauen Sie Ihre Sicherheitsstrategie iterativ aus.
Wer Container-Sicherheit ernst nimmt, schützt nicht nur seine Infrastruktur, sondern stärkt auch das Vertrauen seiner Kunden und Geschäftspartner — ein entscheidender Wettbewerbsvorteil in einer zunehmend digitalisierten Wirtschaft.
Benötigen Sie Unterstützung beim Aufbau einer sicheren Container-Infrastruktur für Ihr Unternehmen? Unsere Experten bei Pilecode helfen Ihnen dabei, maßgeschneiderte Sicherheitsstrategien zu entwickeln und umzusetzen.
Jetzt kostenloses Erstgespräch vereinbaren →
Haben Sie Fragen zu diesem Thema? Jetzt Kontakt aufnehmen.