Application Security von Grund auf umsetzen Sicherheit im Software Development Lifecycle
Anbieter zum Thema
Wer sichere Software-Entwicklung etablieren will, muss bereit sein, bestehende Prozesse umzuschmeißen. Dieser Artikel zeigt Maßnahmen und Verfahrensanpassungen für einen gut abgestimmten und sicheren Software Development Life Cycle.

Die Sicherheitslücken in Anwendungen und in der Konfiguration der Umgebung gehören zu den wichtigsten Faktoren für den Erfolg von Cyberattacken. Gemäß IBM betrugen die durchschnittlichen Kosten einer Datenschutzverletzung im Jahr 2023 weltweit 4,45 Millionen US-Dollar, was einem Anstieg von 15 Prozent innerhalb von drei Jahren entspricht.
Beim sicheren SDLC geht es darum, verschiedene Praktiken in bestehende Softwareentwicklungsprozesse zu integrieren. Die richtige Kombination solcher Praktiken auf verschiedenen Stufen des Zyklus zur rechten Zeit ermöglicht es Ihrem Unternehmen, ein Produkt mit einem sehr hohen vorhersehbaren Sicherheitsniveau zu erzielen.
Einige der wichtigsten Vorteile dieses Ansatzes sind:
- Die Software ist sicherer, weil die Sicherheit während des gesamten Lebenszyklus im Mittelpunkt steht.
- Alle interessierten Parteien sind sich der Sicherheitsüberlegungen bewusst.
- Probleme werden frühzeitig entdeckt, noch bevor sie in den Code aufgenommen werden.
- Die Kosten lassen sich durch frühzeitiges Erkennen und Beseitigen von Sicherheitslücken reduzieren.
- Die Minimierung der gesamten internen Geschäftsrisiken für das Unternehmen.
Es liegen mehrere Rahmenbedingungen und Normen vor, die zur Einbindung dieser Praktiken verwendet werden können. Zum Beispiel ISO 27034, BSIMM, OWASP SAMM und andere.
Penetrationstest
Penetration Testing ist die erste Maßnahme, die vielen beim Thema Softwaresicherheit in den Sinn kommt. Pentester bewerten in der Regel die vorhandenen Anwendungen, Endgeräte, Umgebungskonfigurationen und Sicherheitskontrollen und ermitteln Lücken und Schwachstellen. Letztendlich zeigt ein solcher Bericht diese Lücken auf und gibt Empfehlungen für zusätzliche Maßnahmen, falls diese notwendig sind.
Kurz gesagt, umfasst der gesamte Prozess folgende Phasen:
- Eine Analyse potenzieller Bedrohungen, Festlegung von Zielen und Planung von Aktivitäten.
- Das Sammeln von Informationen über Zielsysteme durch verschiedene Verfahren.
- Die Analyse der Sicherheitslücken, die darauf abzielt, potenzielle Schwachstellen zu identifizieren, die zur Erreichung der Ziele des Pentests genutzt werden können.
- Die Ausnutzungsphase, in der die Pentester die Sicherheitslücken überprüfen und ausnutzen, die sie zuvor ermittelt haben.
- Die Post-Exploitation Phase zur Aufrechterhaltung des dauerhaften Zugriffs auf das System und zur Ermittlung neuer potenzieller Angriffsvektoren.
- Ergebnisanalyse und Abschlussbericht mit den Ergebnissen und Empfehlungen zur Milderung der festgestellten Probleme und zum Schutz Ihres Systems.
Pentesting erfreut sich in letzter Zeit großer Beliebtheit, da es Sicherheitslücken im System aufdeckt, Schwachstellen mit hohem Risiko identifiziert, Bedrohungen nach Prioritäten ordnet und wertvolle Empfehlungen zu deren Beseitigung gibt. Trotz der offensichtlichen Vorteile hat sie auch eine Reihe von Nachteilen:
Es ist nur ein Test
Um die Sicherheit Ihrer Anwendung zu verbessern, gilt es, die angegebenen Empfehlungen auch umsetzen. Das bedeutet: wer einen Penetrationstest kurz vor der Freigabe der Anwendung durchführt, hat möglicherweise keine Zeit mehr, die entdeckten Probleme zu beheben. Vor allem, wenn diese wesentliche Änderungen am System erfordern.
Hohe Kosten
Sowohl das Testing selbst als auch die Behebung der festgestellten Probleme kosten Ressourcen. Es ist wichtig zu verstehen, dass es nicht so viele qualifizierte Pentester gibt, die eine Anwendung gründlich prüfen und selbst die kleinsten Sicherheitslücken darin finden und ausnutzen können. Ein weiterer Kostentreiber sind die Investitionen, die erforderlich sind, um die festgestellten Probleme zu beheben. Oftmals erfordern Fixe tief greifende Änderungen an Ihrer Lösung (sogar auf Architekturebene), was erhebliche Kosten verursacht, da Sie diese erst spät im Entwicklungszyklus erkennen.
Aufrechterhaltung der kontinuierlichen Sicherheit
Pentesting ermöglichen es, Probleme zu einem bestimmten Zeitpunkt zu finden. Allerdings kann es nicht sicherstellen, dass das nächste Deployment frei von ihnen sein wird. Daher ist es entweder notwendig, vor jeder Auslösung Tests durchzuführen oder andere Sicherheitsmaßnahmen hinzuzufügen, die es Ihnen ermöglichen, Sicherheitslücken vor dem Pentest zu finden oder sogar zu verhindern.
Es ist von entscheidender Bedeutung, die Sicherheit in jede Phase des Zyklus einzubeziehen, um potenzielle Probleme in früheren Stufen und zu niedrigeren Kosten zu erkennen und zu beheben.
Einbindung der Sicherheit in jede Phase
Die Umsetzung eines sicheren Frameworks für den gesamten Softwareentwicklungs- und -betriebszyklus ist keine leichte Aufgabe. Zeigt sich ein Unternehmen noch nicht für einen vollständigen Wechsel zu einem sicheren SDLC bereit, sollte man dennoch zumindest die folgenden Aspekte im Auge behalten:
- Sicherheitspraktiken für Entwicklungsteams: Wenn Sie wissen, welche Sicherheitslücken es gibt und wie man diese Probleme mildert, kann Ihr Unternehmen Sicherheitsprobleme vermeiden und den Abschlusstest mit einem Minimum an potenziellen Störungen beenden.
- Modellierung oder praktische Bewertung von Bedrohungen: Es handelt sich um einen risikobasierten Ansatz für den Entwurf sicherer Systeme, der auf der Festlegung von Bedrohungen basiert, um Maßnahmen zu deren Milderung zu entwickeln. Mit diesen Maßnahmen lassen sich Systembedrohungen, strukturelle Mängel im Design und empfohlene Sicherheitskontrollen identifizieren, bewerten und verwalten. Eine regelmäßige Modellierung der Bedrohungen gewährleistet, dass die geplante Umsetzung sicher ist und wichtige Maßnahmen nicht vergessen werden.
- Sicherheitsanforderungen: Die Konzentration auf solche Anforderungen ist im Zusammenhang mit der Software-Sicherheit von entscheidender Bedeutung. Das Vorhandensein dieser Anforderungen vor der Entwicklung einer bestimmten Produktfunktionalität hilft, Probleme bei der Umsetzung und den anschließenden Tests zu vermeiden. Als Ausgangspunkt für konkrete Beispiele können Sie die Anforderungen des OWASP-Standard für die Verifizierung von Anwendungssicherheit übernehmen. Wenn Sie eine mobile Anwendung haben, können Sie Mobile ASVS für mobile Anwendungen einsetzen.
Fazit
Die Integration von Sicherheitsaspekten in den SDLC ermöglicht es Unternehmen, den Entwicklungsprozess zu optimieren, indem die Ursachen von Sicherheitsproblemen so früh wie möglich angegangen werden. Es ist wichtig, daran zu denken, dass sicherheitsrelevante Maßnahmen nicht mit dem Abschluss der Entwicklungsphase enden sollten. Die Sicherheit sollte ein unverzichtbarer Bestandteil der gesamten Betriebsphase sein. Mit dem Wachstum eines Unternehmens ist es empfehlenswert, den Reifegrad Ihrer Sicherheitspraktiken voranzutreiben.
* Dmytro Tereshchenko ist Leiter der Abteilung für Informationssicherheit bei der Sigma Software Group. Treffen Sie das Team von Sigma Software auf der IAA Mobility 2023.
(ID:49667274)