Dev-Ops: Sicherheitsüberlegungen für Microservices

Microservices haben erst vor wenigen Jahren ihren Weg in die Softwareentwicklung gefunden. Auf Basis einer Microservice-Architektur erstellen Entwickler Softwareanwendungen, die sich einfacher aktualisieren und skalieren lassen.

Vor der Zeit der Mikrodienste verfolgten Entwickler einen monolithischen Ansatz. Dabei werden sämtliche Funktionen einer Software-Applikation in einer einzelnen, unteilbaren Einheit erstellt. Wenn Anwendungen umfangreicher und komplexer werden, wirft dieser Ansatz Probleme auf. Stößt man beispielsweise in einer Anwendung auf einen Fehler und will ihn beheben, müssen die übrigen Funktionen der Applikation ebenfalls offline geschaltet werden. Microservices lassen sich unabhängig voneinander entwickeln, und man kann jede Funktion separat erstellen und freigeben. Dienste funktionieren dabei unabhängig voneinander, und sie können auch ausfallen, ohne andere zu beeinträchtigen.

Anzeige

Innerhalb einer Microservices-Architektur unterteilt man eine komplexe Anwendung in viele kleinere Bausteine. Jeder einzelne von ihnen ist eine ausführbare Software, und die Gesamtheit dieser Komponenten bietet die volle Funktionalität einer einzelnen, monolithischen Anwendung.

Ein weiterer Vorteil, neben der Größe von Microservices ist, dass man sie in kleinen Teams mit klar abgegrenzten Verantwortlichkeiten, aber unabhängig voneinander, managen kann.

Beide Ansätze, die Microservices-Architektur und der monolithische Ansatz, haben ihre eigenen Vor-und Nachteile bei der Applikationsentwicklung. Heutzutage verabschieden sich allerdings viele Entwickler vom traditionellen monolithischen Ansatz. Die Funktionen von Microservices passen einfach besser zu den schnell wachsenden und heterogenen Umgebungen eines modernen Unternehmens.

Anzeige

Bevor man sich an die Einführung einer Microservices-Architektur macht, sollte man sich allerdings die damit verbundenen Sicherheitsrisiken genauer ansehen: Welche sind die wichtigsten Vorteile von Microservices und welche Sicherheits- und Datenschutzprobleme bringen sie mit sich?

Vorteile von Microservices

Für Entwickler liegt der größte Vorteil von Microservices darin, Komponenten zu aktualisieren und zu entwickeln, ohne eine komplette Anwendung offline zu nehmen. Diese Eigenschaft verhindert auch, dass Teams kollidieren, die ebenfalls Updates durchführen oder einen Service komplett neu aufbauen. Je umfassender und komplexer eine einst simple Anwendung wird, desto mehr Entwicklungsteams führen gleichzeitig Updates durch. Bei einem monolithischen Ansatz ein großes Problem! Wenn die Anwendung auf einer einzigen Einheit basiert, gibt es häufig Überschneidungen zwischen den Teams. Das führt nicht selten dazu, dass Änderungen am Code ebenfalls kollidieren. Das wiederum erschwert Updates und wirkt sich in der Folge auf Qualität, Verfügbarkeit und Leistungsfähigkeit der Anwendung aus. Demgegenüber bieten Microservices einen strukturierten Ansatz. Weil sie so klein sind, können sie nicht nur in relativ kurzer Zeit neu erstellt und ersetzt werden, sondern es ist auch möglich, das voneinander unabhängige Teams an den einzelnen Komponenten/Funktionen arbeiten. Dank dieser Architektur arbeiten Teams gleichzeitig an unterschiedlichen Bereichen einer Anwendung. Jedes Team führt eigene Updates und Entwicklungszyklen durch, ohne andere zu beeinträchtigen. Das gilt auch für Änderungen am Code.

Ohne Frage beschleunigen die Möglichkeiten eines auf Microservices aufbauenden Designs die Entwicklung und Bereitstellung ganz erheblich. Man kann einzelne Komponenten aktualisieren, während andere Teams entwickeln und testen, ohne dass gleich das gesamte Anwendungsframework oder der Dienst aktualisiert werden müssen.

Microservices haben ganz offensichtlich viele Vorteile. Entwickler sollten dabei aber die Sicherheits- und Datenschutzprobleme nicht außer Acht lassen, die sich aus genau diesen ergeben.

Sicherheitsüberlegungen für Microservices

Microservices vereinfachen und beschleunigen die Anwendungsentwicklung. Genau diese Funktion hat aber einige Sicherheitsherausforderungen im Gepäck. Unterschiedliche Teams bearbeiten unabhängig voneinander unterschiedliche Funktionen. Dabei kann der Datenschutz leicht ins Hintertreffen geraten.

Wenn eine Anwendung Zugriff auf personenbezogene Daten hat – egal, ob es sich um Kunden- oder Unternehmensdaten handelt – muss sichergestellt werden, dass die Daten nicht in falsche Hände geraten. Das erreicht man, indem nur die dazu autorisierten Personen auf diese Daten zugreifen können. Zudem muss gewährleistet sein, dass die Sicherheit nicht durch Entwicklungs-Updates beeinträchtigt wird. Alles, was mit personenbezogenen Daten zu tun hat, muss einem ” Privacy by Design”-Konzept, beziehungsweise dem CIA-Dreieck folgen. Hier sind Vertraulichkeit, Integrität, und Verfügbarkeit (Confidentiality, Integrity, Availability, CIA) gleichberechtigt vertreten.

Es gibt noch ein weiteres Sicherheitsproblem. Durch die Zerlegung von Anwendungen in mehrere Komponenten kann sich die Angriffsfläche eines Unternehmens vergrößern. Wenn man das Thema Sicherheit ernst nimmt, muss man Grenzen ziehen, was die einzelnen Teams genau verwalten, was sie tun dürfen und was nicht und vor allem worauf sie zugreifen dürfen und worauf besser nicht. Jede Anwendungskomponente muss ausreichend geschützt sein, die Sicherheitsmaßnahmen verwaltet und regelmäßig aktualisiert werden. Wir werden täglich mit neuen Angriffstechniken und Bedrohungen konfrontiert. Sicherheit ist hier wie sonst auch ein kontinuierlicher Prozess. Patches müssen so schnell wie möglich eingespielt und Schwachstellen behoben werden.

Dazu kommen die unterschiedlichen regulatorischen Anforderungen für Dienstleistungsbranchen wie PCI-, DSS- oder SOX-Compliance und die EU-Datenschutz-Grundverordnung, DSGVO. Unternehmen sind angehalten, sämtliche Umgebungen mindestens intern zu auditieren, um sicherzustellen, dass sie die Auflagen erfüllen. Sonst drohen die bekannten hohen Geldstrafen und andere Sanktionen.

DevSecOps erfreut sich in letzter Zeit wachsender Beliebtheit. Ein Trend, der dafür sorgt, Sicherheitsbelange gleich zu Beginn eines Entwicklungslebenszyklus zu berücksichtigen. Deshalb ist DevSecOps ein Verfahren, das sich für Microservices besonders empfiehlt. Sicherheit sollte bei jedem Anwendungsupdate berücksichtigt werden. In komplexen Umgebungen sollte jedes Team nicht nur für die verschiedene Anwendungskomponenten verantwortlich sein, sondern gleichermaßen für die damit verbundenen Sicherheitsaspekte. Datenschutz und Sicherheit sollten in jeden Entwicklungsschritt eingebettet werden.

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.

Fazit

Microservices bieten die Möglichkeit Applikationen und Dienste wesentlich schneller zu entwickeln und zu aktualisieren als bei einem traditionellen monolithischen Ansatz. In einer Microservices-Architektur lässt sich jeder Teil von einem einzelnen Team managen, oder ein Team übernimmt mehrere Komponenten. Wer sich als Unternehmen entscheidet, von den Vorteilen der Architektur zu profitieren, der muss die mit ihr einhergehenden Sicherheits- und Datenschutzherausforderungen zunächst verstehen. Hilfreich sind die Prinzipien des “Privacy and Security by Design”. Auch die Arbeit von vielen verschiedenen Teams an unterschiedlichen Komponenten, darf nicht auf Kosten der Sicherheit gehen.

Generell muss man sich fragen, ob Microservices die geeignete Technologie zum Management personenbezogener Daten sind, welche Grenzen zum Schutz sensibler Daten man ziehen kann und welche Prozesse sicherstellen, dass alle Teams mit verantwortlich für die Sicherheit sind.

Sind alle Fragen zufriedenstellend beantwortet, sollten Entwickler in der Lage sein, Microservices sicher zu benutzen und von deren Vorteilen ohne Abschnitte beim Thema Security zu machen.

Robert

Meyers

Compliance- und Datenschutzexperte

One Identity

Robert Meyers ist  Compliance- und Datenschutzprofi und Channel Program Solutions Architect bei One Identity. Seit 30 Jahren beschäftigt er sich mit Identity und Access Management sowie Informationssicherheit. Seit mehr als 10 Jahren konzentriert er sich auf die Planung, Unterstützung und Verwaltung von Datenschutzprogrammen wie FERPA, HIPAA, GDPR und CCPA.
Anzeige

Artikel zu diesem Thema

Weitere Artikel

Newsletter
Newsletter Box

Mit Klick auf den Button "Jetzt Anmelden" stimme ich der Datenschutzerklärung zu.