Phasen des Lebenszyklus der sicheren SDLC-Softwareentwicklung
Veröffentlicht: 2021-02-26Der intelligente Ansatz zur Erstellung sicherer Software ist Secure SDLC oder Software Development Lifecycle. Anstatt Software zu erstellen und sie dann auf Schwachstellen zu testen, ist es besser, sie mit einem Schwerpunkt auf Sicherheit zu erstellen.
Was ist sicheres SDLC?
Im weiteren Sinne ist ein sicheres SDLC ein Prozess zur Integration von Sicherheitstests und anderen Maßnahmen in den bestehenden Softwareentwicklungslebenszyklus. Dies kann beinhalten:
- Schreiben von Sicherheitsanforderungen zusammen mit funktionalen Anforderungen.
- Architekturanalyse durchführen.
- Verwendung von Open-Source-Komponenten ohne bekannte Sicherheitslücken.
- Testen der Software in jeder Phase und Verhindern, dass Schwachstellen/Bedrohungen übertragen werden.
Warum sicheres SDLC wichtig ist
Die Implementierung sicherer Verfahren für den Lebenszyklus der Softwareentwicklung ist wichtig, da Entwickler es sich nicht leisten können, ein Produkt mit Sicherheitslücken herauszubringen. Um Software und Daten vor Bedrohungen und Angriffen zu schützen, müssen sie so entwickelt werden, dass Sicherheit gewährleistet ist.
Ein weiterer Grund dafür ist, dass es kein effizienter Ansatz ist, Software zu entwickeln, ohne sich auf die Sicherheit zu konzentrieren und sie dann zu testen und zu korrigieren.
Phasen des sicheren SDLC
Das gesamte Konzept des sicheren SDLC dreht sich darum, das Böse im Keim zu ersticken. Der Prozess verhindert, dass Fehler in die nächste Phase des Softwareentwicklungslebenszyklus übertragen werden. Hier ist eine Skizze der Phasen von Secure SDLC und der jeweils implementierten Sicherheitsmaßnahmen.
Anforderungsphase des sicheren SDLC
Neben den funktionalen Anforderungen an die Software werden zu Beginn des sicheren SDLC auch die Sicherheitsanforderungen beschrieben. Diese Anforderungen beschreiben, was von den Entwicklern verlangt wird, um die Software inhärent sicher zu machen.
Eine detaillierte Liste aller sicherheitsrelevanten Anwendungsfälle und Szenarien wird vor Beginn der Entwicklung zusammengestellt. Dies wird dann verwendet, um die Sicherheitsfunktionen zu erstellen und Sicherheitstestszenarien zu entwerfen.
Diese Anforderungen können etwa so aussehen:
- Alle Gateways und Zugangspunkte müssen über Authentifizierungsmaßnahmen verfügen.
- Das System muss die Authentifizierung über einen gesicherten Anmeldebildschirm implementieren.
- Alle personenbezogenen Daten müssen jederzeit verschlüsselt werden.
- Für die Übertragung sensibler Daten sollte mehr als ein Authentifizierungskanal verwendet werden.
Planungsphase für sicheres SDLC
Die Planungsphase ist der entscheidende Schritt in Secure SDLC. Die Planung kann von Fall zu Fall unterschiedlich sein, aber hier sind einige der grundlegendsten Dinge, die beachtet werden müssen:
- Es muss ein erfahrenes dediziertes Sicherheitsteam gebildet werden, das alle sicherheitsrelevanten Maßnahmen der Software unparteiisch überwacht und steuert. Dieses Team, das vorzugsweise außerhalb des Projektmanagementbüros stationiert ist, sollte aus einem Sicherheitsbeauftragten, Sicherheitsarchitekten und Sicherheitstestern bestehen. Alle Teammitglieder müssen klar definierte Rollen und Verantwortlichkeiten haben.
- Alle Unklarheiten oder Eskalationen im Zusammenhang mit den Sicherheitsproblemen des Projekts müssen vom Produktsicherheitsbeauftragten behandelt werden. Er ist vom Sicherheitsteam zu beraten, um sicherzustellen, dass die richtigen Entscheidungen getroffen werden.
- Es muss ein Sicherheitskontakt eingerichtet werden, um sicherzustellen, dass Änderungen an der Sicherheit des Produkts vom Sicherheitsteam nicht unbemerkt bleiben.
Architektur- und Designphase von SDLC
Während der Designphase muss eine detaillierte Produktsicherheitsrisikobewertung durchgeführt werden. Dazu gehört auch die Überprüfung des Programms unter Sicherheitsgesichtspunkten, während es noch nicht in die Codierungsphase eingetreten ist. Alle Sicherheitsrisiken müssen vor dem Eintritt in die nächste Phase beseitigt werden. Um die Sicherheit zu gewährleisten, müssen alle Bewertungen gemäß Industriestandards durchgeführt werden.

Zu den Dingen, die in dieser Phase erledigt werden müssen, gehören unter anderem:
- Überprüfen aller Funktionen, Anforderungen, User Stories und Designdokumente gemäß den vom Projektteam geteilten Details. Im Falle des Fehlens eines der erforderlichen Dokumente muss alles klar von den Mitgliedern des Projektteams besprochen werden.
- Jegliche Lücken in den Sicherheitsanforderungen des Programms müssen identifiziert und anhand der verwendeten Industriestandards bewertet werden. Bei Bedarf können anhand der identifizierten Lücken Bedrohungsmodelle erstellt werden.
- Die Lücken mit ausreichenden Sicherheitsrisiken sollten aufgelistet und eine praktikable Minderung für sie vorgeschlagen werden.
Entwicklungsphase von SDLC
Dies ist die eigentliche „Entwicklung“ der Software. Nachdem ein sicheres Layout der Anwendung erstellt wurde, müssen die Entwickler den Code so schreiben, dass er den Sicherheitsrichtlinien entspricht. Das beinhaltet:
- Verwendung von Open-Source-Komponenten ohne bekannte Schwachstellen.
- Anwendung der vereinbarten Sicherheitsmaßnahmen während der gesamten Entwicklung der Software.
- Cold-Testing des Codes, um Schwachstellen im Code aufzudecken und zu mindern.
Einige Tests werden auch in der Phase durchgeführt. Dazu kann beispielsweise gehören, dass sensible Daten nicht im Klartext übertragen werden.
Implementierungsphase von SDLC
Ist die Software entwickelt, folgt als nächster Schritt die dynamische Codeanalyse. Dies ist eine Form von Anwendungssicherheitstests, die auch als OWASP-Tests (Open Web Application Project) bezeichnet werden.
Bevor die Lösung im wirklichen Leben implementiert wird, werden die Schwachstellenanalyse und Penetrationstests durchgeführt. Die Versionen der Software, für die diese Überprüfung durchgeführt wird, werden als Testbuilds bezeichnet. Dazu sind vor allem zu beachten:
- Tools wie HP WebInspect, ZAP, Burp Suite und SOAP werden verwendet, um die Schwachstellen der Software anhand verschiedener Schwachstellendatenbanken zu überprüfen.
- Diese ganze Phase ist eine Mischung aus Automatisierung und manuellem Testen.
- Dieser Prozess wird in einer unabhängigen Umgebung durchgeführt, die nicht mit der Entwicklungsumgebung verbunden ist, um realitätsnahe Testszenarien zu gewährleisten.
- Jede in dieser Phase gefundene Schwachstelle wird vor der Veröffentlichung der Software behoben.
- In dieser Phase werden häufige und typische Bedrohungen identifiziert und Maßnahmen ergriffen, um sie zu verhindern.
Fazit
Da unsere Abhängigkeit von Software weiter zunimmt, ist es wichtig, sie für die Benutzer sicher zu machen. Um sicherzustellen, dass Software und Anwendungen in puncto Sicherheit auf dem neuesten Stand sind, werden sichere SDLC-Praktiken eingeführt. Das ultimative Ziel ist immer, Softwarelösungen zu erstellen, die unverwundbar sind.
DER sichere SDLC-Prozess besteht aus fünf Phasen, beginnend mit der Erfassung der Anforderungen bis hin zu den Tests vor der Bereitstellung. Der Schwerpunkt liegt darauf, Bedrohungen und Schwachstellen bei jedem Schritt zu mindern, damit sie nicht in den nächsten Schritt übertragen werden.
