Wie DevSecOps, eine Erweiterung des DevOps-Konzepts um den Faktor „Security“, in der Praxis aussehen kann, erklärt Julian Totzek-Hallhuber, Solution Architect bei Veracode in diesem Blogbeitrag.
Wo immer es in Sachen Software-Entwicklung um das Thema Agilität geht, wird früher oder später der Begriff DevOps fallen. DevOps ist ein Modell, in der die Zusammenarbeit verschiedener Teams und innovative Vorgehensweisen bei der Entwicklung eine wichtige Rolle spielen. Die Geschwindigkeit und Effizienz, die dabei erreicht wird, geht jedoch in vielen Fällen auf Kosten der Sicherheit, da unter hohem Zeitdruck gearbeitet wird und Schwachstellen in der Software so oft unentdeckt bleiben und nicht behoben werden. Eine Erweiterung des DevOps-Konzepts um den Faktor „Security“ kann das ändern.
DevOps als innovatives Konzept für die Entwicklung und Auslieferung von Software in vielen Unternehmen nichts Neues mehr. Bereits seit 2009 gibt es die DevOpsDays, eine Veranstaltungsreihe, die gänzlich diesem Thema gewidmet ist. 88 Prozent der deutschen Unternehmen sind laut einer Umfrage von Coleman Parkers davon überzeugt, dass DevOps einen maßgeblichen Erfolgsfaktor darstellen. Im Mittelpunkt steht dabei die Überwindung von Silos – also die effiziente Zusammenarbeit verschiedener Teams. In Kombination mit der Automatisierung und Optimierung bestimmter Prozesse entsteht so die Möglichkeit, schneller zu entwickeln und dem Kunden dabei bessere Qualität zu liefern.
Hoher Zeitdruck, hohes Risiko
Agile Ansätze bei der Entwicklung sind zweifellos mit vielen Vorteilen verbunden. Doch die immer kürzer werdenden Release-Zyklen haben auch ihre Schattenseiten. Sie führen zu erheblichem Zeitdruck. Und auch wenn Automatisierungsmaßnahmen dazu führen, dass heute in kürzerer Zeit bessere Lösungen geliefert werden können als vor DevOps: Viele Teams arbeiten nicht mit einer „Security-First-Mentalität“, die es priorisiert Fehler in der Software zu identifizieren und sie frühzeitig im Zyklus der Softwareentwicklung zu beheben, obwohl dies sogar effizienter und kostengünstiger ist. Vor dem Hintergrund, dass die Mehrheit der eingesetzten Software Schwachstellen erhält, ist dies unabdingbar. Der Report „State of Software Security“ von Veracode zeigt, dass 85 Prozent aller Apps mindestens eine Schwachstelle enthalten. In 13 Prozent der Fälle sogar eine kritische.
Einige Entwickler glauben also, dass zwischen Sicherheit und agilen Entwicklungsprozessen ein Zielkonflikt besteht: Die nötigen Sicherheitschecks würden ihre Arbeitsprozesse erheblich verlangsamen. Die Herausforderung besteht also darin, Sicherheit und Agilität unter einen Hut zu bringen und sowohl Sicherheitsteams als auch Entwicklerteams mit ins Boot zu holen.
DevSecOps
Dabei gilt es in Sachen Anwendungsentwicklung an drei Stellschrauben zu drehen: Team-Kultur, Prozesse und Technik bei der Anwendungsentwicklung. So entsteht im Idealfall eine DevSecOps-Umgebung, in der Sicherheitsprüfungen in den kompletten Entwicklungslebenszyklus integriert sind. Besonders wichtig sind dabei agile Testmethoden. Bei der immer noch weit verbreiteten Wasserfall-Methode steht die Sicherheit am Ende des Entwicklungsprozesses, während bei SCRUM und DevOps oftmals nicht klar definiert ist, wann der Code auf Schwachstellen überprüft werden sollte.
Es gibt zahlreiche Maßnahmen, die dazu beitragen, sich einer funktionierenden DevSecOps-Kultur anzunähern. Am Anfang steht eine Philosophie der Offenheit und des permanenten Lernens. Also ein hohes Maß an Vertrauen und Austausch zwischen den Programmierern, Sicherheits- und Admin-Teams. So entsteht nicht nur eine effizientere Zusammenarbeit, sondern auch ein höheres Maß an fachlicher Expertise für alle Beteiligten. Darüber hinaus sollte jedoch auch Wert auf Weiterbildungsangebote gelegt werden, um vor allem Entwickler für das Thema Security zu sensibilisieren. So wird es auch möglich, Sicherheitsexperten in Entwicklerteams zu ernennen, die dann ihre Expertise und Best Practices mit ihren jeweiligen Mitarbeitern teilen können.
Sicherheit auf allen Ebenen und in jeder Phase
Projekte sind heutzutage zeitkritisch, Entwickler nutzen oftmals Open Source Codeschnipsel aus Drittanbieter-Bibliotheken oder verwenden Tools, um Code zu generieren. Umso wichtiger ist es, mithilfe von Scan-Werkzeugen bereits während der Entwicklung möglichst viele Code-Reviews durchzuführen, um Schwachstellen frühzeitig identifizieren zu können. Werden Schwachstellen zu spät identifiziert, ist es aufwendig und teuer, sie zu beheben. Sind die IT-Verantwortlichen nicht in der Lage, den Fehler in ihrer Software rechtzeitig zu identifizieren, kann dies Cyberkriminellen als Eintrittstür dienen und für das Unternehmen schwerwiegende Konsequenzen haben, die sich nicht nur finanziell, sondern auch auf das Image der Firma auswirken können.
Der „State of Software Security Vol. 9“-Report zeigt, dass DevSecOps-Teams effektiv Schwachstellen in ihren Anwendungen beseitigen können. Die Unternehmen, in denen DevSecOps Teams am effektivsten implementiert sind, identifizieren und beheben Schwachpunkte in ihrer Software 11,5-mal schneller. In regulären Unternehmen werden zwei Drittel aller Applikationen weniger als sechs Mal pro Jahr auf Schwachstellen gescannt.
Der DevSecOps-Ansatz macht Sicherheit im gesamten Entwicklungsprozess zu einem grundlegenden Element, wodurch Zeit durch unerwartete Änderungsschleifen eingespart wird. IDE-Analysetools helfen dabei, Code-Schwachstellen in jeder Entwicklungsphase automatisch aufzudecken. Das Sicherheitsniveau kann auch auf die Probe gestellt werden, indem verschiedene Teams versuchen, ihre Codes gegenseitig zu hacken. In der Frühphase der Applikationsprogrammierung können White-Box-Tests oder das sogenannte Static Application Security Testing (SAST) dabei helfen, Schwachstellen im Code zu identifizieren.
Zur Unterstützung der IT-Teams kann auch die eigenständige Sicherheitstechnologie Runtime Application Self-Protection (RASP) eingesetzt werden. Diese schützt Applikationen kontinuierlich und meldet entdeckte Angriffe selbstständig. Software Composition Analysis (SCA) analysiert die Komposition von Applikationen und ermöglicht es Entwicklern, Open-Source-Software effektiv zu nutzen.
Umdenken: Sicherheit geht jeden etwas an
DevSecOps beschreibt die Denkweise in der Softwareentwicklung, dass jeder für die App-Sicherheit verantwortlich ist. Der „State of Software Security Vol. 9“-Report belegt die Effektivität des DevSecOps-Ansatzes. Neben den technischen Herausforderungen, die mit der Umsetzung des Konzepts zusammenhängen, spielt auch die IT-Kultur eine entscheidende Rolle. Die übergreifende Zusammenarbeit von Entwicklern, IT-Betriebspersonal und Sicherheitsexperten wird durch DevSecOps und entsprechenden Trainings zum klaren Vorteil für die Unternehmens-IT. Der Aufwand mag zu Beginn gewaltig erscheinen, doch er lohnt sich, denn agile Entwicklungsmethoden können Hand-in-Hand mit einem hohen Level an Sicherheit gehen.