Die „php2shell“-Patches (CVE-2026-109618 und CVE-2026-109619) für PHP am Ende des Lebenszyklus (EOL) sind nun verfügbar. Da die Antworten des Vertriebs aufgrund der hohen Nachfrage derzeit langsamer als gewöhnlich ausfallen, ist der schnellste Weg zu den gepatchten Paketen der Online-Kauf von ELS für Runtimes (wird in einem neuen Tab geöffnet). Lesen Sie die FAQ zu den Patches

Gehen Sie direkt zu einer KI-Zusammenfassung dieses Blogbeitrags

  • Fasse diesen Beitrag mit Perplexity zusammen
  • Fasse diesen Beitrag mit Gemini zusammen

Linux-Container sind aus modernen IT-Umgebungen nicht mehr wegzudenken, da sie eine optimierte Bereitstellung, Skalierbarkeit und Ressourceneffizienz ermöglichen. 

Mit der zunehmenden Nutzung steigt jedoch auch das Risiko, und Die Sicherung von containerisierten Anwendungen ist ein wichtiger Schwerpunkt für Teams, die sowohl ihre Infrastruktur als auch sensible Daten schützen wollen.

Vor diesem Hintergrund werden wir uns mit praktischen Strategien und Best Practices für die Sicherung von Linux-Containern befassen und dabei ein Gleichgewicht zwischen Benutzerfreundlichkeit und wichtigen Schutzmaßnahmen herstellen.

1. Minimierung der Angriffsfläche

 

Ein zentrales Prinzip der Containersicherheit ist die Reduzierung der Angriffsfläche, d. h. aller Punkte, an denen ein nicht autorisierter Benutzer versuchen könnte, auf das System zuzugreifen. Beginnen Sie damit, minimale Basis-Images zu erstellen. 

Leichtgewichtige Bilder, wie z. B. Alpine Linuxbieten weniger Pakete und potenzielle Schwachstellen als vollwertige Betriebssysteme. Durch die Anpassung von Container-Images zur Entfernung unnötiger Dienste, Pakete und Bibliotheken werden Schwachstellen weiter eingeschränkt.

Die Verwendung des FROM scratch-Ansatzes von Docker ist eine weitere effektive Taktik. Indem man bei Null anfängt und nur die notwendigen Komponenten hinzufügt, erstellt man sehr minimale Images. Die Reduzierung der Pakete bedeutet weniger potenzielle Einstiegspunkte für Angreifer und ein insgesamt stärkeres Sicherheitsprofil.

2. Kontrolle der Privilegstufen

 

Die Berechtigungen in Linux-Containern sind mächtig - und werden oft schlecht verwaltet. Das Ausführen von Containern als root birgt erhebliche Risiken. Angreifer, die einen Root-Container kompromittieren, können potenziell auf den Host gelangen und ihre Privilegien ausweiten. 

Die Lösung? Vermeiden Sie Root, wann immer möglich. Konfigurieren Sie stattdessen Container so, dass sie unter Nicht-Root-Benutzerprivilegien laufen, indem Sie Docker's USER Richtlinie.

Fügen Sie zum Beispiel eine USER Zeile in Ihr Dockerfile ein, um einen Nicht-Root-Benutzer anzugeben:

 

VON ubuntu

RUN useradd -m meinBenutzer

BENUTZER meinBenutzer

 

Die Nutzung der rollenbasierten Zugriffskontrolle (Role-Based Access Control, RBAC) fügt eine zusätzliche Ebene hinzu. Durch die Zuweisung spezifischer Privilegien an bestimmte Benutzer oder Dienste können Unternehmen die Auswirkungen eines nicht autorisierten Containerzugriffs minimieren.

3. Namensräume und Kontrollgruppen (cgroups) verwenden

 

Namespaces und Kontrollgruppen (cgroups) sind grundlegende Funktionen des Linux-Kernels, die die Isolation und die Kontrolle der Ressourcen in Containern durchsetzen. Namespaces machen Container unabhängig voneinander, indem sie Prozesse, Netzwerke und Einhängepunkte isolieren. Verwenden Sie immer die neuesten Namespace-Funktionen, um Informationslecks zu vermeiden und eine optimale Prozessisolierung zu gewährleisten.

Cgroups bieten Ressourcenbegrenzungen für Container, so dass Teams CPU, Arbeitsspeicher, Festplatten-E/A und mehr verwalten können, um sicherzustellen, dass kein Container die Systemressourcen monopolisiert. Vergessen Sie auch nicht, Ressourcenquoten festzulegen, um mögliche Schäden durch Ressourcenmissbrauch durch kompromittierte oder schlecht funktionierende Container zu begrenzen.

4. Scannen von Bildern auf Schwachstellen

 

Regelmäßiges Scannen von Container-Images auf Schwachstellen sollte ein fester Bestandteil Ihrer CI/CD-Pipeline sein. Tools wie Trivy, Clair und Anchore können in automatisierte Build-Pipelines integriert werden, um bekannte Schwachstellen in Paketen zu identifizieren, die in Ihren Containern verwendet werden. 

Kontinuierliche Aktualisierung von Images und Abhängigkeiten, um Sicherheitslücken zu schließen, wenn neue Gemeinsame Schwachstellen und Gefährdungen (CVEs) entdeckt werden.

Verwenden Sie verifizierte Images aus vertrauenswürdigen Quellen, anstatt beliebige Basis-Images aus öffentlichen Repositories einzusetzen. Überprüfte Images bieten die Gewähr für Qualität und Sicherheitsaktualisierungen. Führen Sie außerdem ein internes Image-Register mit kontrolliertem Zugriff und Aktualisierungsrichtlinien.

5. Begrenzung der Containerkapazitäten

 

Linux-Fähigkeiten ermöglichen es Containern, bestimmte privilegierte Aktionen auszuführen, ohne volle Root-Rechte zu benötigen. Standardmäßig bieten viele Container-Laufzeiten weit mehr Fähigkeiten, als normalerweise benötigt werden. Verwenden Sie Werkzeuge wie Docker's cap-drop um unnötige Fähigkeiten zu eliminieren.

 

Reduzieren Sie zum Beispiel die Fähigkeiten in der Docker Compose-Konfigurationsdatei:

 

Dienstleistungen:

  webapp:

    Bild: webapp-image

    cap_drop:

      - NET_RAW

      - SYS_ADMIN

 

Dieser Ansatz ermöglicht das Prinzip der geringsten Privilegien - es wird sichergestellt, dass jeder Container nur mit den minimal erforderlichen Rechten läuft.

6. Bilder signieren und verifizieren

 

Die Integrität von Container-Images ist entscheidend, um Manipulationen zu verhindern. Verwenden Sie Docker Content Trust (DCT), um Images zu signieren und sicherzustellen, dass nur signierte, vertrauenswürdige Images in der Produktion eingesetzt werden. Auf diese Weise können Sie sicherstellen, dass die Integrität des Container-Images vor der Bereitstellung nicht beeinträchtigt wurde.

Verwenden Sie außerdem ein internes Image-Register, um die Kontrolle über die Verteilung und Versionierung von Images zu erhalten. Tools wie Notary können Signier- und Überprüfungsprozesse erleichtern und bieten zusätzliche Sicherheit für die verwendeten Container.

7. Sichern Sie den Host

 

Die Sicherheit von Containern hängt stark von der Sicherheit des Host-Betriebssystems ab. Stellen Sie sicher, dass der zugrundeliegende Host gehärtet ist, indem Sie ihn regelmäßig aktualisieren und patchen, Intrusion Detection Systeme (IDS) einsetzen und unnötige Dienste deaktivieren.

Eine gute Praxis ist die Verwendung eines dedizierten, für Container optimierten Hosts, wie z. B. Container-optimiertes OS oder Red Hat CoreOS (RHCOS)zu verwenden, die einen minimalen Fußabdruck aufweisen, um die Angriffsfläche zu verringern. Diese Betriebssysteme wurden speziell für die Ausführung von Container-Workloads entwickelt und verringern die Möglichkeiten zur Kompromittierung des Hosts.

Für Teams die VPS-Hosting nutzenstellen Sie sicher, dass die virtuellen Server gehärtet, regelmäßig aktualisiert und mit für Container optimierten Lösungen konfiguriert sind, um Sicherheit und Leistung zu verbessern.

8. Netzwerksicherheit bei Containern

 

Die Segmentierung von Containernetzwerken ist ein wirksames Mittel, um die Bewegungsfreiheit von Angreifern im Falle einer Kompromittierung einzuschränken. Verwenden Sie Tools wie die integrierten Netzwerktreiber von Docker, um Container je nach ihrer Rolle in verschiedene Netzwerksegmente zu isolieren. Trennen Sie beispielsweise Frontend-Web-Server von Backend-Datenbanken, um sicherzustellen, dass ein Angreifer, selbst wenn er Zugang zum Frontend erhält, nicht direkt auf die Backend-Datenbank zugreifen kann.

Implementieren Sie außerdem Netzwerkrichtlinien in Kubernetes, um den eingehenden und ausgehenden Datenverkehr zu kontrollieren. Definieren Sie Regeln dafür, welcher Verkehr zwischen Containern innerhalb von Clustern und zwischen Containern und externen Diensten erlaubt ist, um ein Null-Vertrauensmodell innerhalb Ihrer vernetzten Container anzuwenden.

9. SELinux und AppArmor verwenden

 

Sicherheitsoptimiertes Linux (SELinux) und AppArmor sind MAC-Systeme (Mandatory Access Control), die dazu beitragen, strenge Sicherheitsrichtlinien für Ihre Container durchzusetzen.

Mit SELinuxkönnen Sie festlegen, welche Prozesse auf welche Dateien zugreifen dürfen, und so das Risiko von gefährdeten Containern erheblich verringern, indem Sie nicht autorisierte Interaktionen auf einer granularen Ebene einschränken.

AppArmor kann so konfiguriert werden, dass der Zugriff oder die Ausführung einer containerisierten Anwendung eingeschränkt wird. Beides trägt dazu bei, dass selbst bei einer Kompromittierung eines Containers die möglichen Aktionen eingeschränkt werden, wodurch die Auswirkungen des Angriffs verringert und die Gesamtintegrität des Systems gewahrt wird.

10. Überwachung und Prüfung von Containern

 

Die Überwachung von Container-Aktivitäten ist für ein proaktives Sicherheitsmanagement unerlässlich. Verwenden Sie Tools wie Falco oder Sysdig, um abnormales Verhalten zu erkennen, z. B. unautorisierten Dateizugriff, die Erstellung von Prozessen oder Versuche der Privilegienerweiterung. Die Protokollierung ist ebenso wichtig: Stellen Sie sicher, dass die Protokolle von Containern zentral verwaltet und geschützt werden, um Manipulationen zu vermeiden..

Container-Orchestrierungstools wie Kubernetes bieten integrierte Überwachungslösungen wie kube-audit, die Benutzeraktivitäten und Änderungen an der Containerumgebung verfolgen. Diese Auditing-Systeme ermöglichen es Unternehmen, potenzielle Sicherheitsbedrohungen schnell zu erkennen und darauf zu reagieren.

Schlussfolgerung

 

Die Sicherheit von Containern ist keine Einheitslösung für alle. Stattdessen handelt es sich um einen mehrschichtigen Ansatz, der die Minimierung von Angriffsflächen, die Begrenzung von Privilegien, die Nutzung von Kernel-Isolierungsfunktionen und die Durchsetzung von Best Practices über den gesamten Container-Lebenszyklus hinweg umfasst. 

Wenn sie sich an diese Best Practices halten, können Unternehmen sicherstellen, dass ihre Linux-Container gegen sich entwickelnde Sicherheitsbedrohungen resistent bleiben und gleichzeitig die Vorteile der Skalierbarkeit und Effizienz nutzen, die containerisierte Umgebungen bieten.

 

Zusammenfassung
Absicherung von Linux-Containern: Best Practices für den Schutz von containerisierten Anwendungen
Artikel Name
Absicherung von Linux-Containern: Best Practices für den Schutz von containerisierten Anwendungen
Beschreibung
Erfahren Sie, wie Sie Linux-Container mit Best Practices wie der Minimierung von Angriffsflächen sichern, um Anwendungen und Daten zu schützen.
Autor
Name des Herausgebers
TuxCare
Logo des Herausgebers

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

Inhaltsübersicht
Holen Sie sich die Open-Source-Sicherheitslösungen, die Sie brauchen

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.