Sicherheitsaspekte für unabhängig agierende Teams DevSecOps in Microservice-Umgebungen

Von Robert Meyers *

Anbieter zum Thema

Um von den Vorteilen einer Microservice-Architektur zu profitieren, sollte man zunächst die damit einhergehenden Sicherheits- und Datenschutzherausforderungen verstehen. Denn gerade die Aufteilung in kleine, unabhängige Development-Teams kann sich negativ auswirken.

Gerade die kleinteilige, unabhängige Entwicklung in Microservice-Umgebungen darf nicht zu Lasten der Sicherheit gehen.
Gerade die kleinteilige, unabhängige Entwicklung in Microservice-Umgebungen darf nicht zu Lasten der Sicherheit gehen.
(Bild: geralt / Pixabay)

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. 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.

Die Dienste funktionieren dementsprechend unabhängig voneinander und sie können auch ausfallen oder ausgetauscht werden, ohne andere zu beeinträchtigen. 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 Mikrodiensten passen einfach besser zu den schnell wachsenden und heterogenen Umgebungen eines modernen Unternehmens.

Bevor man sich an die Einführung einer modernen 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, dass voneinander unabhängige Teams an den einzelnen Komponenten/Funktionen arbeiten.

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.

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.

Sicherheitsüberlegungen für Microservices

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: 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.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

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.

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. Mit Blick auf die Sicherheits- und Datenschutzherausforderungen sind die Prinzipien des „Privacy and Security by Design“ überaus hilfreich.

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 ist Compliance- und Datenschutzexperte bei One Identity.

(ID:46568947)