Security by Design in der Softwareentwicklung – DevSecOps als nachhaltige Herangehensweise
Sicherheit muss in der modernen Softwareentwicklung von Anfang an, also ab der Planungsphase, berücksichtigt werden. Dieser proaktive Ansatz, den auch das BSI und die amerikanische CISA empfehlen, wird als „Security by Design“ bezeichnet und hat zum Ziel, die notwendigen Sicherheitsmaßnahmen direkt zu Beginn in jede Phase des Entwicklungsprozesses zu integrieren. Eine Methode, die diesen Ansatz effektiv und nachhaltig umsetzt, ist DevSecOps.
Die Evolution der Softwareentwicklung und ihre Herausforderungen
Die Softwareentwicklung durch moderne Ansätze wie Agile, DevOps und moderne Technologien wie Cloud Computing erheblich weiterentwickelt. Diese Methoden haben die Entwicklung beschleunigt und effizienter gemacht, was sowohl für Entwickler als auch für Endbenutzer von Vorteil ist. Doch dieser Fortschritt bringt auch Herausforderungen im Bereich der Cybersicherheit mit sich. Software wird häufig in einem wöchentlichen Intervall veröffentlicht. Diese kürzeren Release-Zyklen erfordern, dass die Software zu jeder Zeit den Sicherheitsanforderungen genügen muss. Zusätzlich haben sich auch die Methoden der Angreifer weiterentwickelt. Angriffe laufen zunehmend automatisiert ab und mehr als die Hälfte der im CVE Repository veröffentlichten Schwachstellen werden innerhalb der ersten 7 Tage aktiv von Angreifern ausgenutzt. Eine schnelle Reaktion auf eine sich ändernde Bedrohungslage, wie das Erkennen einer neuen Sicherheitslücke in einer verwendeten Softwarebibliothek, ist somit zwingend notwendig.
Was ist Security by Design?
Security by Design ist ein Konzept, bei dem die Sicherheit bereits in den frühen Phasen des Softwareentwicklungszyklus integriert wird. Anstatt Sicherheitsmaßnahmen erst nach der Fertigstellung der Software hinzuzufügen, wird bei Security by Design die Sicherheit ab dem Zeitpunkt der Planung, also von Anfang an in den Entwicklungsprozess integriert. Dies bedeutet, dass jede Komponente der Softwareentwicklung – vom Design über die Implementierung bis hin zur Wartung – unter Berücksichtigung der Sicherheitsanforderungen gestaltet wird.
Hauptprinzipien von Security by Design
Reduzierung der Angriffsfläche: Minimierung der möglichen Angriffsvektoren durch Deaktivierung oder Weglassen unnötiger Funktionen und Komponenten.
Least Privilege: Benutzer und Systeme erhalten nur die minimal notwendigen Zugriffsrechte und Berechtigungen, die zur Erfüllung ihrer Aufgaben notwendig sind. Zusätzliche Berechtigungen müssen individuell geprüft und freigegeben werden.
Defence in Depth: Mehrere Sicherheitsmaßnahmen werden schichtweise auf unterschiedlichen Systemebenen (z. B. auf der Netzwerk- und der Applikationsebene) implementiert. So wird Angreifern das Durchdringen des Systems und den Zugriff auf die Kronjuwelen, welche meist die verarbeiteten Daten darstellen, erschwert.
Was bedeutet dies für Softwarehersteller?
Softwarehersteller sollten maßgeschneiderte Bedrohungsmodelle (Threat modelling) entwerfen und sich gegen die identifizierten Bedrohungen absichern. Ebenso sollte eine umfassende Sicherheitsstrategie verfolgt werden, die durch die notwendigen Investitionen von Zeit und Geld, in jeder Entwicklungsphase unterstützt wird. Sicherheit muss nicht nur als technische Funktion, sondern als geschäftliche Priorität angesehen werden, die von den Führungskräften vorangetrieben wird.
Es ist wichtig, schwierige jedoch notwendige Entscheidungen zu treffen, wie z. B. die Migration zu sicheren Technologien, wie moderneren Identity Management Systemen, auch wenn diese für Kunden „unsichtbar“ sind. Der Fokus sollte auf Sicherheitsfunktionen liegen, die die Angriffsfläche minimieren.
Da die Folgen eines erfolgreichen Angriffs verheerend für die Reputation und die Finanzen sein können, sollten Hersteller Methoden im Unternehmen etablieren, um ihre Produkte sicherer zu gestalten und so ihre mit den Projekten und Produkten verbundenen Kosten langfristig zu senken. So können Unternehmen gleichzeitig die Sicherheit und das Vertrauen der Kunden stärken.Eine moderne Methodik, um Security by Design möglichst effizient umzusetzen und einen sicheren Betrieb der Software sicherzustellen, ist DevSecOps.
DevSecOps: Integration von Sicherheit in den DevOps-Prozess
DevSecOps erweitert den traditionellen DevOps-Ansatz, indem es Sicherheitspraktiken in den Entwicklungs- und Betriebsprozess integriert. Das Ziel ist es, die Sicherheit als festen Bestandteil des gesamten Entwicklungsprozesses und dem Softwarebetrieb zu etablieren. So wie bei Security by Design Ansätzen gefordert, verlagert DevSecOps durch den „Shift left“ die Sicherheitsüberlegungen auch direkt an den Anfang des Softwarelebenszyklus (SDLC). Eine genauere Erläuterung zu DevSecOps findet sich in diesem Artikel
Wesentliche Komponenten der DevSecOps-Methodik
Zusammenarbeit & Kommunikation: Aufbau einer Kultur der geteilten Verantwortung und des Austausches für die Sicherheit im gesamten Unternehmen, also vom Entwickler bis zur Geschäftsführung.
Automatisierung: Einsatz von Automatisierungstools, um Sicherheitsaufgaben in den Entwicklungsprozess zu integrieren.
Sichere Tools und Architektur: Sicherstellung der Sicherheit von Entwicklungswerkzeugen und -infrastrukturen.
Testen: Kontinuierliche und umfassende Sicherheitstests während des gesamten Entwicklungslebenszyklus, einschließlich des Betriebs.
Geschwindigkeit versus Sicherheit
Die beschleunigten Entwicklungszyklen führen häufig dazu, dass Sicherheitsstandards nicht mithalten können. Auch die OWASP sagt: „Wenn der Code nicht auf Sicherheitslücken überprüft wurde, ist die Wahrscheinlichkeit, dass die Anwendung Probleme hat, praktisch 100 %.“ (übersetzt). Hier setzt DevSecOps an, indem es Sicherheitsmaßnahmen, auch in Form von automatisierten Sicherheitstest, von Anfang an und kontinuierlich in den Entwicklungsprozess integriert. So können durch eine initiale Investition langfristig Zeit und Kosten gespart werden. Dies umfasst unter anderem:
Kontinuierliche Überwachung und Bedrohungsanalyse: Frühe Erkennung, Überprüfung und Behebung von Sicherheitslücken. Je schneller eine Sicherheitslücke behoben wird, umso unwahrscheinlicher ist es, dass diese ausgenutzt wird.
Automatisierte Sicherheitstests: Integration von diversen Sicherheitsüberprüfungen wie Secret Scanning oder SCA (Software Composition Analysis) in die CI/CD-Pipeline (Continuous Integration/Continuous Delivery). Durch diese Automatisierung kann auf eine effiziente Art und Weise ein hohes Sicherheitslevel der produzierten Software gewährleistet werden.
Kollaboration und Kommunikation: Fördert eine Kultur der gemeinsamen Verantwortung zwischen Entwicklungs-, Sicherheits- und Betriebsteams. So können etwa Sicherheitsanforderungen, die im Betrieb notwendig sind, direkt in die Planung der Softwarearchitektur einfließen und die Software auf diese Sicherheitsanforderungen optimiert werden.
Vorteile von Security Design mittels DevSecOps
DevSecOps bringt nicht nur mit Blick auf Security by Design eine erhebliche Verbesserung der Sicherheit von Softwareprodukten mit sich. Die prägnantesten Vorteile der DevSecOps Methodik sind:
Erhöhte Sicherheit
DevSecOps verbessert die Software-Sicherheit durch die frühzeitige Integration von Sicherheitspraktiken im Entwicklungsprozess. Sicherheitslücken werden früh erkannt und behoben, wodurch das Risiko von Datenverletzungen reduziert wird.
Effizienzsteigerung und Kostensenkung
Automatisierte Sicherheitstests und -überprüfungen beschleunigen die Prozesse und reduzieren den manuellen Aufwand. Frühe Fehlerbehebung senkt die Kosten für nachträgliche Korrekturen erheblich.
Schnellere Markteinführung sicherer Software
Die kontinuierliche Integration von Sicherheitsaspekten ermöglicht eine schnellere Bereitstellung von Softwareprodukten, die von Anfang an ein hohes Sicherheitsniveau aufweisen.
Verbesserte Compliance
DevSecOps erleichtert die Einhaltung regulatorischer Anforderungen, indem Sicherheitskontrollen in den gesamten Entwicklungsprozess integriert werden, was die Dokumentation und Nachweisführung vereinfacht.
Gestärkte Teamkollaboration und -kultur
Durch die Betonung von Zusammenarbeit und gemeinsamer Verantwortung fördert DevSecOps eine Kultur, in der Entwicklung, Betrieb und Sicherheit als integriertes Team arbeiten.
Erhöhte Kundenzufriedenheit
Die Verbesserungen in Sicherheit, Effizienz und Qualität führen zu höherer Kundenzufriedenheit. Sichere und zuverlässige Software stärkt das Vertrauen der Kunden und fördert langfristige Beziehungen.
Fazit
Security by Design ist ein unverzichtbarer Ansatz, um die notwendige Sicherheit von Softwareprodukten von Anfang an zu gewährleisten. Mit DevSecOps als modernen Ansatz für die Integration von Sicherheitspraktiken in den gesamten Entwicklungsprozess können Unternehmen nicht nur die Sicherheit ihrer Produkte verbessern, sondern auch ihre Entwicklungsprozesse effizienter gestalten, die Einhaltung von Vorschriften sicherstellen und das Vertrauen der Verbraucher stärken. In einer Welt, in der Angriffe auf IT-Systeme und das Ausnutzen von Softwareschachstellen alltäglich geworden sind, ist es wichtiger denn je, dass Unternehmen Sicherheit als integralen Bestandteil ihrer Entwicklungsphilosophie betrachten.