DevOps

Was ist DevSecOps?

Bei DevOps geht es nicht nur um Entwicklungs- und Betriebs-Teams. Wenn Sie die Agilität und Reaktionsfähigkeit des DevOps-Ansatzes vollständig ausschöpfen möchten, muss Ihre IT-Sicherheit ebenfalls eine integrierte Rolle im gesamten App-Lifecycle spielen.

Warum? In der Vergangenheit war die Sicherheit zumeist Aufgabe eines speziellen Teams in der Abschlussphase der Entwicklung. Das war auch kein größeres Problem, als die Entwicklung noch nicht mehrere Monate oder gar Jahre in Anspruch nahm. Diese Zeiten aber sind vorbei. Eine effiziente DevOps-Strategie muss schnelle und häufige Entwicklungszyklen (Wochen oder manchmal gar nur Tage) gewährleisten können, veraltete Sicherheitspraktiken aber können selbst die effektivsten Prozesse ausbremsen.

Beim kollaborativen DevOps-Ansatz von heute aber wird Sicherheit zur gemeinsamen Verantwortung, die von der ersten Phase an in den Ablauf integriert ist. Dieses Prinzip hat eine derartige Bedeutung, dass manche ihm den Beinamen „DevSecOps“ verliehen, um zu unterstreichen, dass alle DevOps-Initiativen eine Sicherheitsbasis integrieren müssen.

Will heißen, die Anwendungs- und Infrastruktursicherheit muss schon in der Konzeptphase berücksichtigt werden. Dies schließt ebenfalls die Automatisierung einiger Sicherheits-Features ein, um die Geschwindigkeit des DevOps-Workflows aufrechtzuerhalten. Die Auswahl der richtigen Tools kann zur Integration von DevOps-Sicherheit und den angestrebten Zielen beitragen, aber um aber wirklich effizient zu sein, benötigen Sie dafür früher oder später auch kulturelle Änderungen zur Integration der Arbeit von Sicherheits-Teams.


DevOps-Sicherheit ist eingebaut

Ob Sie es nun „DevOps“ oder „DevSecOps“ nennen, dieses Prinzip war schon immer die ideale Lösung zur Integration von Sicherheit als fester Bestandteil des gesamten App-Lifecycles. Beim DevSecOps-Ansatz darf Sicherheit ebenfalls nicht nur als spezifische Maßnahme für Daten und Apps fungieren, sondern muss quasi eingebaut sein. Solange die Sicherheit nur in der Abschlussphase der Entwicklung berücksichtigt wird, werden Unternehmen selbst mit einem DevOps-Ansatz die gefürchteten langen Entwicklungszyklen nicht auf Dauer vermeiden können.

Deshalb müssen Sicherheits-Teams die Informationssicherheit schon zu Beginn einer jeden Initiative integrieren und einen Plan für ihre Automatisierung entwickeln. Dies erfordert im Umkehrschluss die Unterstützung der Entwickler bei der sicherheitsorientierten Codierung. Dies aber setzt voraus, dass Sicherheits-Teams Transparenz, Feedback und Einblicke in Bezug auf bekannte Bedrohungen teilen. Da diese Prozesse traditionell nicht immer ein integraler Bestandteil der Anwendungsentwicklung waren, können unter Umständen neue Trainingsprogramme für Entwickler nötig werden.

Was muss man sich unter eingebauter Sicherheit vorstellen? Zunächst einmal wird mit einer effizienten DevSecOps-Strategie die Risikotoleranz bewertet bzw. eine Nutzen-/Risikoanalyse durchgeführt. Wie hoch muss die Zahl an Sicherheitskontrollen für beliebige Apps sein? Wie wichtig ist eine schnelle Marktreife für unterschiedliche Apps? Der Schlüssel zu DevSecOps ist die Automatisierung sich wiederholender Aufgaben, da die Ausführung manueller Sicherheitsprüfungen in der Pipeline viel Zeit in Anspruch nehmen kann.


DevOps-Sicherheit ist automatisiert

To do-Liste: Aufrechterhaltung kurzer und häufiger Entwicklungszyklen, Integration von Sicherheitsmaßnahmen mit minimaler Disruption von Abläufen, kontinuierlicher Einsatz innovativer Technologien wie Container und Microservices sowie die Förderung einer engen Zusammenarbeit zwischen ansonsten isolierten Teams − alles in allem kein einfaches Unterfangen für ein Unternehmen. All diese Initiativen beginnen mit dem Menschen, also den Besonderheiten der jeweiligen Organisation, aber das wichtigste Tool für diese vom Menschen auf den Weg gebrachten Änderungen in einem DevSecOps-Framework ist die Automatisierung.

Aber was und vor allem wie wird automatisiert? Diese Frage lässt sich mit einschlägiger Literatur beantworten. Als Organisation sollte man dabei zunächst einmal etwas Abstand nehmen und die gesamte DevOps-Umgebung analysieren. Dazu gehören Quellkontroll-Repositories, Container-Registries, CI/CD (Continuous Integration und Continuous Deployment) -Pipelines, APIs, die Orchestrierung und Release-Automatisierung sowie die betriebliche Verwaltung und Überwachung.

Neue Automatisierungstechnologien sind der Grund dafür, warum Organisationen mittlerweile agilere Entwicklungspraktiken nutzen bzw. neue Sicherheitsmaßnahmen Verbreitung finden. Die Automatisierung stellt aber nicht die einzige Veränderung der IT-Landschaft in den letzten Jahren dar, denn mittlerweile sind cloudnative Technologien wie Container und Microservices fester Bestandteil vieler DevOps-Initiativen. Und auch mit diesen Funktionen muss die DevOps-Sicherheit integriert werden.


DevOps-Sicherheit wurde für Container und Microservices entwickelt

Die durch Container ermöglichten höher skalierbaren, dynamischeren Infrastrukturen haben die geschäftlichen Abläufe vieler Unternehmen tiefgreifend verändert. Aus diesem Grund müssen DevOps-Sicherheitspraktiken an die neuen Umgebungen sowie container-spezifische Richtlinien angepasst werden. Cloudnative Technologien sind für statische Sicherheitsrichtlinien und -Checklists nicht geeignet. Sicherheit muss in jeder Phase des App- und Infrastruktur-Lebenszyklus kontinuierlich und integriert sein.

DevSecOps bedeutet nichts anderes, als dass Sicherheit zum festen Bestandteil der kompletten Entwicklungs-Pipeline (von Anfang bis Ende) wird. Dieser Umstand aber erfordert sowohl eine neue Unternehmensphilosophie als auch neue Tools. Vor diesem Hintergrund sollten DevOps-Teams daher die Sicherheit automatisieren, um die gesamte Umgebung inklusive aller Daten und des CD-/CI-Bereitstellungsprozesses zu schützen. Dieses Vorhaben aber betrifft höchstwahrscheinlich auch die Sicherheit von Microservices in Containern.

Umgebungs- und Datensicherheit:

Standardisierung und Automatisierung der Umgebung

Jeder Service sollte nach dem Prinzip der „geringsten Rechte“ eingerichtet werden, um unbefugte Verbindungen und Zugriffe auf ein Mindestmaß zu beschränken.

Zentralisierung von Benutzeridentifizierung und Zugangskontrolle

Strikte Zugangskontrollen und zentrale Authentifizierungsmechanismen sind für den Schutz von Microservices unerlässlich, da die Authentifizierung an mehreren Punkten initiiert wird.

Isolierung von Containern mit Microservices voneinander und vom Netzwerk

Dies betrifft Daten sowohl während der Übertragung als auch der Speicherung, da beide hochwertige Ziele für Angreifer darstellen.

Verschlüsselung von Daten zwischen Apps und Servern

Mit einer Containerorchestrierungsplattform mit integrierten Sicherheitsfunktionen lässt sich das Risiko unbefugter Zugriffe minimieren.

Integration sicherer API-Gateways

Mit sicheren APIs lassen sich Autorisierungsprozess und Routing-Transparenz verbessern Dadurch wieder kann man die Angriffsfläche für Attacken deutlich verringern.

CI/CD-Prozesssicherheit:

Integration von Sicherheitsscannern für Container

Dies sollte im Rahmen des Hinzufügens von Containern zur Registry erfolgen.

Automatische Sicherheitsprüfungen im CI-Prozess

Dazu gehören die Ausführung von Tools für eine statische Sicherheitsanalyse im Rahmen von Builds sowie das Scannen vorgefertigter Container-Images auf bekannte Sicherheitsschwachstellen im Rahmen der Integration in die Build-Pipeline.

Automatische Prüfungen der Sicherheitsfunktionen als Bestandteil des Abnahmeprozesses

Eingabevalidierungstests sowie Verifizierungsauthentifizierungs- und -autorisierungs-Features sollten automatisiert werden.

Automatisierung von Sicherheits-Updates wie z. B. Patches für bekannte Schwachstellen

Dies lässt sich am besten über die DevOps-Pipeline bewerkstelligen. Dadurch können Sie die Notwendigkeit der Anmeldung von Administratoren beim Protokollsystem eliminieren und gleichzeitig ein dokumentiertes und nachverfolgbares Änderungsprotokoll erstellen.

Automatisierung von Funktionen für die System- und Service-Konfigurationsverwaltung

Dies garantiert die Einhaltung von Sicherheitsrichtlinien und die Vermeidung manueller Fehler. Prüf- und Fehlerbehebungsprozesse sollten ebenfalls automatisiert werden.

Die DevSecOps-Tools, die Sie benötigen

Management

Eine einfache, ohne Agents funktionierende IT-Automatisierungstechnologie, die Ihre aktuellen Prozesse verbessert, Anwendungen für eine bessere Optimierung migriert und eine einzige Sprache für sämtliche DevOps-Verfahren in Ihrem Unternehmen verwendet.

Cloud Computing

Red Hat® OpenShift® bietet eingebaute Sicherheit für containerbasierte Anwendungen, darunter Role-Based Access Controls, Isolierung durch Security-Enhanced Linux (SELinux) und Prüfungen während des Container-Build-Prozesses.

DevSecOps bietet eine Vielzahl weiterer Einsatzmöglichkeiten