Mehr Sicherheit bei der Anwendungsentwicklung Wie wichtig die DevSecOps-Kultur für Unternehmen ist

Autor / Redakteur: Daniel Berman * / Stephan Augsten

Der Einsatz von Containern und Open Source birgt viele Vorteile für Entwickler – aber auch einige Herausforderungen bei der Sicherheit. Wie Sicherheit durch einen DevSecOps-Ansatz stärker im Entwicklungsprozess integriert werden kann, erläutert dieser Gastbeitrag.

Firmen zum Thema

DevOps ist ein guter Anfang, doch erst durch integrierte Sicherheit kann die Security-Abteilung auch Schritt mit der Entwicklung halten.
DevOps ist ein guter Anfang, doch erst durch integrierte Sicherheit kann die Security-Abteilung auch Schritt mit der Entwicklung halten.
(© spainter_vfx - stock.adobe.com)

Das Konzept von DevOps gibt es schon seit über zehn Jahren. Ziel dieses Ansatzes war ursprünglich, die Zusammenarbeit von Entwickler- und Operations-Teams zu verbessern. Dabei spielte die Automatisierung von Prozessen eine entscheidende Rolle, sowohl bei der Entwicklung als auch beim Testen und beim Einsatz von Anwendungen.

Zunächst arbeiteten die entsprechenden Teams gemeinsam einige Standard-Prozeduren aus. Daraus entwickelte sich der DevOps-Ansatz, der zunehmend den gesamten Entwicklungsprozess beeinflusste. Zu diesem Zeitpunkt spielte das Thema Sicherheit zwar schon eine Rolle, war aber noch nicht vorrangig.

DevOps war dabei nicht die einzige Veränderung, die die Software-Entwicklung und -Anwendung entscheidend beeinflusste. Auch die zunehmende Migration von Anwendungen in die Cloud, Containerisierung und die Zunahme von Open Source spielten eine entscheidende Rolle.

Diese Aspekte treiben die digitale Transformation entscheidend voran und ermöglichen es Unternehmen, schneller Ergebnisse zu erzielen und wettbewerbsfähig zu bleiben. Jedoch wurden damit einige Dinge auch komplexer – und es wird zunehmend schwieriger, digitale Lösungen auch wirklich sicher zu gestalten.

Da Entwickler immer schneller Ergebnisse liefern müssen, wird es für Sicherheitsteams immer schwieriger, damit Schritt zu halten. Dies wiederum kann den Entwicklungsprozess manchmal entscheidend verzögern. Und genau deshalb sollte Sicherheit als integrierter Teil von DevOps betrachtet werden. Somit wandelt sich DevOps zunehmend zu einer DevSecOps-Kultur.

Sicherheit in der Cloud-Ära: Die Herausforderungen von Containerisierung und Open Source

Was sind die konkreten Sicherheitsherausforderungen, denen sich Unternehmen im Zeitalter von Cloud, Containerisierung und Open Source stellen müssen? Und wie kann ein DevSecOps-Ansatz dabei unterstützen?

Beginnen wir mit dem Beispiel Container: Während Waren schon lange in Containern rund um die Welt transportiert werden, sind Software-Container noch recht neu. Diese Container enthalten neben der Software ein komplettes Dateiensystem, mit allem, was nötig ist, damit die Software läuft: Quellcode, Systembibliotheken, System-Tools und eine Laufzeitumgebung. Dadurch funktioniert die Anwendung unabhängig von der Umgebung.

Der Einsatz von Containern ermöglicht darüber hinaus eine schnellere Anwendungsentwicklung und automatisierte Arbeitsabläufe, so dass Entwicklerteams ihren Code sehr schnell in Produktionsumgebungen einsetzen können. Dieses sehr schnelle und agile Entwickeln eröffnet viele neue Möglichkeiten, beispielsweise auch für Startups – birgt aber auch neue Gefahren hinsichtlich von Schwachstellen.

Container enthalten meist Open-Source-Anwendungen: Diese Komponenten sind überwiegend Linux-basiert und dienen der Ausführung von Anwendungen, die mit Open-Source-Programmiersprachen und -Frameworks erstellt wurden. Dabei kann Linux durchaus anfällig sein: Hier werden etwa 50 Mal mehr Schwachstellen gemeldet als in Open-Source-Sprachen-Frameworks.

Hinzu kommt, dass Entwickler in der Regel keine Betriebssystem-Betreuer sind – und dies auch gar nicht sein wollen. Ihr Ziel ist es, die Software sicher und schnell auf den Markt zu bringen. Aber glücklicherweise reagieren die Linux- und Container-Communities meist schnell auf Schwachstellen. Mit den richtigen Tools können Entwickler schnell Schwachstellen in ihren Containern beheben, ohne sich erst in Linux-Distributionen einzuarbeiten oder Berichte über Linux-Schwachstellen zu wälzen.

Moderne Tools, wie wir sie mit „Snyk Container“ und „Snyk Open Source“ auch anbieten, lassen sich in einen umfassenden DevSecOps-Ansatz integrieren. So können Entwickler- und IT-Sicherheits-Teams die Vorteile von Containerisierung und Open Source optimal nutzen und gleichzeitig das Risiko reduzieren.

Mitarbeiter, Prozesse, Technologie: Die drei Erfolgsfaktoren von DevSecOps

Technologie, Mitarbeiter und Prozesse sind die drei Erfolgsfaktoren für DevSecOps. Die DevSecOps-Prinzipien bauen auf diesen drei Säulen auf, und ermöglichen dadurch eine umfassende Zusammenarbeit aller relevanten Akteure.

1. Zusammenarbeit der Teams stärken

Eine moderne Sicherheitskultur muss für und nicht gegen die Mitarbeiter arbeiten – nur dann kann sie erfolgreich sein. Wenn ein Unternehmen einen DevSecOps-Ansatz einführen möchte, sollten zuerst die Sicherheitsteams umfassender ins Alltagsgeschäft integriert werden. Eine engere Zusammenarbeit von Entwickler-, Sicherheits- und Betriebsteams ermöglicht schnellere Feedback-Prozesse zum Code, zur Software und zur Anwendung, auch unter Sicherheitsaspekten. Und dies wiederum verringert die Kosten für nachträgliche Korrekturen.

Bis jetzt sind die Verantwortlichkeiten oft noch sehr abgegrenzt: Die Entwickler sind für eine schnelle Bereitstellung des Produkts verantwortlich, Sicherheitsteams für die Sicherheit der Anwendung und Operations-Teams für ihre Stabilität. DevSecOps reißt diese Silos nieder und bringt alle drei Teams mit einem gemeinsamen Ziel zusammen: der schnellen Bereitstellung von sicherer und stabiler Software.

2. Neue Prozesse für eine neue DevSecOps-Kultur

Eine erfolgreiche DevSecOps-Kultur basiert auch auf reibungslosen Prozessen. Dazu gehört das Aufbrechen von Hierarchien und bisherigen Arbeitsabläufen, die die gemeinsame Verantwortung für ein Projekt verhindern. Entscheidend ist dabei auch, die richtige Balance zwischen automatisiertem und manuellem „Gating“ zu finden.

Herkömmliche Sicherheitsstrategien legen oft bestimmte Meilensteine für bestimmte Sicherheitsaufgaben fest. Wenn dann keine zufriedenstellende Lösung gefunden wird, wird der Prozess zunächst nicht fortgeführt. In einigen Unternehmen implementiert das Betriebsteam dann ähnliche Gates, bevor die Software bereitgestellt wird.

Dieses Gating-Modell bringt jedoch langwierige Feedback-Schleifen mit sich und verzögert somit die Software-Auslieferung. Entscheidend bei einem DevSecOps-Ansatz ist jedoch, schnelleres Feedback zu ermöglichen. Gemeinsame Verantwortung statt einem Gating-Modell sollte deshalb die Devise sein. Prozesse müssen dementsprechend angepasst werden.

Ein guter Start für eine solche Zusammenarbeit der relevanten Teams ist die Bedrohungsmodellierung. Mit dieser werden Bedrohungen und Schwachstellen identifiziert und entsprechende Kontrollmechanismen eingeführt, um die Gefahr zu minimieren. Generell ist es besonders wichtig, positive Anwendungsbeispiele aus den Sicherheits- und Operation-Teams im gesamten Entwicklungsprozess zu integrieren.

Silos müssen aber nicht nur innerhalb eines Unternehmens aufgebrochen werden, sondern auch der Blick übers Unternehmen hinaus ist wichtig: Open Source ist ein gutes Beispiel, wie schwierig eine solche breite Zusammenarbeit manchmal sein kann. Bei Open-Source-Lösungen können sich Entwickler und Anwender nicht gemeinsam an einen Tisch setzen und etwas besprechen.

Während viele Arbeitnehmer momentan zu Zeiten von Corona gerade die neue Erfahrung machen, mit Kollegen nur digital zusammenzuarbeiten, ist dies in der Open-Source-Community schon lange Alltag. Deshalb können Anwender beispielsweise nicht so einfach einen Open Source-Entwickler bitten, dass er eine Schwachstelle behebt. Aus diesem Grund müssen Unternehmen verstärkt darauf achten, wer beispielsweise einen Code entwickelt hat, ob dieser sicher ist und entsprechend getestet wurde.

3. Der Einsatz der richtigen Technologie ist eine entscheidende Grundlage

Für die Einführung neuer Prozesse braucht es auch geeignete Technologien. Viele denken bei DevSecOps-Lösungen zuerst an die Automatisierung von Bereitstellungsprozessen. Aber Automatisierung ist nicht immer die Antwort auf alles. Unternehmen sollten zunächst ihre vorhandene Technologie einer Prüfung unterziehen und dort automatisieren, wo es notwendig und möglich ist – und wenn eine Lösung unpraktisch oder unnötig ist, diese auch aussortieren.

Eine Technologieplattform sollte außerdem besonders auf Entwickler zugeschnitten sein, so wie die Plattform von Snyk. Plattformen, die die Bedürfnisse und Anforderungen von Entwicklern in den Mittelpunkt stellen, integrieren gleichzeitig auch Sicherheit über den gesamten Entwicklungsprozess hinweg. Dadurch erhalten Entwickler-, Sicherheits- und Betriebsteams einen umfassenden Überblick.

Die Etablierung einer neuen DevSecOps-Kultur braucht seine Zeit. Unternehmen sollten sich im ersten Schritt bewusst werden, wie wichtig ein solcher Ansatz ist – und welche Vorteile er bietet, beispielweise bessere Sicherheit bei einer gleichzeitig schnelleren Entwicklung. Und wenn Schwachstellen und Fehler möglichst früh im Entwicklungsprozess entdeckt werden, spart dies außerdem Kosten und Zeit. All dies bringt auch größeres Vertrauen in die Sicherheit und Verlässlichkeit einer Software – und damit auch Vorteile für das entsprechende Unternehmen, wie etwa Umsatzsteigerungen.

* Daniel Berman ist Product Marketing Director bei Snyk.

(ID:47124086)