Bei DevSecOps geht es darum, IT-Sicherheitsaspekte so früh wie möglich in den Lebenszyklus der Applikationsentwicklung zu integrieren. So lassen sich potenzielle Schwachstellen beseitigen, während Entwicklung und Betrieb eine Einheit bilden und eine hohe Entwicklungsgeschwindigkeit entlang des Anwenderbedarfs ermöglichen.
DevSecOps - Definition
DevSecOps bezeichnet keine Technologie, sondern einen kulturellen Wandel in der Softwareentwicklung. Ziel des DevSecOps-Ansatzes ist es, die IT-Sicherheit in den heutzutage typischerweise rasanten Entwicklungszyklen (Stichwort DevOps) zu verankern.
Um diesen Shift-Left-Ansatz in der Praxis umzusetzen, müssen Unternehmen die im Regelfall ausgeprägte Lücke zwischen Entwicklungs- und Security-Teams schließen. Im Idealfall geschieht das so, dass möglichst viele Sicherheitsprozesse automatisiert ablaufen beziehungsweise vom Entwicklungsteam selbst erledigt werden.
DevSecOps - die sichere Softwareentwicklung
In der traditionellen Softwareentwicklung wurden neue Versionen alle paar Monate - manchmal auch Jahre - veröffentlicht. Das verschaffte den Unternehmen ausreichend Zeit, um ihren Code einer Qualitätskontrolle und einer Security-Testing-Prozedur zu unterziehen. Dabei wurden diese Prozesse von unterschiedlichen, spezialisierten Teams übernommen. In den letzten zehn Jahren hat sich das fundamental verändert: Die Public Cloud, Containertechnologie und der Microservices-Ansatz haben dafür gesorgt, dass der monolithische Prozess der Softwareentwicklung in viele kleine, voneinander unabhängig ablaufende Prozesse aufgesplittet wurde.
Das hat die Art und Weise, wie Software entwickelt wird, verändert: Dank agiler Entwicklungsmethoden und "rollender" Releasezyklen werden Features beziehungsweise neuer Code fortlaufend und in kurzen Abständen hinzugefügt. Die dabei ablaufenden Prozesse wurden vielfach mit Hilfe neuer Technologien und Tools automatisiert, was die Innovationsgeschwindigkeit - und damit die Wettbewerbsfähigkeit - von Unternehmen entscheidend stärkte.
Cloud, Container und Microservices haben jedoch eine weitere Entwicklung befeuert: den DevOps-Ansatz. Entwickler provisionieren und skalieren hierbei die Infrastruktur selbst - ein eigenes Team, dass diese Aufgabe übernimmt, gibt es nicht mehr. Inzwischen bieten alle großen Cloud Provider APIs und Konfigurationswerkzeuge, die die Bereitstellung von Infrastruktur als Code über "Deployment Teamplates" ermöglichen.
DevOps hat die Softwareentwicklung ohne Zweifel innovativer, agiler und schneller gemacht, allerdings wurde beim Fokus auf Geschwindigkeit allzu oft die IT Security vernachlässigt. Mit dem DevSecOps-Konzept soll dieser Umstand korrigiert und Security Testing vollständig in die CI/CD Pipelines integriert werden. Darüber hinaus geht es bei DevSecOps auch darum, die Entwickler zu befähigen, Tests und eventuelle Nacharbeiten selbst erledigen zu können.
DevSecOps - Erfolgsfaktoren
"Insbesondere die Umsetzung des letztgenannten Punkts wird einige Zeit in Anspruch nehmen. Doch erst wenn ein separates Sicherheitsteam überflüssig ist, kann man wirklich von DevSecOps sprechen", ist Chris Wysopal, CTO beim Sicherheitsanbieter Veracode, überzeugt.
Um das Security Skillset von Entwicklern zu erweitern, benennen einige Unternehmen einen "Security Champion" innerhalb des Dev-Teams. Dieser hat zuvor bereits eine erweiterte Security-Schulung erhalten und übernimmt im Team die Verantwortung für das Security Fixing, während der Rest des Teams nach und nach Weiterbildungen in Sachen sichere Programmierarbeit erhält.
Die Verschmelzung von Entwicklung und Security muss allerdings auch auf dem Management-Level erfolgen, wie Brian Fox, CTO beim DevOps-Plattformanbieter Sonatype, weiß: "Geschieht das nicht, kann es zu Machtkämpfen und divergierenden Zielen kommen, obwohl die Beteiligten im selben Team verortet sind. Das ist ein bisschen wie auf dem Kinderspielplatz: Zwei Kinder sitzen nebeneinander, streiten nicht - und trotzdem heißt das nicht, dass sie gemeinsam spielen. Genau das passiert in vielen Unternehmen."
- Bernd Wachter, Capgemini
„DevOps ist einer der zentralen Bausteine, um Software schneller releasen zu können, Agilität, DevOps und Cloud werden in Summe die IT-Landschaft so verändern, wie sie in den vergangenen Jahren nicht verändert worden ist. Die Kunst dabei ist, die Transformation vom projekt- zu einer produktorientierten Organisation aktiv zu gestalten. Und das ist kein rein technologisches Thema, sondern ein primär kulturelles, das bis in die Führungsebenen hineinreicht und oft unterschätzt wird. Deshalb scheitert die erfolgreiche Umsetzung von DevOps derzeit noch bei vielen Unternehmen in Deutschland.“ - Mark Aichholz, IBM
„Es ist wichtig, die Brücke zwischen Business und IT zu schlagen. Ein probates Mittel dafür ist, die Menschen beim Kunden zusammenzubringen und in Workshops herauszuarbeiten, wo das Business die IT sieht. Wie weit bin ich vom Bild eines perfekten agilen Unternehmens entfernt? Wo verliert man die meiste Zeit, wo ist die Qualität nicht ausreichend, und wo schmerzt es das Business am meisten? Ohne begleitenden Schulungs- und Überzeugungsprozess wird es schwierig, DevOps über die Fläche auszurollen.“ - Mark Hlawatschek, ATIX
„Ein aufgezwungener Ansatz funktioniert nicht, weil DevOps eine Kultur ist. Das Team muss verstehen, dass es Verantwortung haben will und am Ende auch tragen muss. Es geht bei der Entscheidung für DevOps nicht um Ja oder Nein, sondern um die Frage, warum man DevOps machen möchte. Es ist auch nicht die Frage, mit welcher Hardware ein Kulturwandel vollzogen wird. Es braucht die Zusammenarbeit von Entwicklung und Betrieb sowie Automatisierungslösungen. Eine funktionierende DevOps-Kultur ist ausschlaggebend für den Erfolg digitaler Geschäftsmodelle. Die Geschwindigkeit, mit der neue Softwareversionen veröffentlicht werden können, ist einer der wichtigsten Erfolgsfaktoren.“ - Ulrich Eschbaumer, CGI
„Das Thema DevOps ist aktuell ein Hype, bei dem man nicht auf der grünen Wiese anfängt. Es muss mit Kompetenz und jahrelangem Know-how implementiert werden, weshalb der Altersdurchschnitt der Beteiligten relativ hoch ist. Die Umstellung in den Köpfen ist dabei eine der wesentlichen Herausforderungen. Eine andere liegt in der Hybridsituation aus agilen und klassischen Vorgehensweisen. Diese zu verheiraten und zusätzlich noch Geschwindigkeit aufzunehmen ist eine echte Challenge.“ - Donald S. Fitzgerald, EasiRun
„Um die Implementierung von DevOps als Strategie zu rechtfertigen, benötigt man deutliche Mehrwerte, und die kommen hauptsächlich vom damit erreichten verbesserten Erfolg im Markt. Im Markt entscheidet nur einer über Qualität und Vorteile: der Kunde! Erfolgreiche Implementierungen von DevOps-Strategien und -Prozessen realisieren die Qualitätsansprüche von Kunden nicht durch die Geschwindigkeit, wobei Patches und Releases täglich beziehungsweise stündlich rausgehen – ganz im Gegenteil: Wenn alle Beteiligten in die Wertschöpfungskette eingebunden sind, ihre Beiträge leisten und das Bewusstsein entwickeln, dass der Kunde über die Qualität entscheidet, wird die Wahrnehmung für Qualität als Ziel geschärft – auch die des Kunden.“ - Markus Eisele, Red Hat
„DevOps hat seine Wurzeln in der Open-Source-Kultur. Die hohe Geschwindigkeit, die heute durch kürzere Produktionszyklen und die Automatisierung bei der Infrastrukturbereitstellung angestrebt wird, spielt in der Open-Source-Gesellschaft seit vielen Jahren eine herausragende Rolle. Allerdings wird hier aufgrund der großen Community viel offener kommuniziert, nach ganz anderen Regeln und mit weniger Bürokratie, also in einer offenen Kultur. Das Kultur-Thema ist letztlich auch der Dreh- und Angelpunkt, an dem Unternehmen immer wieder sehen, warum Pilotprojekte scheitern.“ - Peter Schmidt, PKS Software
„Es gibt kein Patentrezept für die Einführung von DevOps, denn die beteiligten Personen – junge und langjährig erfahrene Softwareentwickler, IT-Abteilung und Fachbereich, Entscheider und Umsetzer – sind über ganz unterschiedliche Aspekte für solch ein Vorhaben zu motivieren. Hier braucht es also neben IT- und Tool-Experten vor allen Dingen auch das Wissen um die Belohnungssysteme der Menschen und darüber, wie man Teams so zusammenstellt, dass der Projekterfolg programmiert ist. Für ein Pilotprojekt werden häufig die engagiertesten Mitarbeiter aus den einzelnen Abteilungen eingebunden – damit ist ein initialer Erfolg quasi garantiert. Doch die Einführung beziehungsweise der Roll-out gestaltet sich umso schwieriger. Gerade bei den Legacy-Systemen gibt es in den Unternehmen viele Kopf-Monopole mit Klumpenrisiko; gerade diese Mitarbeiter muss man mit auf die Reise nehmen, um von DevOps dauerhaft als Unternehmen zu profitieren.“ - Wilfried Cleres, Fujitsu
„Bei der Einführung von DevOps gibt es drei wichtige Punkte. Der erste ist die Ist-Aufnahme: Wo stehe ich heute mit meiner Tool-Landschaft? Zweiter Punkt: Vergiss die Menschen nicht. Nimm alle mit, sonst kann man die Kultur nicht umsetzen. Und drittens: Entwickelt gemeinsam den künftigen Bebauungsplan mit den wichtigsten Zielen. Wichtig ist, dass diese auch erreichbar sind. Lieber weniger Ziele setzen, die dann aber auch erreicht werden können.“
DevSecOps - Tools
Frühe DevSecOps-Tools waren nicht immer entwicklerfreundlich: Statt automatisierbaren Kommandozeilen-Tools, deren Output sich schnell und einfach in Bug Tracker übertragen lässt, sind traditionelle Security-Werkzeuge eher für Security Teams und CISOs konzipiert und rücken Governance, Sicherheitsrichtlinien und Risk Management in den Fokus.
Das hat sich inzwischen geändert - neue Tools, die (teilweise) von Entwicklern für Entwickler geschaffen wurden, bereichern inzwischen vielerorts die Entwicklungsumgebungen und CI/CD-Workflows. Die Werkzeuge lassen sich dabei in verschiedene Kategorien einordnen. Zu den populärsten DevSecOps-Tools gehören beispielweise:
Anomalieerkennung:
Automatisierung:
Dashboards:
Threat Modeling:
Testing:
Im Laufe der letzten Jahre sind einige traditionelle Security-Anbieter dazu übergegangen, ihre Produkte sowohl auf die Entwickler- als auch auf die CISO-Welt auszurichten und verbinden Reporting- und Analytics-Funktionalitäten mit simpler Benutzerführung. Auch die Anbieter von Cloud Services haben damit begonnen, ihre Dienste mit Security-Testing-Funktionalitäten anzureichern.
Dieser Beitrag basiert in Teilen auf einem Artikel unserer US-Schwesterpublikation CSO Online.