Sicherheit für die 4 Cs von Cloud-nativen Systemen: Cloud, Cluster, Container und Code, Teil 1

Originalbeitrag von Magno Logan, Threat Researcher

Cloud-native Softwareentwicklung dient der Erstellung und dem Ablauf von skalierbaren Anwendungen in der Cloud – seien es öffentliche, private oder hybride Umgebungen. Der Ansatz baut auf quelloffene und proprietäre Software, um Anwendungen wie Microservices bereitzustellen, die in einzelnen Containern in isoliert ausführbare Prozesse verpackt sind. Da Unternehmen mehrere Container auf mehreren Hosts laufen lassen, setzen sie Orchestrierungssysteme wie etwa Kurbernetes ein, die über CI/CD-Tools mit DevOps-Methodologien bereitgestellt und verwaltet werden. Mithilfe von Cloud-nativen Technologien können Unternehmen das Meiste aus ihren Cloud-Ressourcen herausholen mit weniger Overhead, aber schnelleren Antwortzeiten und einfacherer Verwaltung. Wie bei jeder Technologie, die unterschiedliche, miteinander verbundene Tools und Plattformen nutzt, spielt auch beim Cloud-nativen Computing Sicherheit eine entscheidende Rolle. Es gibt heutzutage kein komplexes Softwaresystem, das vor Hacking gefeit ist und zu 100% undurchdringlich ist. Deshalb stellt das Konzept einer tiefgreifenden Verteidigung ein Muss für die Sicherheit dar.

Die tiefgreifende Verteidigung oder Defense-in-Depth beruht auf mehreren Sicherheitsschichten mit Barrieren über verschiedene Bereiche im Unternehmen hinweg. Damit soll der Schutz gewährleistet sein, auch wenn eine Kontrollschicht versagt. Cloud-native Sicherheit setzt ebenfalls auf dieses Konzept und unterteilt die Strategie für Cloud-native Systeme in vier unterschiedliche Schichten. Kubernetes nennt dies „The 4Cs of Cloud-native Security“.

Bild 1. Die 4 Cs der Cloud-nativen Sicherheit

Wichtig ist, Sicherheitskontrollen in jeder Schicht anzuwenden, denn jeder Layer liefert eine eigene Angriffsoberfläche und wird nicht zwangsläufig durch andere Layer geschützt. So wird etwa eine unsichere Webanwendung bei einem Angriff über SQL Injection nicht durch äußere Schichten (siehe Bild 1) dagegen geschützt, wenn keine spezielle Sicherheitssoftware vorhanden ist. Sicherheitsverantwortliche müssen jedes mögliche Szenario mit einbeziehen und Systeme auf jede Art schützen.

Cloud-Sicherheit

Der Cloud Layer umfasst die Infrastruktur, auf der Server betrieben werden. Beim Aufsetzen eines Servers bei einem Cloud Service Provider (CSP) sind viele unterschiedliche Dienste beteiligt. Und obwohl die Hauptverantwortung für die Sicherung solcher Dienste (z.B. Betriebssystem, Plattformverwaltung und Netzwerkkonfiguration) bei den CSPs liegt, ist der Kunde nach wie vor für die Überprüfung und Konfiguration dieser Dienste sowie für die Überwachung und Sicherung seiner Daten verantwortlich. Dieses Modell der geteilten Verantwortung ist wichtig, wenn ein Unternehmen Ressourcen und Dienste in die Cloud verlagert.

Folgende sind die häufigsten Probleme, die in den heutigen Cloud-Systemen auftreten:

  • Automatisierung: Automatisierung ist für eine schnellere Erstellung neuer Systeme und für die Installation neuer Anwendungen sehr nützlich. Doch entstehen dadurch auch Fehler und Sicherheitsprobleme schneller, wenn sie nicht richtig geprüft und überwacht wird. Abgesehen von den Bedrohungen selbst ist auch die Geschwindigkeit, mit der Bedrohungen in einem angreifbaren, mit dem Web verbundenen System oder Gerät installiert werden, besorgniserregend. Forscher fanden in einer Honeypot-Studie heraus, dass Cyberkriminelle lediglich 52 Sekunden für den Scan und Angriff ihrer nicht gesicherten Geräte benötigten.

Unternehmen können diese Art von Problemen vermeiden, wenn sie die Empfehlungen ihrer Cloud Provider befolgen und regelmäßige Audits durchführen, um sicherzustellen, dass alle Konfigurationen ihre Richtigkeit haben, bevor sie ins Internet gehen.

Der Einsatz von Infrastructure-as-Code (IaC)-Practices stellt eine effiziente Maßnahme dar, die gewährleistet, dass Systeme richtig erstellt und ihre Konfiguration korrekt ist. IaC verwendet Code, um die sachgerechte Bereitstellung von IT-Architekturen zu automatisieren. Damit lässt sich die manuelle Bereitstellung durch DevOps-Ingenieure eliminieren, wodurch Versehen und menschliche Fehler minimiert werden, solange bewährte Verfahren befolgt werden. Tools wie Terraform, Ansible und CloudFormation bieten Unterstützung beim Festlegen der Grundeinstellungen für die Infrastruktur, einschließlich derer für die Sicherheit. Auch helfen sie sicherzustellen, dass die Einstellungen unverändert bleiben, es sei denn, jemand genehmigt und stellt den notwendigen Code zur Verfügung, um sie zu ändern.

Der Einsatz von IaC Practices ist mittlerweile die Norm beim Erstellen und dem Aufbau von Cloud-Umgebungen. Es ist tatsächlich nicht mehr nötig, Server manuell einzurichten und zu konfigurieren – Automatisierung ist der Schlüssel zur Sicherung von Cloud-Architekturen.

Wichtig ist es zudem, den Sicherheitsempfehlungen des Cloud Service Providers zu folgen. Einige der bekanntesten Best Practices von CSP:

Zu den Lösungen, die Ein- und Übersichten in Cloud-Architekturen bieten sowie automatisierte Sicherheits- und Compliance-Checks, gehört Trend Micro™ Cloud One – Conformity.

Cluster-Sicherheit

Beim Thema Cluster Security geht es zumeist um Kubernetes, denn dies ist das derzeit am häufigsten eingesetzte Container Orchestrierungs-Tool. Doch die Sicherheitsprinzipien gelten genauso auch für andere Lösungen.

Es gibt drei Cluster-Hauptelemente, um die sich Unternehmen kümmern müssen:

  • Cluster Services. Hier geht es um die sachgemäße Konfiguration und die Zugangskontrolle zu den Services, die im Cluster laufen. Zur Absicherung dieser Dienste empfiehlt Kubernetes das Aufsetzen bestimmter Schutzmaßnahmen wie Ressourcenmanagement und das Prinzip der geringsten Privilegien für den Ablauf der Services. Des Weiteren sollten geeignete Authentifizierung und Autorisierung für das Cluster vorhanden sein, Verschlüsselung für den Verkehr mit Transport Layer Security (TLS) sowie der Schutz für kritische Informationen. Weitere technische Details zur Sicherheit der Cluster-Services bietet das Center for Internet (CIS) Kubernetes Benchmark.
  • Cluster Networking. In diesem Bereich ist die richtige Zuweisung von Ports wichtig, um die Kommunikation zwischen Containern, Pods und Diensten zu erleichtern. Es muss sichergestellt sein, dass das Kubernetes-Netzwerkmodell mithilfe einer Container-Netzwerkschnittstelle (CNI), die es den Benutzern ermöglicht, den Pod-Verkehr einzuschränken, sicher implementiert wird.

Weitere detaillierte Empfehlungen für die sichere Container-Orchestrierung bietet der Blogeintrag zur Sicherheit von Kubernetes Container-Orchestrierung.

Im 2. Teil beschreiben wir, wie Container- und Code-Sicherheit – die nächsten 2C – aussehen sollte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.