Definition „Secure Software Development Life Cycle“

Wie funktioniert sichere Software-Entwicklung?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Der Secure Software Development Life Cycle sieht für jede Entwicklungsphase bestimmte Schritte vor, die speziell auf die Sicherheit des Projekts abzielen.
Der Secure Software Development Life Cycle sieht für jede Entwicklungsphase bestimmte Schritte vor, die speziell auf die Sicherheit des Projekts abzielen. (Bild: Fernando Arcos - pexels.com / CC0)

Sicherheit spielt bei Software eine wichtige Rolle und sollte daher schon von Beginn des Projekts an bedacht werden. Die nötigen Schritte können gut in die Phasen des Software Development Life Cycle integriert werden und so die Entwicklung begleiten.

In der Vergangenheit wurde praktisch jede Software über lange Zeiträume entwickelt. Neue Versionen wurden vielleicht ein- oder zweimal pro Jahr veröffentlicht, vielleicht sogar nur alle paar Jahre. Entsprechend viel Zeit konnte für Tests und Sicherheitskonzepte aufgewendet werden.

Heutzutage muss es in vielen Fällen schneller gehen: Änderungen sollen den Kunden teils sogar alle paar Wochen erreichen. In der Praxis liegt der Schwerpunkt dann oft darauf, greifbare Inhalte zu liefern. Man konzentriert sich auf Funktionalität und Design, weil der Kunde diese Aspekte sehen und bewerten kann.

Raffinierte Sicherheitsmechanismen und gründliche Testszenarien hingegen erzeugen auf den ersten Blick wenig sichtbare Resultate. Stehen diese Punkte zuletzt im Entwicklungsprozess, werden sie manchmal zu stark vernachlässigt. Besonders, wenn die Release-Zyklen kurz sein sollen, fallen Aufgaben ohne greifbare Ergebnisse zuerst weg.

Es ergibt also Sinn, das Thema Sicherheit schon von Anfang an fest mit einzubeziehen und so die Aufgaben über den gesamten Zyklus zu streuen. In jeder Phase kann dadurch optimal auf die Aspekte eingegangen werden, um die es gerade geht, und kein Bereich kommt zu kurz.

Sicherheit in kleinen Schritten

Sicherheit ist wichtiger denn je in der Software-Entwicklung. Es werden laufend neue Technologien verfügbar, die ihrerseits den Weg für immer komplexere Bedrohungsszenarien ebnen. Zudem wachsen die Ansprüche an die Sicherheit, zum Beispiel durch gesetzliche Vorgaben oder die fortschreitende Digitalisierung des täglichen Lebens.

Für Software-Entwickler bedeutet das, dass Sicherheit von Beginn an ganzheitlich in jedes Projekt integriert werden sollte, um möglichst viele Szenarien abzudecken. Das kann geplant werden: Im Secure Software Development Life Cycle können in jeder Phase bestimmte Schritte stattfinden, die speziell auf die Sicherheit des Projekts abzielen.

Planung und Analyse

Das Projekt steht noch ganz am Anfang. Es wird gerade geplant, was die Software später einmal können soll und wie diese Ziele erreicht werden könnten. Jetzt ist der richtige Zeitpunkt, um Sicherheitsrichtlinien festzulegen und über mögliche Schwachstellen nachzudenken. Was sollen die Benutzer definitiv nicht können? Welche Absicht könnte ein Angreifer verfolgen und wie könnte er sein Ziel erreichen?

Im agilen Umfeld wird häufig mit User Stories gearbeitet, um die geplanten Funktionen abzubilden. Hier bietet sich die Möglichkeit, User Stories aus Sicht eines Angreifers mit in die Planung einzubinden – Evil User Stories. Sie versuchen, böswillige Absichten zu ergründen, damit später vorausschauende Gegenmaßnahmen integriert werden können.

Design

An dieser Stelle wird konkret geplant, mit welchen Mitteln die Anforderungen umgesetzt werden können. Hier geht es zum Beispiel um Layout, Architektur, Technologien und Hardware für das Projekt. Wie könnte diese oder jene Technologie angreifbar sein? Welche Sicherheitslücken sind bekannt? Welche Maßnahmen können gegen die gefundenen Risiken ergriffen werden? Welche Risiken entstehen durch die geplante Architektur und wie kann man sie vermeiden? Wie kann die Oberfläche zur Sicherheit des Systems beitragen? Wie lässt sich das System gegen Angriffe härten?

Entwicklung

Nun beginnt die technische Umsetzung der Pläne. Die Entwickler, Hardwareexperten und Oberflächendesigner implementieren nun die festgelegten Sicherheitsmaßnahmen parallel zu den regulären Anforderungen.

Schon während der Entwicklung kann durch standardisierte Maßnahmen und Werkzeuge geprüft werden, ob bestimmte Vorgaben aus dem Sicherheitskonzept eingehalten wurden. Das können automatisierte Tests, Code Reviews oder speziell die Sicherheit betreffende Tools sein (z. B. Tools, die den Code nach Funktionen durchsuchen, die laut Vorgabe als unsicher eingestuft wurden). Je nach Vorgehensweise können auch jetzt schon Tester mitwirken und somit frühzeitig auf Probleme hinweisen.

Testen

Das System wurde nach den Vorgaben entwickelt und kann nun ausführlich getestet werden. Tester prüfen, ob die festgelegten Sicherheitsrichtlinien und Maßnahmen eingehalten wurden und ob das System angreifbar ist. Wenn sie Mängel oder Sicherheitslücken finden, dokumentieren sie den Vorfall und geben ihn an die Entwicklung weiter. Bei kritischen Systemen ist es ratsam, die Integrität der Software durch externe Penetrationstests prüfen zu lassen – eventuell auch hin und wieder nach der Auslieferung.

Auslieferung und Wartung

Bevor die Software dem Kunden bereitgestellt wird, sollte eine abschließende Review aller Sicherheitsaktivitäten aus den vorhergehenden Phasen erfolgen. Falls an einer Stelle etwas vergessen wurde, kommt der Fehler nun ans Licht und kann korrigiert werden.

Nach der Auslieferung geht die Software schließlich in die Wartungsphase über. Wenn Fehler oder Schwachstellen im System festgestellt werden, müssen diese nun behoben werden. Es ist vorteilhaft, wenn bereits feste Ansprechpartner und Vorgehensmodelle für solche Probleme existieren, damit sicherheitskritische Systeme zeitig verbessert werden können.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

SSDL-Implementierung, Testing und Nachsorge

Secure Software Development Lifecycle, Teil 3

SSDL-Implementierung, Testing und Nachsorge

Um einen sichere Softwareentwicklungs-Lebenszyklus richtig umzusetzen, bedarf es einiger Planung. Doch damit mit der Implementierung allein ist es noch nicht getan, im Nachgang sind noch weitere Schritte erforderlich. lesen

Konzeption und Planung eines SSDL nach BSI

Secure Software Development Lifecycle, Teil 2

Konzeption und Planung eines SSDL nach BSI

Hier stellen wir das Konzept des sicheren Softwareentwicklungs-Lebenszyklus nach BSI in der zweiten Phase, sprich Konzeption und Planung vor. In der ersten Phase, die wir bereits kennengelernt haben, ging es nämlich nur darum, die Rahmenbedingungen festzulegen. lesen

Umsetzung eines SSDL nach BSI-Empfehlung

Secure Software Development Lifecycle, Teil 1

Umsetzung eines SSDL nach BSI-Empfehlung

Ein Secure Software Development Lifecycle, kurz SSDL, setzt einen kompletten Sicherheitsprozess über die eigentliche Software-Entwicklung und sollte in keinem Unternehmen fehlen. Einerseits, um teure Behebung von Sicherheitslücken zu verhindern, andererseits weil es von vielen Auftraggebern schlicht erwartet wird. lesen

Security Awareness für Programmierer

Security-Startups im Blickpunkt: Securai

Security Awareness für Programmierer

Hacker, Malware und Cyberspionen wirksam den Zugriff auf digitale Unternehmenswerte zu verwehren ist nicht einfach. Man investiert dafür in clevere Software, durchdachte Prozesse und letztendlich auch in Security Awareness beim Mitarbeiter, der als engagierter Wächter ebenfalls Bedrohungen erkennen und eliminieren soll. Gerade Gruppen wie Programmierer bleiben bei diesen Maßnahmen aber oft inhaltlich ausgeschlossen, da man nicht auf Ihre Bedürfnisse eingeht. lesen

Veracode validiert sichere Software-Entwicklung

Drittanbieter-Prüfung durch „Verified“-Programm

Veracode validiert sichere Software-Entwicklung

Sichere Anwendungsentwicklung wird immer öfter gelebt, doch sicher kann man sich entsprechender Vorgehensweisen als Software-Käufer nicht sein. Im Rahmen eines „Verified“-Programms will Veracode künftig sichere Software-Entwicklung verifizieren und validieren. lesen

Sichere Software-Entwicklung von Anfang an

Security by Design

Sichere Software-Entwicklung von Anfang an

In der Softwareentwicklung spielt die Sicherheit eine immer wichtigere Rolle. „Security by Design“ ist allein schon deshalb so wichtig, weil Computer und Smart Devices heute ständig online und somit bedroht sind. Sicherheitsaspekte vom ersten Tag an umzusetzen ist aber nicht so schwer, wie man glauben könnte. lesen

Sichere Software-Entwicklung mit PaaS-Umgebungen

Platform as a Service

Sichere Software-Entwicklung mit PaaS-Umgebungen

Immer mehr Unternehmen setzen bei der Applikationsentwicklung und Implementierung von Softwarepaketen auf Platform-as-a-Service. Progress Software nennt vier wichtige Sicherheitsaspekte, die bei einer Auslagerung der Entwicklungsumgebung beachtet werden sollten. lesen

Sichere Software-Entwicklung mit ISO 27034-1

Cloud-Anwendungen

Sichere Software-Entwicklung mit ISO 27034-1

Standardisierungsgremien wie die ISO und das IEC wollen unsicheren Anwendungen einen Riegel vorschieben. Um sichere Software-Entwicklung zu forcieren, verabschiedeten sie Ende 2012 den ISO-Standard 27034-1. Doch was taugt die Norm? lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45267491 / Definitionen)