Vielleicht hat der ein oder andere bereits von der Zero Trust-Architektur (ZTA) im Zusammenhang mit IT-Sicherheit und Cloud gehört. Die Cloud Native Computing Foundation (CNCF ) führt Zero Trust als eine der drei Top-Prioritäten (also Zero Trust, Secure Software Supply Chain und DevSecOps) im Bereich Cloud-Security an. Es ist also höchste Zeit, sich in einem Blogartikel noch tiefer mit diesem Thema zu befassen.
In einem früheren Blogartikel zu den 15 Sicherheitsprinzipien der Softwareentwicklung haben wir bereits das Thema Zero Trust angeschnitten, aber nicht weiter behandelt. |
In diesem Beitrag beschäftigen wir uns damit, was Zero Trust eigentlich bedeutet, warum die perimeterbasierte Sicherheit im Cloud-Umfeld nicht mehr ausreicht und inwiefern Zero Trust uns hierbei helfen kann.
Was ist Zero Trust?
Zero Trust ist ein Konzept und eine Strategie. Es handelt sich nicht um eine einzelne Aktion oder Technologie, die man kaufen kann. Das Kernprinzip ist: "vertraue niemandem, verifiziere alles"
Hinter "vertraue niemandem" steht die Annahme, dass im Design der Architektur an jeder Stelle davon ausgegangen wird, dass ein Angreifer bereits erfolgreich Zugriff auf die entsprechende Komponente erlangt hat (Stichwort "assume breach").
Konkret bedeutet dies, dass einem Service im Netzwerk nicht aufgrund seiner IP-Adresse oder Position im Netzwerk (hinter bspw. Firewall und DMZ) vertraut wird, sondern das Vertrauen erst nach erfolgreicher Verifizierung gewährt wird. Die eigentliche Kommunikation beginnt erst nach erfolgreicher Verifizierung.
Damit wird (implizites) "Vertrauen" sozusagen als Schwachstelle betrachtet, dessen Summe man naturgemäß minimal halten möchte.
Klassische Burggräben vs. Zero Trust
Für Unternehmen ist es heutzutage nichts Ungewöhnliches mehrere interne Netzwerke, getrennte Standorte mit eigenen Infrastruktur sowie remote und/oder mobil arbeitende Mitarbeitern zu haben und Cloud-Services zu nutzen.
Durch den großen Zuwachs von Umfang und Komplexität verschiedener Dienste existieren keine einzelnen einfach zu identifizierenden Abgrenzungen (Perimeter) mehr. Mit traditionellen "Burggräben" / Netzwerkperimetern (bspw. in Form von DMZs, Firewalls und einer alleinigen Netzwerksegmentierung zwischen dev und prod Systemen) geht die enge Kontrolle über solch heterogene Systemlandschaft über kurz oder lang verloren. Hinzu kommt der Umstand dass manuelle Netzwerkperimeter dazu neigen größer als unbedingt nötig zu sein, womit es dem Angreifer erlaubt wird, sich nach der ersten Infizierung leicht durch mehrere Systeme lateral zu bewegen (siehe Network Lateral Movement).
Wird diese heterogene und breite Infrastruktur noch mit der Umsetzung moderner Cloud-Native Microservices, Event Brokern (bspw. Kafka) und weiteren (individuell entwickelten) Diensten kombiniert nimmt die Service zu Service Kommunikation im Verhältnis zur Client-Server Interaktion immer weiter zu. Werden die Netzwerkperimeter nicht kontinuierlich an die Verschiebungen in den Kommunikationswegen angepasst entstehen unweigerlich Löcher in der klassischen netzwerkbasierten Perimetersicherheit. Mit manueller Segmentierung ist es kaum möglich das gewohnte Sicherheitslevel zu halten ohne zum Bremsklotz für die Softwareentwicklung und Infrastruktur zu werden.
Security in einer Cloud-Native-Welt erfordert also neue Ansätze. Zero Trust ist genau dieser Ansatz. Es beschreibt ein Umdenken von vertrauenswürdigen Kontexten und Segmenten zu der Annahme, dass Angreifer bereits im Netzwerk präsent sind.
Durch das Entfernen und Minimieren von Vertrauenskontexten wird die Angriffsoberfläche stark reduziert. Wenn ein Angreifer erfolgreich ist, kann er sich nur weiterbewegen, indem er immer wieder weitere Prüfungen umgeht. Insgesamt erhöht dies die Anzahl und Stärke der Security-Maßnahmen, die überwunden werden müssen.
Unter dem Strich bewegt man sich mit ZTA von einer burg- oder perimeterbasierten Architektur hin zu einer identitätsbasierter Microsegmentation.
Mapping zwischen Zero Trust Architektur und traditioneller Infrastruktur Sicherheit
Traditionelle Infrastruktursicherheit | Cloud-Native-Sicherheit |
Perimeterbasierte Sicherheit (z. B. Firewall), bei der interne Kommunikation als vertrauenswürdig betrachtet wird | Zero-Trust-Sicherheit mit verifizierter Service-to-Service-Kommunikation und keinem impliziten Vertrauen zwischen den Umgebungen |
Statische IP-Adressen und statische Hardware für bestimmte Anwendungen | Bessere Ressourcenauslastung, Wiederverwendung und Teilen von Ressourcen (unter anderem auch IP-Adressen und Hardware) |
Identität auf Basis von IP-Adressen | Identität auf Basis von Serviceidentitäten |
Services laufen an bekannten und erwarteten Stellen in der Infrastruktur | Services können überall in der Umgebung laufen, auch über die Grenzen verschiedener Cloud-Anbieter und privater Rechenzentren hinweg. |
Überblick über die Prinzipien von ZTA
Die Grundidee von ZTA ist, dass jede Entität ihre Identität nachweisen kann, zum Beispiel durch Zertifikate, Tokens usw. Diese Entitäten können unabhängig voneinander die Identität anderer prüfen, indem sie eine Public Key Infrastructure (PKI) verwenden. Es ist auch wichtig sicherzustellen, dass der Informationsaustausch zwischen ihnen immer vertraulich (verschlüsselt) stattfindet und dass externe Parteien diese Kommunikation nicht fälschen können.
Darüber hinaus wird das Sicherheitsprinzip der "Minimalen Berechtigungen" konsequent verfolgt (siehe auch "Least Privilege"). Dadurch wird das implizite Vertrauen zwischen Data, Assets, Anwendungen und Services (DAAS) entzogen. Abschließend erfolgt eine feingranulare Netzwerksegmentierung (Stichwort: "Micro-Segmentation").
Zero Trust mit Service Mesh
Ein Service Mesh ist eine Infrastrukturschicht, welche in die Service-to-Service Kommunikation eingreift und oft im Zusammenhang von Kubernetes-Clustern verwendet wird.
Dieser Eingriff führt dazu, dass die Kommunikation zwischen den Services nur noch über dieses Service Mesh erfolgen kann. Dadurch entsteht eine zentrale Konfigurationsmöglichkeit zur Steuerung von Datenflüssen, Bereitstellung von Service Discovery und Load Balancing. Im Hinblick auf die Sicherheit sind die wichtigsten Aspekte eine hohe Transparenz der Kommunikationsmöglichkeiten der Services und die Möglichkeit, Sicherheitsregeln zentral durchsetzen zu können. Dazu gehören auch identitätsbasierte Zugriffe und mutual TLS (Funktionsweise von mTLS | Cloudflare).
Ein großer Vorteil eines Service Mesh besteht darin, dass keine Änderungen am Code der geschützten Anwendungen erforderlich sind. Dadurch müssen sich diese Anwendungen nicht mit der korrekten Authentifizierung des Kommunikationspartners oder der Sicherheit der Verbindung durch die aktuellen kryptografischen Verfahren befassen, da das vorgeschaltete Service Mesh diese Aufgaben bereits transparent erledigt. Somit muss man sich auch nicht selber mit der Schlüsselverwaltung (Erstellung, Überprüfung, Austausch, Widerrufen, …) der PKI kümmern, denn dies wird vom Service Mesh automatisch im Hintergrund erledigt.
Leitlinien für die praktische Umsetzung
Für die erfolgreiche Implementierung einer Zero Trust Architektur im Bereich Cloud Computing sollten folgende Leitlinien beachtet werden:
-
Sorgfältige Verifikation der Identität: Implementieren Sie starke Authentifizierungsmechanismen für Services und Benutzer, wie bspw. Multifaktorauthentifizierung, digitale Zertifikate und kurzlebige Tokens.
-
Automatische Durchsetzung von Sicherheitsrichtlinien: Nutzen Sie automatische Tools und Technologien, um Zugriffsregeln konsistent und effektiv durchzusetzen (bspw. GitOps und Infrastructure as Code). Diese optimierten Abläufe im Betrieb der Systeme und reduziert die Wahrscheinlichkeit von Bedienungsfehlern.
-
Integration von Zero Trust in die DevOps-Prozesse: Integrieren Sie die Zero Trust Prinzipien in den DevOps Arbeitsablauf und machen Sie die Sicherheitschecks zu einem integralen Bestandteil des Software Development Lifecycle (SDLC). Damit wird sichergestellt, dass Zero Trust in die Basis jeder Cloud-basierten Anwendung einfließt.
Wenn Sie bereits eine Cloud-Architektur haben und diese zu einer Zero Trust-Architektur umbauen möchten, empfiehlt es sich, mit einer groben Risikoanalyse zu beginnen. Das Einbeziehen der Ergebnisse einer kontinuierlich durchgeführten Risikoanalyse hilft dabei jederzeit den Überblick über die Prioritäten zu behalten und sich auf die Teile mit dem größten positiven Einfluss auf das Gesamtrisiko zu konzentrieren.
Zusammenfassung
Zero Trust-Architekturen sind der richtige Ansatz für Cloud-basierte Systeme. Sie erhöhen die Sicherheitsmaßnahmen, reduzieren die Angriffsfläche und verbessern die Sichtbarkeit und Kontrolle. Durch die Anwendung des Zero Trust-Ansatzes schützen Organisationen sensible Daten und Assets, gewährleisten die Einhaltung regulatorischer Vorgaben und stärken das Vertrauen der Kunden in ihre Systeme.
Wenn Sie tiefer in das Thema einsteigen möchten, empfehlen wir die Publikation der amerikanischen Bundesbehörde NIST zum Thema Zero Trust-Architekturen.
Außerdem haben Google und Microsoft zwei sehr ausführliche Artikel zu diesem Thema veröffentlicht, die einen praktischen Einstieg bieten:
Bei Fragen und Beratungsbedarf können Sie auch gerne die viadee kontaktieren.
zurück zur Blogübersicht