DevSecOpsJan Kahmen4 min Lesezeit

Agile Softwareentwicklung: Sicherheitsaspekte systematisch im Projekt verankern

Agile Softwareentwicklung erlaubt es, Produkte schneller auf den Markt zu bringen und Feedback früher und schneller zu berücksichtigen. Agile Entwicklung wird daher zum Standard für die Branche. Dabei wird die Softwaresicherheit zum Problem. Erfahren Sie, warum das so ist und wie sie in der agilen Entwicklung Sicherheitsfragen von Anfang an systematisch berücksichtigen!

agile-softwareentwicklung-sicherheitsaspekte-systematisch-im-projekt-verankern.jpeg

Inhaltsverzeichnis

Sicherheit als Prozess in die Entwicklung implementieren

Agile Softwareentwicklung funktioniert anders als traditionelle Entwicklungsprozess. Es gibt nicht eine lange Planungs- und Entwicklungsphase mit einer darauffolgenden Produkteinführung, sondern viele kleine Iterationen. Agile Entwicklungszyklen basieren auf der schrittweisen Entwicklung eines Produkts. Das ermöglicht eine kürzere Time-to-Market und eine Optimierung der customer journey, erfordert aber auch ein angepasstes Sicherheitskonzept.

In der agilen Softwareentwicklung ist Sicherheit keine Qualitätsanforderung zu einem einzelnen Zeitpunkt innerhalb der Entwicklung, sondern ein kontinuierlicher Prozess mit neuen Aktivitäten in jedem Sprint. Definition und Umsetzung dieser Prozesse sind eine große Herausforderung für die Organisation - einmal implementiert bergen sie aber auch das Potenzial, Sicherheitsstandards von Anfang an besser zu berücksichtigen und so die Qualität des Produkts zu steigern.

Abuser Stories nutzen und Sicherheitsanforderungen frühphasig definieren

Eine Abuser Story ist eine Geschichte, erzählt aus der Perspektive eines Nutzers, der böse Absichten hat. In der Abuser Story wird eine Vorgehensweise beschrieben, die ein Angreifer nutzen könnte, um dem Unternehmen durch die Software zu schaden. Sie sind in der agilen Entwicklung ein nützliches Werkzeug, um herauszufinden, welche Nutzeraktivitäten von Anfang an verhindert werden sollten. Abuser Storys bilden so die Basis, erste Anforderungen und Aktivitäten für die späteren Sprints zu definieren.

Entwicklungszyklus und Sicherheitszyklus angleichen

Der Security Development Life Cycle hat sich als Standard für die Implementierung von Sicherheitsaspekten in die Softwareentwicklung etabliert. Der SDLC ist aber anhand traditioneller Entwicklungszyklen definiert, in der klar definierte Phasen statisch aufeinanderfolgen. Da diese statische Abfolge in der agilen Entwicklung nicht existiert, sind statische Zeitpunkte für die Durchführung von Analysen nicht sinnvoll. Bedrohungsanalysen sollten in einem agilen Projekt durchgeführt werden, sobald die Architektur konzeptionell steht. Das ist meistens bereits nach einigen Sprints der Fall. Eine Analyse in dieser frühen Phase erlaubt es Ihnen, die weiteren Aktivitäten für die nächsten Sprints genau zu planen und später zu überprüfen.

Sicherheitsmaßnahmen automatisieren

Ein inkrementeller Zyklus dauert meist nur wenige Wochen. In dieser Zeit müssen auch Sicherheitsaktivitäten durchgeführt werden. Dadurch wird die Zeit für die Implementierung von Sicherheitsstandards zu einem kritischen Faktor. Tools helfen dem Entwicklungsteam dabei, Aktivitäten wie die Code-Analyse oder Regressionstests zu automatisieren.

Governance und Kommunikation: Sicherheit in der agilen Entwicklung auf Organisationsebene sicherstellen

Agile Entwicklung setzt nicht nur einen anderen Ansatz in der praktischen Implementierung von Sicherheitsstandards während des Entwicklungszyklus voraus, sondern stellt auch spezifische Anforderungen an die Organisation und die beteiligten Mitarbeiter.

Das fängt bei der Definition von Verantwortlichkeiten an. Um Sicherheit systematisch zu verankern, sollte jede Rolle im Hinblick auf Sicherheitsaufgaben im Entwicklungsprozess klar definiert werden. Das betrifft grundsätzlich alle Mitglieder des Entwicklungsteams - vom Product Owner über den Scrum Master bis zu den einzelnen Entwicklern. Damit diese Anforderungen auch umgesetzt werden, sollten zudem Kommunikationsformate institutionell verankert werden. Hier können sich Entwicklungsteams mit den Sicherheitsverantwortlichen innerhalb der Organisation austauschen und dadurch einen reibungslosen Informationsfluss gewährleisten.

Sicherheit und Agilität sind kein Widerspruch

Die agile Softwareentwicklung erfordert eine Anpassung etablierter Verfahren und Standards an die neuen Entwicklungszyklen. Dies stellt hohe Anforderungen an das Entwicklungsteam, bietet aber auch die Gelegenheit, langfristig sicherere Produkte zu entwickeln. Agilität und Sicherheit sind kein Gegensatz, im Gegenteil: vom inkrementellen und iterativen Vorgehen der agilen Entwicklung profitiert auch die Umsetzung von Sicherheitsstandards. Sie werden früher entwickelt und häufiger getestet.

Neugierig? Überzeugt? Interessiert?

Vereinbaren Sie noch heute ein unverbindliches Gespräch mit einem unserer Produktexperten.