Was ist DevOps-Sicherheit?
- IAM-Glossar
- Was ist DevOps-Sicherheit?
DevOps-Sicherheit ist ein zusammengesetztes Akronym aus den Worten Development (Entwicklung), Security (Sicherheit) und Operation (Betrieb, Nutzung). Beide Begriffe beziehen sich auf einen Ansatz, bei dem die Sicherheitsbelange im Softwareentwicklungszyklus so früh wie möglich angegangen werden sollen, idealerweise noch bevor der erste Code geschrieben wird.
Welchen unterschied gibt es zwischen DevOps und DevSecOps?
DevSecOps ist eine Erweiterung oder des DevOps-Entwicklungsansatzes. Deswegen ist es wichtig, erst die Gemeinsamkeiten von DevOps und DevSecOps zu verstehen, bevor man sich die Unterschiede ansieht.
Sowohl DevOps als auch DevSecOps bezeichnen einen Softwareentwicklungsansatz und nicht etwa bestimmte Softwarewerkzeuge. Die bloße Installation eines Problemnachverfolgungsprogramms bedeutet nicht, dass jetzt "DevOps machen" und die reine Installation einer statischen oder dynamischen Sicherheitssoftware heißt auch nicht, dass Sie gleich "DevSecOps machen".
DevOps und DevSecOps legen beide einen großen Fokus auf Zusammenarbeit, Automatisierung und aktive Überwachung von Softwareanwendungen. Die Fähigkeit, Anwendungsdaten in Echtzeit zu erfassen, ist für beide Ansätze von entscheidender Bedeutung, denn sowohl erfolgreiche DevOps als auch DevSecOps erfordern die kontinuierliche Erfassung und Analyse der Daten, um Wege zu finden, wie man die Produktivität steigern und Verbesserungen vorantreiben kann.
Beide Ansätze sind auf Zusammenarbeit angewiesen. Von besonderer Bedeutung ist die Beseitigung der Isolation einzelner Bereiche. DevOps zielt darauf ab, diese Isolation zwischen Softwareentwicklung und IT-Betrieb entfernen. Der Gedanke dahinter ist, dass Entwickler und IT-Personal zusammenarbeiten müssen, um Software so schneller und mit weniger Fehlern und Schwachstellen zu veröffentlichen. DevSecOps führt den Gedanken noch weiter und zielt darauf ab, Sicherheitsbelange mit in diese Zusammenarbeit einzubeziehen. Dahinter steckt der Wunsch, dass Softwareentwickler, IT-Fachkräfte und Sicherheitsfachkräfte zusammenarbeiten, um Software schneller, mit weniger Fehlern und mehr Sicherheit veröffentlichen können.
Richtig "DevSecOps machen" heißt, dass Anwendungen richtig gegen Sicherheitsrisiken geschützt werden müssen, bevor sie in die Produktion gehen. Diese Praxis nennt sich "shift left" (nach links/vorn schieben), weil Sicherheitsbelange früher bzw. am Start der Softwareproduktion angegangen werden. Sicherheitsfragen werden betrachtet, noch bevor die erste Code-Zeile geschrieben wurde, und nicht erst, wenn die Produktion schon im vollen Gange ist. In einer DevSecOps-Arbeitsumgebung programmieren Entwickler den Code mit Sicherheitsfragen im Hinterkopf. Dieser Aspekt wird beim reinen DevOps nicht oder nur kaum berücksichtigt.
Mit der Anwendung von Arbeitsschritten wie Code-Analyse, Bedrohungsbewertung und Schwachstellenbewertung im Software-Entwicklungszyklus sowie der kontinuierlichen Durchführung von Tests und Auswertungen stellt DevSecOps sicher, dass der Programmcode von Beginn an sicherer und besser geschützt ist. Neben der Verbesserung der Anwendungssicherheit steigert DevSecOps auch die Produktivität. Schon früh im Entwicklungszyklus Probleme zu finden und zu beheben, ist weitaus weniger zeitaufwendig und kostenintensiv als den Code später im Entwicklungslebenszyklus umarbeiten zu müssen.
Sicherheitsherausforderungen von DevSecOps
Trotz all der Vorteile kann DevSecOps Organisationen vor große Probleme stellen, wenn es um die richtige Implementierung des Ansatzes geht. Werfen wir einen Blick auf die häufigsten Schwierigkeiten bei der DevOps-Sicherheit.
Zu großer Fokus auf Werkzeuge und Programme und nicht ausreichend auf Prozesse. DevOps und DevSecOps sind wie bereits erwähnt Entwicklungsansätze und keine verpflichtenden Empfehlungen für den Einsatz bestimmter Software.
Entwicklungskulturelle Widerstände von Entwicklern oder "Aber wir haben das immer so gemacht." Entwickler sind vielleicht nicht an sichere Programmierpraktiken gewöhnt. Traditionell programmieren Entwickler mit dem Fokus auf Ausführbarkeit und eventuelle Fehler werden später entdeckt und mit Aktualisierungen behoben. Entwickler befürchten vielleicht, dass der stärkere Fokus auf Sicherheit die Produktion verlangsamen könnte.
Arbeitskulturelle Widerstände von Sicherheitsteams Programmierer sind nicht die Einzigen, die an "Das haben wir immer so gemacht" festhalten. DevOps-Teams konzentrieren sich auf Schnelligkeit. Sie programmieren, modifizieren und bearbeiten enorme Code-Mengen pro Tag. Diese Schnelligkeit könnte Sicherheitsfachkräfte abschrecken. Der Unterschied besteht hier, dass DevOps-Teams so viele Prozesse wie möglich automatisieren, während Sicherheitsteams die meiste Arbeit manuell erledigen.
Unzureichende IT-Geheimnisverwaltung DevOps-Arbeitsumgebungen sind sehr komplex und stark miteinander verwoben. Für DevOps ist es nicht ungewöhnlich, Hunderte von Sicherheitsgruppen und Tausende an Serverinstanzen zu haben, die alle IT-Geheimnisse verwenden, darunter privilegierte Kontenzugangsdaten, SSH-Schlüssel, API-Token, Datenbankpasswörter und so weiter. Diese sind dann auch noch über sämtliche Datenumgebungen der Organisation verstreut. Dann spricht man vom sogenannten "Secrets Sprawl", dem unkontrollierten Wuchern von IT-Geheimnissen in der Organisation. Schon ein kleiner Konfigurationsfehler kann nun dazu führen, dass IT-Geheimnisse kompromittiert werden können und die ganze Organisation einen katastrophalen Cyberangriff erleidet.
Unzureichende privilegierte Zugriffsverwaltung. Zur Beschleunigung der Produktion geben DevOps-Teams ihren Mitgliedern regelmäßig nahezu unbegrenzten Zugriff auf privilegierte Konten wie Root- oder Admin-Konten. Verschlimmernd kommt hinzu, dass mehrere Teammitglieder dieselben Zugangsdaten verwenden, was ein enormes Sicherheitsrisiko darstellt. Diese Praxis sorgt für große Komplikationen bei Vorschriftenkonformitätsüberprüfungen, da Unternehmen hierbei saubere, einwandfrei nachvollziehbare Nutzungsschritte vorweisen müssen. Weiterhin können Koordinations-, Konfigurationsverwaltungsprogramme und andere DevOps-Werkzeuge auch über hohe Zugriffsberechtigungen verfügen, die sie eigentlich gar nicht für ihre Arbeit benötigen.
Bewährte DevOps-sicherheitspraktiken
Hier finden Sie einige der besten bewähren Praktiken, die Sie für die DevOps-Sicherheit Ihrer Organisation einführen sollten.
- Behalten Sie stets im Hinterkopf, dass DevSecOps wie DevOps Verfahrensansätze sind, keine Werkzeugsets. Anstatt sich "DevSecOps Tools" zu kaufen und dann darüber nachzudenken, wo Sie diese einsetzen wollen, sollten Sie Ihre Endziele herausfinden und Prozesse zu deren Erreichung entwickeln und dann erst Werkzeuge und Programme kaufen, die diese Prozesse und Ziele unterstützen.
- Verwenden Sie die richtigen Methoden für die Umsetzung von Ablaufänderungen, um kulturelle Widerstände von Ihren Programmierern und Sicherheitsfachkräften zu überwinden. Führen Sie beiden Teams vor, wie DevSecOps Zeit spart und sie produktiver macht. Etablieren Sie klare Programmierstandards für Ihre Entwickler und automatisieren Sie Sicherheitsprozesse und -werkzeuge, wo es möglich ist.
- Bekämpfen Sie das unkontrollierte Wuchern von IT-Geheimnissen mit Programmen wie dem Keeper Secrets Manager.
- Beschränken Sie ausufernde privilegierte Berechtigungen und Zugangslevel mit Kontrollen wie rollenbasierten Zugangsberechtigungen (RBAC), Least-Privilege-Zugang und bedarfsgerechter Bereitstellung.
- Verhindern Sie den Missbrauch privilegierter Zugangsberechtigungen mit Sitzungserfassung und Überprüfungen.