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.
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:
Lernen Sie die Besonderheiten von DevOps und DevSecOps kennen.
Knüpfen Sie Partnerschaften mit den Verantwortlichen aus anderen Unternehmensbereichen wie Produktion oder Entwicklung.
Ein funktionsübergreifendes Meeting kann helfen, die Sicherheitsanforderungen im Rahmen des gesamten Entwicklungs- und Betriebsprozesses zu überprüfen.
Das Sicherheitsteam steht wahrscheinlich vor der größten Herausforderung bei der Umstellung auf DevSecOps, und sollte daher frühzeitig mit an Bord geholt werden. Es sollte eine beratende Rolle übernehmen, da Softwareingenieure mehr Verantwortung für die Sicherheit ihres Codes tragen müssen.
DevSecOps setzt voll und ganz auf Zusammenarbeit. Das kann zu Veränderungen in der Organisation eines Unternehmens führen und damit zu einer großen Herausforderung werden.
IT-Sicherheitsverantwortliche in Unternehmen neigen schnell dazu, "nein" zu sagen - oft aus gutem Grund, weil sie nämlich zu spät ins Spiel kamen. "Die größte kulturelle Herausforderung für DevSecOps besteht darin, die Kultur des Neinsagens abzuschaffen, um gemeinsam Probleme zu lösen und Teams darin zu stärken sich kontinuierlich zu verbessern", sagt Eric Johnson, Leiter des Anwendungs- und Sicherheits-Curriculums am SANS-Institut. Normalerweise obliegt es den CSOs/CISOs, hier die Führung zu übernehmen. Wenn Mitglieder des Sicherheitsteams schon die rote Flagge hissen müssen, sollten sie versuchen, Alternativen vorzuschlagen und Teil einer Lösung zu sein.
Mitarbeiter müssen bei der Umstellung auf DevSecOps mit einem gut geplanten Change Management unterstützt werden.
Eine Reorganisation kann ebenso notwendig werden wie die Einstellung neuer Mitarbeiter mit DevOps-Erfahrung.
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.