Früher waren DevOps und IT-Security in verschiedene Organisationssilos aufgeteilt. Das funktioniert heute nicht mehr. Unternehmen kommen nicht umhin, die Barrieren zwischen beiden Bereichen einzureißen. Nur so lassen sich das gegenseitige Vertrauen und die gemeinsamen Interessen eines sicheren, agilen IT-Betriebs fördern. Schließlich kann niemand ernstlich ein Interesse daran haben, mit DevOps-Praktiken ein Art "Staat im Staat" innerhalb der eigenen Organisation zuzulassen, der die Informationssicherheit eines ganzen Unternehmens unterminiert.
Im Folgenden sind die fünf wichtigsten Aspekte aufgeführt, an denen es zu arbeiten gilt, um die Sicherheit in der DevOps-Praxis zu etablieren und damit DevOpsSec (sichere DevOps) zu erreichen.
1. Vorteile der Pipeline von Bereitstellungen nutzen
Zu den Grundlagen des DevOps-Konzepts zählen die fortlaufende Auslieferung von Verbesserungen und die damit verbundenen Automatisierungs-Tools. Dieser vernetzte Baukasten von Werkzeugen für Entwicklung, Integration, Test, Bereitstellung und Überwachung von Code über den gesamten Lebenszyklus hinweg bildet das Herzstück eines effizienten und kontinuierlichen Integrations- und Bereitstellungsprozesses. Die Forrester-Analystin Amy DeMartine sagt, dass die IT-Sicherheit eine echte Chance hat, wenn sie die Vorteile genau dieser Pipeline nutzt, um Sicherheitstools so einzusetzen, dass sie die Sicherheitsmetriken permanent verbessern.
Das betrifft zum Beispiel die Umsetzung der kontinuierlichen Pipeline, also die Integration bestimmter Einheiten von Code- oder Applikationen in Sprints. Es braucht ein Einvernehmen, dass diese Sprints so rechtzeitig abgeschlossen werden, dass die IT-Security-Verantwortlichen sie vor dem produktiven Einsatz des Codes umfassend auf Sicherheitsmängel testen können.
Die frühzeitige Integration von Sicherheits- und Qualitätsprüfungen in den Entwicklungsprozess ist eine entscheidende Maßnahme, wenn es um Best Practices für die Anwendungssicherheit geht. Hier kann das Sicherheitsteam einen großen Nutzen schaffen, indem es hilft zu planen, wo und wie Tests und Security Gates während des Gesamtprozesses eingefügt werden können, ohne das gewünschte hohe Tempo der DevOps-Softwarebereitstellung unnötig auszubremsen.
2. Software standardisieren und auf aktuell Stand halten
Heartbleed, Shellshock und DROWN sind nur einige der bekanntesten Software-Schwachstellen, die die Welt in den zurückliegenden Jahren erschüttert haben. Sie sind die perfekten Beispiele dafür, wie Komponenten von Drittanbietern in vermeintlich harmlosen Unternehmenssoftware- und Web-Assets jedes Unternehmen gefährden können.
DevOps hat die Abhängigkeit der IT-Hersteller und Entwickler von Softwarekomponenten von Drittanbietern zusätzlich beschleunigt. Denn agile Entwicklungsteams suchen immer nach Möglichkeiten, Software noch effizienter zu entwickeln, ohne das Rad neu erfinden zu müssen. Aber damit die Entwicklungsteams wirklich robuste und sichere DevOps-Muster bieten können, muss es auch einen sicheren Weg geben, diese Komponenten von dritter Seite zu integrieren. Eine gute Option hierfür ist, eine standardisierte und validierte Komponentenbibliothek zu pflegen und diese stets zu aktualisieren, sobald neue Versionen verfügbar werden. Die Anzahl der in diesen Bibliotheken vorhandenen Versionen sollte so gering wie möglich gehalten werden.
3. Werkzeuge und Prozesse standardisieren
Häufig wuchern die DevOps-Prozesse in verschiedenen Bereichen einer Organisation organisch wie in einem vernachlässigtem Garten. Hier besteht die Gefahr, dass die Sicherheitsbemühungen zufällig oder punktuell bleiben und nur in unregelmäßigen Abständen weiter verfolgt werden. Jede Abteilung beginnt, die Dinge auf ihre Weise zu handhaben und wählt ihre individuellen Testwerkzeuge und -methoden aus.
Dann passiert, dass die Beteiligten unterschiedliche Sprachen sprechen und die Kommunikation ins Stocken gerät. Es ist zwar durchaus so, dass verschiedene Teams gelegentlich unterschiedliche Toolsets verwenden müssen, da sie mit verschiedenen Cloud-Infrastrukturen, Entwicklungssprachen und Plattformen arbeiten. Doch wann immer möglich, sollten Organisationen an dieser Stelle eine Standardisierung anstreben.