SecDevOps – Sichere, agile Softwareentwicklung

Redakteur: Stephan Augsten

Gegenüber linearen Entwicklungsmethoden wie dem Wasserfallmodell bietet agile Softwareentwicklung einige Vorteile. Hinsichtlich der Sicherheit gibt es dabei aber einige Knackpunkte, die Janosch Maier von Crashtest Security genauer dargelegt hat.

Anbieter zum Thema

Im DevOps-Prozess ist auch immer noch Platz für mehr Sicherheit.
Im DevOps-Prozess ist auch immer noch Platz für mehr Sicherheit.
(Bild: Crashtest Security)

Ob Scrum, Kanban oder Extreme Programming: Agile Methoden der Softwareentwicklung werden bereits von Entwicklern in vielen Unternehmen angewendet. Sie sind schlicht flexibler und leistungsfähiger als lineare Vorgehensmodelle, bei denen die Projektphasen strikt abgegrenzt aufeinander folgen.

Diese Leistungsfähigkeit erkauft man sich aber mit einer zunehmenden Komplexität, die wiederum zu Lasten der Sicherheit geht, wie Janosch Maier unterstreicht. Der Gründer von Crashtest Security nennt im Folgenden die vier großen Vorteile agiler Entwicklung sowie potenzielle Stolpersteine und die Vorzüge von SecDevOps.

Die Vorteile von Agile Programming

1. Anpassungsfähigkeit: Bei der herkömmlichen Schritt-für-Schritt-Programmierung kann es vorkommen, dass Produkte die Anforderungen der Kunden nicht exakt erfüllen und neugestaltet werden müssen, was Zeit und Geld kostet. Mit agilen Methoden hingegen arbeiten die Entwicklungsteams eng mit dem Kunden zusammen und müssen am Ende des Projekts weniger Änderungen vornehmen. Dank kürzerer Entwicklungszyklen haben Softwareentwickler zudem die Möglichkeit, Produktänderungen auch in viel späteren Stadien des Prozesses vorzunehmen als bei herkömmlichen Methoden. Durch kontinuierliches Testen und Verifizieren können neue Produkte zudem früher eingesetzt werden.

2. Zusammenarbeit: Durch agile Methoden (z.B. Scrum) müssen Entwickler enger zusammenarbeiten, da sie alle 24 Stunden innerhalb des Scrum Teams im Daily Scrum berichten. Im besten Fall ist hier der Product Owner mit dabei und kann auftretende Fragen zu geplanten Funktionen direkt beantworten. Dies führt zu geringeren Kommunikationsbarrieren und einem häufigeren Wissensaustausch.

3. Transparenz: Bei der Wasserfallmethode können Kunden das Produkt erst sehen, wenn es fertig ist. Durch agile Methoden können sich Kunden nach jedem neuen Entwicklungszyklus an dem Prozess beteiligen und Feedback geben. Zusätzlich hat der Product Owner ein höheres Wissen über den Projektstatus, da Update-Meetings viel häufiger stattfinden.

4. Effizienz: Mit Hilfe von agiler Softwareentwicklung können Entwicklungsteams vorhandene Probleme zu einem viel früheren Zeitpunkt des Projekts herausfinden, da neue Funktionen kurz nach ihrer Erstellung getestet werden. Unternehmen können so Zeit und Geld sparen. Darüber hinaus schaffen sie einen Mehrwert für die Kunden, um ihren Wettbewerbsvorteil langfristig zu stärken.

Gleichzeitig birgt die agile Softwareentwicklung aber auch Risiken, schreibt Maier. „Ihr Ziel ist es, eine Vielzahl an Funktionen in kürzerer Zeit zu erstellen und zu integrieren.“ Damit gehe das Risiko einher, dass Sicherheitstests neuer Versionen erst am Ende eines Projekts oder nach größeren Releases durchgeführt werden.

„Da das Testen Zeit und Ressourcen erfordert, schreiben Entwickler häufig keine eigenen Sicherheitstests für die Software“, berichtet Maier. Insbesondere im Bereich der Webanwendungen werde man dann zu einem bevorzugten Ziel für Hacker. Wenn aber nun Agilität durch mehr Komplexität zu Sicherheitsproblemen führt, Sicherheit aber wiederum die Agilität negativ beeinflusst, wie können Unternehmen beides kombinieren?

Hierfür hat Janosch Maier drei Tipps parat:

1. Aufgrund der hohen Entwicklungsgeschwindigkeit bei agiler Softwareentwicklung kann nicht jeder Arbeitsschritt manuell ausgeführt werden. Häufig arbeiten agile Teams mit DevOps Methoden, bei denen Entwickler auch für den Betrieb der Software zuständig sind. Agile Build Pipelines automatisieren Schritte wie Funktionstests in der Bereitstellung der Software. In solche Build Pipelines lassen sich freie sowie kommerzielle Tools zum Erkennen von Sicherheitslücken integrieren.

Statische sowie dynamische Sicherheitsscanner finden zum Beispiel veraltete Programmbibliotheken oder Sicherheitsprobleme in der entwickelten Software. Das ist wichtig, da die Sicherheit zu jedem Zeitpunkt eines Projektes beachtet werden muss, was mit manuellen Tests sehr anstrengend ist. Dank automatisierter Sicherheitsscanner können sich Entwickler auf die Erstellung von Features konzentrieren, die tatsächlich einen geschäftlichen Nutzen schaffen.

2. Sicherheit sollte nicht als zusätzlicher Arbeitsschritt betrachtet werden, der nach jeder Bereitstellung auf DevOps angewendet wird, sondern als fortlaufende Vorgehensweise, die von Anfang an in jedem Entwicklungszyklus berücksichtigt werden muss.

3. Um die Sicherheit im Unternehmen vollständig zu implementieren, müssen Führungskräfte sicherstellen, dass in jeder Abteilung der Organisation eine „Sicherheitskultur“ gelebt wird.

Vorteile der Kombination aus Agilität und Security

Neben der Sicherheitsunterstützung kennt Maier weitere positive Aspekte, die nur durch die Integration von SecDevOps möglich sind:

1. Höhere Produktivität: Mit einem integrierten Sicherheitsframework können Entwickler effizienter arbeiten. Jede Iteration des Produkts ist gesichert. Dadurch können sich Entwickler auf die Entwicklung umsatzsteigernder Funktionen für die Webanwendung konzentrieren.

2. Datenschutz: Nach den Mitarbeitern sind Daten für jedes Unternehmen das wertvollste Gut. Daten sind das, was zu Kundeneinblicken und höherem Geschäftswert führt. Wenn sie den Zugriff auf Geschäftsdaten verlieren (z.B. durch einen Ransomware-Angriff), kann dies die Produktivität herabsetzen oder sogar die gesamte IT-Infrastruktur einfrieren. Dies kann zu direkten Kosten führen, da sich die meisten Unternehmen für das Lösegeld entscheiden. Ein Verlust von Kundendaten kann sogar noch schlimmer sein, da mangelndes Vertrauen der Kunden langfristig den Umsatz stark negativ beeinflusst.

3. Kosteneinsparungen: Die oben genannten Vorteile führen bereits zu (in)direkten Kosteneinsparungen. Eine „Regel“ der Informatik besagt, dass Fehler in jeder Phase der Softwareentwicklung, in der Sie gefunden werden 10x höhere Kosten verursachen als in der Phase davor (Planung, Entwicklung, Betrieb, …). Die Implementierung von IT-Sicherheit spart somit Geld, da sie Sicherheitslücken in einer früheren Phase der Entwicklung aufdeckt und diese somit behoben werden können.

Dieser Beitrag stammt von unserem Partnerportal Dev-Insider.de.

(ID:45843556)