Definition
Als Laufzeitsicherheit von Containern bezeichnet man den Schutz laufender Container vor aktiven Bedrohungen, wie z. B. der Ausführung von Schadcode oder der Rechteausweitung innerhalb eines Containers oder des Systems, auf dem er ausgeführt wird.
Überblick
Durch die Bereitstellung von Funktionalitäten, die speziell für die Erkennung von Sicherheitsrisiken in laufenden Containern entwickelt wurden, hilft eine Container-Laufzeitsicherheit Unternehmen, größere Schwachstellen zu identifizieren und zu beheben, die sie andernfalls möglicherweise nicht bemerken würden. Runtime-Security-Lösungen erreichen das, indem sie die Parameter für das normale Verhalten in Live-Umgebungen festlegen, und so ungewöhnliches Verhalten erkennen, hinter dem sich eine Sicherheitslücke verbergen könnte.
Container Runtime Security umfasst Methoden und Tools zur Erkennung und Minderung von Sicherheitsrisiken in laufenden Containern. Ziel ist es, sicherzustellen, dass „aktive“ containerisierte Anwendungen – im Gegensatz zu statischen Container-Images – geschützt sind.
Die Funktionsweise von Container Runtime Security
Laufzeitsicherheit funktioniert in der Regel durch die Überwachung des Verhaltens laufender Container, um Anomalien zu identifizieren – also etwa ungewöhnliche Systemaufrufe, Zugriff auf normalerweise nicht genutzte Ressourcen oder unerwartet startenden Prozessen.
Container-Runtime-Umgebungen können Dutzende oder sogar Hunderte von Containern umfassen, die sich kontinuierlich ändern. Eine rein statische Risikoanalyse reicht daher nicht aus. Stattdessen nutzen moderne Lösungen eine dynamische Risikobewertung, um Anomalien auch in sich ständig wandelnden Umgebungen zu erkennen.
Eine Runtime Security analysiert deshalb Verhaltensmuster und Kriterien in der gesamten Laufzeitumgebung, um normales, typisches Verhalten zu verstehen und abweichendes Verhalten identifizieren zu können. Das ermöglicht einen Echtzeitschutz und eine schnelle Reaktion auf potenzielle Bedrohungen. Ein Beispiel: Ein Laufzeitsicherheitstool überwacht das Verhalten eines Containers über einen bestimmten Zeitraum und zeichnet Änderungen in dessen Netzwerkverkehr oder Ressourcenverbrauch auf. Basierend auf diesen Daten kann es dann Aktivitäten identifizieren, die nicht zum Normalbetrieb passen – etwa ein plötzlicher Anstieg des Speicherverbrauchs ohne jeden ersichtlichen Grund. Tritt ein solches Verhalten auf, kann es als potenzielles Sicherheitsrisiko markiert werden.
Gängige Bedrohungen in der Container-Laufzeit
Container-Runtime-Security-Tools können typischerweise helfen folgende Sicherheitsprobleme zu entdecken:
- Anomalien: Schadcode innerhalb eines Containers kann von anderen Sicherheitstools wie Container-Image-Scannern übersehen werden. Laufzeit-Sicherheitstools hingegen erkennen ungewöhnliche Code-Execution-Muster oder typische Signaturen von Malware.
- Configuration Drift: Änderungen an den Konfigurationseinstellungen eines laufenden Containers, die Sicherheitsrisiken nach sich ziehen – z. B. Öffnen eines unsicheren Netzwerkports. Diese Risiken sind für herkömmliche Scanning-Tools nicht sichtbar, da sie erst in der Laufzeit entstehen, wenn ein Administrator Änderungen vornimmt.
- Privilege Escalation: Angriffe zur Rechteausweitung, also Attacken, bei denen Angreifer die Berechtigungen eines Containers erhöhen, um auf Ressourcen zuzugreifen oder Aktionen auszuführen, die normalerweise nicht erlaubt wären. Solche Angriffe sind oft erst zur Laufzeit erkennbar, auch wenn Image-Scanner unter Umständen Schwachstellen auch in der Container-Konfiguration identifizieren können, die für die Rechteausweitung genutzt werden könnten.
- Unsichere Datenverwaltung: Unsichere Handhabung sensibler Daten, beispielsweise durch fehlende Verschlüsselung bei der Datenübertragung zwischen Containern.
- Host-Schwachstellen: Sicherheitslücken im Betriebssystem des Host-Systems oder in der Container-Runtime-Software, die Angreifer nutzen könnten, um Container zu kompromittieren oder sich mehr Rechte zu verschaffen.
Welche Rolle spielt Laufzeitsicherheit in einem Container-Security-Konzept
Laufzeitsicherheitsrisiken sind nur ein Aspekt der Container-Security. Daher sind Container-Runtime-Security-Lösungen nur ein Teil des umfassenden Schutzes für containerisierte Anwendungen. Weitere wichtige Sicherheitsmaßnahmen umfassen:
- Application Security Tools: Helfen Entwicklern, sicheren Code im Software Development Lifecycle (SDLC) zu schreiben.
- Container-Image-Scanner: Analysieren Container-Images auf Malware und unsichere Konfigurationen vor der Bereitstellung.
- Container-Registries: Bieten sichere Repositories für die Speicherung und Verteilung von Container-Images.
- Infrastructure Scanning & Configuration Management: Lösungen wie Cloud Security Posture Management (CSPM) und Kubernetes Security Posture Management (KSPM) sichern die Infrastruktur und Services, die Container bereitstellen.
Diese Lösungen minimieren Sicherheitsrisiken während der Entwicklung, Erstellung und Bereitstellung von Containern. Sie sind jedoch nicht in der Lage, Bedrohungen zu erkennen, die erst während der Laufzeit auftreten. Hier setzen dann Container-Runtime-Security-Tools an.
Ein Container kann zum Beispiel Malware enthalten, die nicht allein durch statische Image-Scans erkannt wird, sondern erst, wenn der Container tatsächlich ausgeführt wird. Nur Laufzeitsicherheitstools können das Verhalten des Containers überwachen und bösartige Aktivitäten im Betrieb erkennen.
Laufzeitsicherheit spielt im SDLC insbesondere in den Phasen Bereitstellung und Wartung eine entscheidende Rolle, da sie Anwendungen in ihren Produktionsumgebungen schützt, Schwachstellen erkennt und Angriffe in Echtzeit abwehrt.
Während sich die Branche zunehmend der „Shift-Left“-Philosophie verschreibt – also Sicherheitsmaßnahmen frühzeitig im Entwicklungsprozess integriert – ist eine umfassende Sicherheitsstrategie nur durch eine Kombination mit einem „Shift-Right“-Ansatz vollständig. Runtime Security verkörpert diesen „Shift-Right“-Ansatz, indem sie Anwendungen in ihrer Laufzeit schützt und so einer umfassenden und ganzheitlichen Sicherheit im Softwareentwicklungsprozess beiträgt.
Verantwortlichkeiten für Container Runtime Security
Die primäre Verantwortung für die Erkennung von Sicherheitsrisiken und Schwachstellen in der Laufzeit liegt sowohl bei den IT-Operations- als auch bei den Security-Teams.
Allerdings braucht es für die Behebung dieser Sicherheitsrisiken häufig eine Zusammenarbeit mit den Entwicklern. Denn diese müssen die zugrunde liegenden Probleme im Code der Anwendungen oder in den Container-Images beheben und die Images anschließend neu erstellen.
Daher ist Runtime Security ein Paradebeispiel für die Vorteile eines DevSecOps-Ansatzes, bei dem Entwickler-, IT-Operations- und Security-Teams eng zusammenarbeiten.
Sind dagegen die Operations-Teams allein für die Laufzeitsicherheit zuständig, können sie zwar vielleicht Sicherheitslücken identifizieren, haben dann aber oft Schwierigkeiten, mit den Entwicklern effizient an einer zeitnahen und nachhaltigen Lösung zu arbeiten.
Kubernetes und Container Runtime Security
Die meisten Container werden mit einem Orchestrierungs-Tool wie Kubernetes betrieben. Kubernetes verwaltet Container in einem Cluster aus mehreren Servern.
Dadurch entstehen zusätzliche potentielle Risiken, weil Kubernetes weitere Services und Konfigurationen in die Laufzeitumgebung einführt – darunter womöglich auch Schwachstellen in der Kubernetes-Control-Plane oder unsichere Netzwerkeinstellungen.
Ältere Container-Runtime-Security-Lösungen konzentrierten sich ausschließlich auf den Schutz der Container selbst. Da Kubernetes jedoch mittlerweile als Standard für eine skalierbare Bereitstellung von Containern gilt, ist es essentiell, eine Sicherheitslösung zu wählen, die sowohl Container als auch Kubernetes-Risiken überwacht.
Sichere Container – von Code bis zur Laufzeit mit JFrog
JFrog bietet ein umfassendes Set an Security Features für Container, darunter:
- Container-Image-Scanning mit JFrog Xray zur Identifikation von Schwachstellen vor der Bereitstellung.
- Sichere Image-Verwaltung mit JFrog Artifactory, um vertrauenswürdige Container-Images zu speichern und zu verteilen.
- Laufzeitschutz mit JFrog Runtime Security, um laufende Container zu überwachen und Bedrohungen in Echtzeit zu erkennen.
Dank dieser JFrog Features können Sie sicherstellen, dass Ihre Container und die Laufzeitumgebung über alle Phasen des SDLC hinweg geschützt sind.
Für weitere Informationen starten Sie eine virtuelle Produkt-Tour oder vereinbaren Sie gleich eine individuelle Demo.