measures ssdlc
Erfahren Sie mehr über verschiedene Sicherheitsmaßnahmen, die für einen sicheren SDLC oder SSDLC implementiert werden müssen:
Da die Technologie schnell wächst, haben auch die sicherheitsrelevanten Bedrohungen durch das Hacken und Stehlen gesicherter Daten entsprechend zugenommen. Zweifellos stellt das technologische Wachstum die Softwarehersteller vor Herausforderungen, um sicherzustellen, dass ihre Software stark und robust gegen Sicherheitsbedrohungen und Sicherheitslücken ist.
Ein Softwareprodukt kann nicht freigegeben werden, selbst wenn es für die beabsichtigte Funktionalität einwandfrei funktioniert, es sei denn, es erweist sich als hochsicher und erfüllt die festgelegten und regulierten Sicherheits- und Datenschutzstandards, insbesondere in Sektoren wie Verteidigung, Finanzen und Gesundheitswesen, in denen personenbezogene und finanzielle Daten enthalten sind .
Man kann es sich nicht leisten, einen Sicherheitsmangel im Produkt zu haben, wenn es bereitgestellt wird, sei es mit hohem oder mittlerem Schweregrad. Daher ist es sehr wichtig, die Software und die Daten vor Angriffen, böswilligen Bedrohungen und Schwachstellen zu schützen und die Vertrauenswürdigkeit der Software für den Endbenutzer sicherzustellen.
Im Gegensatz zu unserer traditionellen Softwareentwicklung ist das Testen in der letzten Phase nach der Entwicklung der gesamten Software nicht effektiver. Bei der Implementierung des Agile-, DevOps- und ShiftLeft-Konzepts ist es wichtig, Tests frühzeitig und in jeder Phase des Anwendungslebenszyklus durchzuführen.
Allerdings kann die Sicherheit der Software in der letzten Phase nicht erstellt oder sogar getestet werden. Daher muss sie in jeder Phase erstellt werden, um die vollständige Sicherheit der Software zu gewährleisten.
Was du lernen wirst:
Sicherheitsmaßnahmen für SSDLC
Nachfolgend sind die verschiedenen Mittel für sicherheitsrelevante Maßnahmen aufgeführt, die über den gesamten Lebenszyklus der Softwareentwicklung hinweg implementiert werden können, um einen sicheren SDLC oder SSDLC zu gewährleisten. Die Fehler dürfen so weit wie möglich nicht in die nächste Phase übertragen werden.
Die verschiedenen Sicherheitsanalysen und -bewertungen, bei denen Sicherheit in SDLC-Phasen erstellt werden muss, sind.
- Anforderungsphase
- Planungsphase
- Architektur- und Entwurfsphase: Bewertung des Sicherheitsrisikos basierend auf dem Design.
- Entwicklungsphase: Secure Code Analysis, eine statische Analyse des Codes für die Sicherheit.
- Implementierungsphase: Dynamic Code Analysis, ein Anwendungssicherheitstest.
- Testen - Phase vor der Bereitstellung: Penetrationstests und Schwachstellenanalyse.
# 1) Anforderungsphase
- In erster Linie, um sicherzustellen, dass die erforderlichen Sicherheitsmaßnahmen in die Software integriert sind, Sicherheitsbezogene spezifische Anforderungen müssen während der Anforderungsphase mit genügend Details und erwarteten Ergebnissen klar erfasst werden.
- Bei der Identifizierung der typischen Anwendungsfälle und Geschäftsszenarien wird eine klare Reihe von Sicherheitsbezogene Anwendungsfälle und Szenarien Zu Überprüfungszwecken müssen diese identifiziert werden, um die Sicherheitsfunktionen zu erfassen und Sicherheitstestszenarien zu entwerfen.
Im Folgenden finden Sie einige Beispielbeispiele, die die expliziten sicherheitsrelevanten Anforderungen veranschaulichen, die erfasst werden können.
Sec-Req-01: Das System muss an allen Gateways und Eingangspunkten über Authentifizierungsmaßnahmen verfügen.
Sec-Req-02: Das System muss die Authentifizierung über einen sicheren Anmeldebildschirm implementieren.
Sec-Req-03: PERSÖNLICHE DATEN werden im Ruhezustand verschlüsselt.
# 2) Planungsphase
Auf hohem Niveau, aber nicht nur auf diese beschränkt, müssen die folgenden Punkte in der Planungsphase berücksichtigt werden.
qa Testen von Interviewfragen und -antworten für erfahrene
- Ein starker, Engagiertes Sicherheitsteam , außerhalb des PMO (Projektmanagementbüros) des Programmteams tätig, bestehend aus Sicherheitsbeauftragter, Sicherheitsarchitekten, Sicherheitstester gebildet werden, um alle sicherheitsrelevanten Aktivitäten des Programms unvoreingenommen durchzuführen und zu verwalten. Für jede dieser Rollen werden ein eindeutiger RnR (Rollen und Verantwortlichkeiten) und ein RACI definiert.
- Irgendein Eskalationen, Mehrdeutigkeiten Sicherheitsfragen müssen vom PSO (Product Security Officer) behandelt werden, damit das Sicherheitsteam reibungslos funktioniert und bei den richtigen Entscheidungen hilft.
- Ein robustes Strategie für Sicherheitstests Es muss festgelegt werden, wie die sicherheitsrelevanten Anforderungen implementiert werden sollen, wie, wann und was getestet werden soll und welche Tools in jeder Phase verwendet werden sollen.
- Es ist zwingend erforderlich, die Sicherheitskontaktstelle für alle technischen / Überprüfungsdiskussionen im Zusammenhang mit dem Programm, damit das Sicherheitsteam über Änderungen am Programm informiert ist.
# 3) Architektur- und Entwurfsphase
Wenn Sie den Sicherheitsaspekten zu Beginn der Entwurfsphase mehr Aufmerksamkeit schenken, können Sie die Sicherheitsrisiken vermeiden und den erheblichen Aufwand für Entwurfsänderungen später im SDLC verringern.
Beim Entwerfen der Software und der Infrastruktur, auf der die Software gehostet wird, ist alles möglich Implementierungen des Sicherheitsdesigns müssen unter Einbeziehung der Sicherheitsarchitekten gut gestaltet sein.
Unklarheiten und Konflikte zwischen funktionalen und nicht funktionalen Design- und Architekturaspekten müssen durch Brainstorming-Sitzungen unter Einbeziehung der richtigen Stakeholder behoben werden.
In dieser Phase erfolgt eine detaillierte Bewertung des Produktsicherheitsrisikos, die manchmal auch genannt wird ‘Statische Bewertung’ muss vom Sicherheitsteam von Experten durchgeführt werden.
Bewertung des Sicherheitsrisikos Beinhaltet eine Überprüfung der Programme unter Sicherheitsgesichtspunkten in der vorläufigen Entwurfs- / Architekturphase, um die sicherheitsrelevanten Mängel aus der Entwurfsperspektive zu identifizieren und das Produkt entsprechend zu verbessern Sicherheits Risikos an das Projektteam, um sie anzusprechen und den Eintritt in die nächste Phase zu vermeiden.
Diese Bewertungen werden auf der Grundlage der in diesen Dokumenten beschriebenen Richtlinien, Standards und Kontrollen für die organisatorische / industrielle Sicherheit durchgeführt. Z.B. UXW 00320, UXW 030017
Während der Bewertung des Produktsicherheitsrisikos:
- Anforderungen, Funktionen, User Stories und ihre Designdokumente werden anhand der Details und Artefakte überprüft, die vom Projektteam gemeinsam genutzt werden. Z.B. Konstruktionsdokumente (HLDD und LLDD). Die Bewertungen beinhalten auch Gespräche mit den relevanten Mitgliedern des Projektteams, falls keine Dokumente vorliegen oder um Zweifel zu klären.
- Bei der Zuordnung der Sicherheitsanforderungen des Programms zu den festgelegten Standards und anderen Best Practices werden Lücken festgestellt. Manchmal werden auch Bedrohungsmodelle basierend auf den identifizierten Lücken entwickelt.
- Diese Lücken werden als potenzielle Sicherheitsrisiken identifiziert. Dazu gehört auch, dass mögliche Abschwächungen für die Implementierung vorgeschlagen, angesprochen und verwaltet werden.
- Sobald diese Schadensbegrenzungen vom Projektteam implementiert wurden, werden sie anhand geeigneter Testfälle, die vom Systemtestteam entworfen wurden, auf ihren Abschluss überprüft.
- Die Risikomanagement-Matrix, die Rückverfolgbarkeit bietet, ist bereit, diese Risiken zu verfolgen. Die Genehmigung und Abmeldung mit dem Restrisiko erfolgt durch den Sicherheitsarchitekten und das PSO.
Typische Bedrohungsmuster, die in der Entwurfsphase identifiziert werden, beziehen sich auf Eingabevalidierung, Audit- / Protokollverwaltung, Konfigurationen und Verschlüsselungen. Die Risikoidentifikation umfasst das Angreifen von Schwachstellen wie schwachen Passwörtern, einfachen Brute-Force-Angriffen usw.
Typische Überprüfungen umfassen Risiken im Zusammenhang mit dem Zugriff auf personenbezogene Daten, dem Zugriff auf Prüfpfade, Entitäten auf der schwarzen Liste und der Whitelist, der Datenbereinigung und Löschaktivitäten.
Beispieltestszenarien umfassen:
- Sicherheitsanfälligkeit in Bezug auf Pufferüberlauf: Um sicherzustellen, dass durch manuelles Fuzzing von Parametern der Server nicht verlangsamt und der Server nicht zur Antwort gezwungen werden kann (Denial of Service).
- Datenbereinigung: Um sicherzustellen, dass für jede Eingabe und Ausgabe eine ordnungsgemäße Datenbereinigung erfolgt, damit der Angreifer den schädlichen Inhalt nicht in das System einspeisen und speichern kann.
# 4) Entwicklungsphase
Sichere Code-Analyse ist ein Static Code Assessment Methode, die verwendet wird, um die zu bewerten Sicherheitscode der verschiedenen Funktionen von Software unter Verwendung eines automatisierten Scan-Tools. Beispiel: Stärken.
Diese Analyse wird bei jedem Einchecken / Erstellen von Code durchgeführt, um den generierten Code auf Sicherheitsbedrohungen zu scannen. Diese Bewertung wird im Allgemeinen auf User Story-Ebene durchgeführt.
- Fortify-Scans über Plugins müssen auf den Computern des Entwicklers installiert sein.
- Fortify muss in die Build-Vorlage integriert werden.
- Das automatische Scannen wird täglich für alle Builds durchgeführt.
- Das Scan-Ergebnis wird vom Sicherheitsteam auf falsch positive Ergebnisse analysiert.
- Durch diese Bewertung festgestellte Mängel werden angehoben und bis zur Schließung behandelt, so dass das Versickern auf die nächste Stufe minimiert / auf Null gesetzt wird.
Beispieltestszenarien umfassen:
- Um sicherzustellen, dass vertrauliche Daten während der Datenübertragung nicht im Klartext gesendet werden.
- Um eine sichere Datenübertragung zu gewährleisten, müssen externe APIs auf einem HTTPS-Kanal bereitgestellt werden.
# 5) Implementierungsphase
Dynamische Code-Analyse ist nichts anderes als das Testen der Anwendungssicherheit, das auch als OWASP-Test (Open Web Application Security Project) bezeichnet wird. Vulnerabilitätsanalyse und Penetrationstests (VAPT) müssen in der Implementierungs- / Testphase durchgeführt werden.
Diese Analyse bewertet die Binärdateien und einige Umgebungskonfigurationen und stärkt den Code für die Sicherheitsanforderungen weiter.
Im Rahmen dieser Analyse wurde die Dynamisches Verhalten oder die Funktionalität verschiedener Funktionen der Programme wird auf sicherheitsrelevante Schwachstellen analysiert. Festgelegte Anwendungsfälle und Geschäftsszenarien werden auch zur Durchführung einer dynamischen Code-Analyse verwendet.
Diese Aktivität wird am ausgeführt Test Builds Verwendung verschiedener Sicherheitstools mit einem automatisierten und manuellen Ansatz.
- HP WebInspect-, Burp Suite-, ZAP- und SOAP-UI-Tools werden im Allgemeinen verwendet, um Schwachstellen anhand von Standard-Schwachstellendatenbanken zu überprüfen ( Beispiel: OWASP Top 10 )
- Diese Aktivität ist jedoch hauptsächlich automatisiert. Aufgrund bestimmter Einschränkungen der Tools kann einige manuelle Arbeit erforderlich sein, um falsch positive Ergebnisse zu ermitteln.
- Dies erfolgt idealerweise in einer separaten Umgebung (System Testing Environment), in der die zu testbereite Software bereitgestellt wird.
- Sicherheitslücken müssen angehoben und mit den vorgeschlagenen Minderungen geschlossen werden.
Typische Bedrohungsmuster, die während dieser Analyse identifiziert wurden, beziehen sich auf Eingabevalidierung, fehlerhafte Authentifizierung und Sitzungsverwaltung, Offenlegung sensibler Daten, XSS und Kennwortverwaltung.
Beispieltestszenarien umfassen:
- Passwortverwaltung: Um sicherzustellen, dass die Kennwörter nicht in Klartext in den Konfigurationsdateien oder irgendwo im System gespeichert werden.
- Systeminformationsleck: Um sicherzustellen, dass die Systeminformationen zu keinem Zeitpunkt verloren gehen, können die von printStackTrace aufgedeckten Informationen dem Gegner bei einem Angriffsplan helfen.
# 6) Testen - Phase vor der Bereitstellung
Penetrationstests , Pen Test in Kürze und Infra VAPT (Vulnerability Analysis and Penetration Testing) ist der ausgewachsene ganzheitliche Test mit vollständige Lösung und Konfigurationen (einschließlich Netzwerk), das idealerweise in einer vorgefertigten oder produktionsähnlichen Umgebung durchgeführt wird.
Dies wird hauptsächlich durchgeführt, um die DB-Sicherheitsanfälligkeiten und Server-Sicherheitsanfälligkeiten zusammen mit anderen Sicherheitsanfälligkeiten zu identifizieren. Dies ist die letzte Phase der Sicherheitstests, die durchgeführt werden würde. Dies schließt daher auch die Überprüfung früher gemeldeter Mängel und Risiken ein.
c ++ Arrays in Funktionen
- Für die Durchführung von Pen-Tests werden Tools wie Nessus, Nmap, HP Web Inspect, Burp Suite und ZAP verwendet, die auf dem Markt erhältlich sind.
- Während dieses Tests werden Webanwendungen mit automatisierten Tools gescannt und zur weiteren Überprüfung ausgenutzt. Tests werden durchgeführt, um das Verhalten des realen Angreifers zu simulieren. Daher können auch einige negative Tests enthalten sein.
- Sicherheitslücke in der Infrastruktur Die Bewertung umfasst das Scannen, Analysieren und Überprüfen der Sicherheitskonfiguration der Infrastruktur (Netzwerke, Systeme und Server), um die Schwachstellen zu identifizieren und die Ausfallsicherheit gegen die gezielten Angriffe zu überprüfen.
- Dies erfolgt in einer vorproduktiven oder produktionsähnlichen Umgebung, in der die bereitgestellte Software getestet wird und somit die Echtzeitumgebung simuliert.
- Sicherheitslücken werden sowohl mithilfe von Scannern als auch mithilfe manueller Techniken identifiziert, um Fehlalarme zu beseitigen. Außerdem werden während manueller Tests Geschäftsszenarien in Echtzeit ausgeführt.
- Es wird ein Abschlussbericht über die gesamte Sicherheitsanalyse erstellt, der für das gesamte Programm durchgeführt wird, in dem der Status der Elemente mit hohem Risiko, falls vorhanden, hervorgehoben wird.
Beispieltestszenarien umfassen:
- Um sicherzustellen, dass anfällige HTTP-Methoden nicht aktiviert sind.
- Um sicherzustellen, dass vertrauliche Informationen der anderen Benutzer nicht im Klartext über das Netzwerk sichtbar sind.
- Um sicherzustellen, dass die Validierung für das Hochladen von Dateien implementiert ist, wird das Hochladen einer schädlichen Datei vermieden.
Tabellarische Zusammenfassung für SSDLC
In der folgenden Tabelle sind die verschiedenen Aspekte der Sicherheitsanalyse zusammengefasst, die oben erläutert wurden.
SDLC-Phase | Schlüsselanalyse abgeschlossen | Was genau wird in diesen Bewertungen getan? | Eingang | Benutztes Werkzeug | Ausgabe |
---|---|---|---|---|---|
Bedarf | Um sicherzustellen, dass Sicherheitsanforderungen effizient erfasst werden. | Anforderungen werden analysiert. | Anforderungsdokumente / User Stories / Features | Handbuch | Sicherheitsanforderungen sind in den Anforderungsspezifikationen enthalten. |
Planung | Sicherheitsteam eingerichtet werden Sicherheitsteststrategie vorbereitet. | Team identifiziert und eingerichtet. Strategie vorbereitet, überprüft und mit den Stakeholdern genehmigt. | Null | Handbuch | Einrichtung des Sicherheitsteams mit RnR und RACI definiert. Abgemeldetes Dokument zur Sicherheitsteststrategie. |
Design | Bewertung des Sicherheitsrisikos | Überprüfen Sie die programmbezogenen Dokumente, um die Sicherheitslücken zu identifizieren. Diskussion mit dem Team. Risiken werden identifiziert und Minderungsmaßnahmen vorgeschlagen. | Projektbezogene Dokumente: HLDD, LLDD. | Manuelle Überprüfung | Identifizierte Designrisiken. Risikomanagement-Matrix mit vorgeschlagenen Minderungen. |
Entwicklung | Sichere Code-Analyse (statische Bewertung) | Sicherheitsscanner werden an die Computer des Entwicklers angeschlossen. In die Build-Vorlage integriertes Sicherheitstool. | Entwickelter Code | Scanner automatisieren (verstärken). Manuelle Triage von False Positives. | Sichere Codefehler. Risikomanagement-Matrix mit Minderungen. |
Implementierung | Dynamische Code-Analyse (Dynamic Assessment) | Anwendungssicherheitstests abgeschlossen. | Unit getesteter Build Spezielle Testumgebung | Sicherheitstest-Tools (HP WebInspect, Burp Suite, ZAP Manuelle Triage von False Positives. | Fehler bei der dynamischen Codeanalyse. Risikomanagement-Matrix mit Minderungen. |
Testen / Pre-Deployment | Pen Test, Infra VAPT | Penetrationstests und Infra VAPT unter Verwendung von Echtzeitszenarien. Überprüfung früher gemeldeter Risiken / Mängel. | Bereit zum Bereitstellen des Builds. Pre-Prod oder produktionsähnliche Umgebung. | Sicherheitstest-Tools (Nessus, NMAP, HP WebInspect) Manuelle Triage von False Positives. | Risikomanagement-Matrix mit Minderungen. Abschließender Sicherheitstestbericht mit dem Risikostatus. |
Fazit
Durch die Implementierung all dieser sicherheitsrelevanten Aspekte, die in die verschiedenen Phasen von SDLC integriert sind, kann das Unternehmen die Sicherheitsmängel frühzeitig im Zyklus erkennen und geeignete Maßnahmen ergreifen, um das Problem zu vermeiden Sicherheitsrisiken mit hohem Risiko im Live-System.
Die Studie zeigt auch, dass ein Großteil der Sicherheitsmängel während der Entwicklungsphase, d. H. Während des Codierungsphase wobei die Codierung aus welchen Gründen auch immer nicht alle Sicherheitsaspekte ausreichend berücksichtigt hat.
Im Idealfall möchte kein Entwickler einen fehlerhaften Code schreiben, der die Sicherheit gefährdet. Um die Entwickler beim Schreiben einer sicheren Software zu unterstützen, wird das kommende Tutorial behandelt Best Practices und die Codierungsrichtlinien für Entwickler, um eine bessere Sicherheit der Software zu gewährleisten.
Wir hoffen, dass dieses Tutorial zu Secure SDLC oder SSDLC hilfreich war !!
Literatur-Empfehlungen
- SDLC-Phasen (Software Development Life Cycle), Methoden, Prozesse und Modelle
- 10 besten Tools zum Testen der mobilen APP-Sicherheit im Jahr 2021
- 19 Leistungsstarke Penetrationstest-Tools, die 2021 von Profis verwendet wurden
- Richtlinien für Sicherheitstests für mobile Apps
- Netzwerksicherheitstests und beste Netzwerksicherheitstools
- Sicherheitstests (eine vollständige Anleitung)
- Top 4 Open Source-Sicherheitstest-Tools zum Testen von Webanwendungen
- Testhandbuch für die Sicherheit von Webanwendungen