Tipps für DevSecOps

DevOps-Prozesse richtig absichern

24.07.2018 von Scot Finnie und Martin Bayer
Sicherheit in DevOps-Prozessen zu verankern, ist nicht einfach, aber die Mühe lohnt sich. Lesen Sie, was Sie beachten müssen, um DevSecOps bei sich im Unternehmen zu implementieren.

In immer mehr Unternehmen steckt die Softwareentwicklung im Umbruch: Klassische Wasserfall-Methoden werden durch agile Vorgehensweisen wie DevOps ersetzt. Das Ziel: Die Softwareentwicklung zu beschleunigen und die Qualität der Anwendungen zu erhöhen. Dabei laufen die Prozesse der Entwicklung (Dev) und der Bereitstellung (Ops) von Software parallel zueinander, ohne Unterbrechung und im Idealfall möglichst reibungslos. Dieser Ansatz verknüpft Continuous Integration (CI)-, Continuous Delivery (CD) und Continuous Deployment (CD) von Softwarecode zu einem Gesamtsystem agiler und kontinuierlicher Weiterentwicklung von Anwendungen.

In der Entwicklung von Software-Code muss die Sicherheit von Anfang an eine wichtige Rolle spielen.
Foto: ra2studio / shutterstock.com

Allerdings werden die Vorteile der DevOps-Methodik oft nicht voll ausgeschöpft, da wichtige Aspekte nicht mit einbezogen werden - vor allem die Sicherheit. Kurze, schnell getaktete Release- und Bereitstellungszyklen lassen vielfach keine Zeit für Sicherheitstests. So kommen mit jeder Aktualisierung einer mittels DevOps entwickelten Software nicht nur Verbesserungen hinzu, sondern auch potenziell neue Fehler und Sicherheitslücken. Das Resultat: Unter Zeitdruck entwickelter und unzureichend getesteter Softwarecode birgt für die Unternehmen kaum zu kalkulierende Risiken.

Da das Thema Sicherheit für die meisten Unternehmen in den zurückliegenden Jahren eine immer höhere Priorität bekommen hat, ist aus Sicht von Experten die Zeit reif für DevSecOps. Der Begriff setzt sich zusammen aus Development, Security und Operations. Im Rahmen der letztjährigen DigiCert-Umfrage "Making Security Agile" haben 88 Prozent der rund 300 befragten US-Unternehmen angegeben, dass es wichtig sei, Sicherheit in DevOps-Prozesse zu integrieren. Dem Bericht zufolge drohen den Anwenderunternehmen verschiedene Gefahren, wenn die Entwickler den Security-Aspekt nicht von Beginn an mit berücksichtigen: nicht nur zusätzliche Sicherheitsrisiken, sondern auch höhere Kosten und längere Auslieferungszyklen.

DevSecOps ist Teil einer Evolution

Im Kern geht es bei DevOps darum, die Softwareentwicklung durch die Automatisierung von Integrations-, Test- und Bereitstellungsprozessen kontinuierlich iterativ zu gestalten. Damit verändern sich die Unternehmenskultur und die Erwartungen an die Softwareentwicklungsteams grundlegend.

Lesen Sie mehr zum Thema DevOps:

Ein Schlüsselprinzip von DevOps ist es, kontinuierlich Code bereitzustellen und mit anderen Bestandteilen zu integrieren. Das läuft auf einen in viele Schleifen organisierten Entwicklungsprozess hinaus, der mit automatisierten Tests und Feedback arbeitet. Dieses Vorgehen hat sich für viele Unternehmen als wesentlich effizienter erwiesen als klassische Entwicklungsmethoden mit langen Projektplänen, die am Ende doch haarscharf an den Bedürfnissen der Anwender vorbeigingen. Gelingt es, die Sicherheitsaspekte von Beginn an mit zu berücksichtigen, wird DevOps noch einmal effizienter.

Tiefer Graben zwischen Sicherheit und Entwicklung

Obwohl DevOps zu kürzeren Entwicklungszyklen und einer höheren Agilität führt, blieb das Sicherheitsthema in der Vergangenheit oft außen vor. So war in agilen Organisationen oft unklar, wann der Code auf Schwachstellen überprüft werden soll. Tatsächlich scheint es zudem einen tiefen kulturellen und organisatorischen Graben zwischen den Bereichen Sicherheit und Entwicklung zu geben.

Alles über Agilität und Führung finden Sie hier in unserem Insider-PDF

Diese Trennung darf es künftig nicht mehr geben. Denn es wird immer wichtiger, dass sich die Sicherheitsteams von Anfang an in die DevOps-Prozesse einklinken. Die folgenden Tipps helfen dabei, diese Verknüpfung zu schaffen.

1. Plan für den Kulturwandel

Kulturelle und organisatorische Veränderungen sind der Schlüssel für eine erfolgreiche Implementierung von DevSecOps. Das Hauptziel muss sein, eine Kultur zu fördern, in der Entwicklung und Betrieb gemeinsam Verantwortung für die Sicherheit übernehmen. Das erfordert ein Umdenken in allen Abteilungen - und es braucht einen Plan. Folgende Schritte können den Chief Security Officers (CSOs) und Chief Information Security Officers (CISOs) dabei helfen, diesen Prozess voranzutreiben:

2. Prozesse neu abbilden

"Aus organisatorischer Sicht benötigt DevSecOps Sicherheits- und Compliance-Teams, um ihre Prozesse, Richtlinien und Anforderungen in die DevOps-Workflows zu integrieren", konstatiert Johnson. DevSecOps werde nicht funktionieren, wenn dem Security-Team das Wissen über Entwicklungs- und Operations-Engineering-Prozesse, Technologien und Tools fehle.

Einer der wichtigsten Grundsätze von DevSecOps besagt, dass Sicherheitsanalysen und -tests möglichst früh im Entwicklungsprozess stattfinden müssen. Die Mitglieder des Sicherheitsteams sollten daher vom ersten Tag an bei jedem einzelnen Vorhaben mit am Tisch sitzen und dort auch ihren Teil der Verantwortung für den Erfolg übernehmen.

Auch die Entwickler müssen im Rahmen von DevSecOps den Sicherheitsaspekt neben den Funktionen ihres Codes als zentrale Arbeitsaufgabe begreifen. Das braucht anderes Know-how und setzt einen Wissensaustausch zwischen Entwicklern und Sicherheitsexperten voraus - in einer Kultur der Offenheit und Transparenz. Die Security-Teams müssen nicht nur ihr Wissen beisteuern, sondern auch Regeln für Prozesse erstellen. Damit werden technische Rahmenbedingungen abgesteckt, die dafür sorgen, dass gesetzliche und regulatorische Anforderungen sowie das Risikomanagement berücksichtigt werden.

Standardprozesse, die universell auf alle Unternehmen passen, gibt es dafür nicht. Die Berater von Booz Allen empfehlen "Fahrpläne, die simulieren, wie ein Nutzer eine bestimmte Funktion verwendet". Sind die Reaktionsmuster und Vorgehensweisen einmal etabliert - darunter insbesondere Richtlinien zur Code-Optimierung, Threat-modeling, Rollbacks und fest definierte Eskalationsstufen - wird Security zur gewohnten Routine.

3. Automatisieren für mehr Effizienz und Genauigkeit

Automatisierung ist ein zentrales Thema von DevOps, und das setzt sich in DevSecOps fort. Stichwort "Sicherheit als Code". Dabei geht es beispielsweise darum, Sicherheitstests und andere Stationen im Entwicklungsprozess so weit wie möglich zu automatisieren sowie sichere gemeinsame Code-Repositories für die Software-Entwickler zu schaffen.

Automatisierte Prozesse können den Sicherheitsaspekt im Modell der DevSecOps erleichtern: Enthält eine Applikation Komponenten, die Angriffsflächen bieten, muss dies durch automatisierte Security-Tests vor dem Check-in der Software erkannt und korrigiert werden. Systematische Sicherheitsscans können schon während des Programmiervorgangs Sicherheitsprobleme aufdecken, die sich dann schnell und effizient beheben lassen. Darüber hinaus kann die Integration von regelmäßigen Sicherheitstests, beispielsweise auch Black-Box-Tests, automatisiert werden. So lassen sich Schwachstellen frühzeitig erkennen.

Auch nach der Implementierung kann eine automatische Echtzeit-Überwachung von Anwendungen helfen, verdächtige Aktivitäten oder Datenabfragen zu identifizieren. Dadurch können Unternehmen im Ernstfall schnell reagieren und aufgezeigte Schwachstellen schließen.

Insgesamt gilt es, die Sicherheitsprozesse zu optimieren und mit der Geschwindigkeit innerhalb der DevOps-Entwicklungspipeline in Einklang zu bringen. Das muss eine Gemeinschaftsarbeit von Security, Entwicklung und Operations sein. Da es sich hierbei um einen Schlüsselaspekt für DevSecOps handelt, sollten die Unternehmen darauf achten, gute Leute darauf anzusetzen.

4. Software-Tools klug auswählen

Bei den ausgewählten Tools ist es wichtig, dass sie sich einfach und effektiv mit den DevOps-Entwicklungsprozessen und anderen bereits vorhandenen Werkzeugen kombinieren lassen. Eine wichtige Rolle spielen natürlich auch die Funktionen der Tools und wie gut sich diese automatisieren lassen.

Das SANS Institute hat eine Übersicht zusammengestellt, die ein breites Spektrum an DevOps- und DevSecOps-Tools aufzeigt. Der Werkzeugkasten ist nach Anwendungen und den verschiedenen Stationen im Entwicklungsprozess geordnet. Folgende Disziplinen und Tools sollten Anwender in Betracht ziehen, um ihren DevOps-Entwicklungsprozess abzusichern.

5. Erfolg messen

Für eine erfolgreiche DevSecOps-Implementierung ist es wichtig, im Vorfeld eines solchen Großprojekts Metriken zu definieren. Nur so lässt sich messen und feststellen, ob sich Aufwand und Investitionen lohnen. Das Problem dabei: Derzeit sind praktisch keine Tools oder Maßstäbe verfügbar, die Anwenderunternehmen bei der Prüfung von DevSecOps-Vorhaben anlegen könnten.

Die Analysten von Booz Allen empfehlen, folgende Key Performance Indicators (KPIs) zu prüfen: Auslieferungsdauer, Anzahl und Häufigkeit der Auslieferungen, mittlere Wiederherstellungszeit und prozentuale Abweichungen in der Anzahl der Fehler. Einige automatisierte Scanning-Lösungen, die den Code automatisiert auf seine Qualität hin prüfen, liefern eine Art Sicherheitscode-Qualitätskennzahl, die sich auch als Metrik verwenden lässt. Eine Kombination dieser Datenpunkte und Maßstäbe ist vermutlich die derzeit beste Kennzahl, um zu überprüfen, wie gut der eigene DevSecOps-Ansatz funktioniert.

Fazit

Gerade im Hinblick auf neue Entwicklungsparadigmen bildet der Umstieg auf DevSecOps eine der wichtigsten Grundlagen der digitalen Transformation.Die größte Herausforderung liegt vermutlich darin, die Veränderung von DevOps zu DevSecOps richtig im Team zu verankern. Es gilt, die Mitarbeiter abzuholen und den Prozess nicht nur aus technologischer, sondern auch aus Management-Sicht vollständig zu durchdenken.

Die Frage, ob sich Agilität und Sicherheit verbinden lassen, lässt sich mit einem klaren Ja beantworten. Zwar erfordert der Schritt von DevOps zu DevSecOps am Anfang einen gewissen Aufwand. Dieser lohnt sich - vor allem langfristig. Denn das Unternehmen sichert damit nicht nur das Tempo der eigenen Innovation und Weiterentwicklung, sondern schafft damit auch mehr Sicherheit durch eine schnellere Reaktionsfähigkeit und die Vernetzung von Wissen. So funktionieren Agilität und Sicherheit miteinander, und beide profitieren auch voneinander.

Weitere Informationsquellen für DevSecOps: