Sichere Softwareentwicklung nach dem Prinzip Security by Design
Moderne Software muss nicht nur funktional und leistungsfähig sein, sondern von Beginn an sicher entwickelt werden. Sicherheitslücken entstehen häufig bereits in frühen Phasen des Softwareentwicklungsprozesses und können später nur mit hohem Aufwand behoben werden. Diese Schulung vermittelt deshalb einen ganzheitlichen Ansatz, der sichere Softwareentwicklung und systematisches Security Testing miteinander verbindet und über den gesamten Software Development Lifecycle (SDLC) betrachtet.
Im ersten Teil der Schulung steht die sichere Gestaltung des Softwareentwicklungsprozesses im Mittelpunkt. Die Teilnehmenden lernen, Sicherheitsanforderungen bereits in der Planungs- und Designphase zu berücksichtigen und Sicherheitsaspekte konsequent in Architektur, Implementierung, Build-Prozesse und Deployment zu integrieren. Dabei wird der Softwareentwicklungsprozess in seine einzelnen Bestandteile zerlegt ("Softwareentwicklung deconstructed"), um typische Schwachstellen und Sicherheitsrisiken entlang der gesamten Wertschöpfungskette sichtbar zu machen.
Ein besonderer Fokus liegt auf der Entwicklung sicherer Software nach dem Prinzip Security by Design. Behandelt werden unter anderem sichere Programmierpraktiken, der Umgang mit Abhängigkeiten und Bibliotheken, die Absicherung von Build- und CI/CD-Pipelines, die Integrität von Softwareartefakten sowie Sicherheitsanforderungen an Laufzeitumgebungen und Containerplattformen. Ergänzend werden etablierte Sicherheitsstandards und systematische Vorgehensweisen vorgestellt, mit denen Sicherheitsmaßnahmen nachhaltig in Entwicklungsprozesse integriert werden können.
Im zweiten Teil der Schulung geht es um Security Testing als festen Bestandteil moderner Softwareentwicklung. Die Teilnehmenden lernen verschiedene Testverfahren kennen und erfahren, wie Sicherheitsprüfungen effizient in unterschiedlichen Entwicklungsphasen durchgeführt werden können. Dabei werden sowohl statische als auch dynamische Verfahren betrachtet sowie automatisierte Sicherheitstests innerhalb von CI/CD-Pipelines behandelt. Ziel ist es, Sicherheitslücken möglichst frühzeitig zu identifizieren, Risiken systematisch zu bewerten und geeignete Maßnahmen zur Behebung abzuleiten.
Ein weiterer Schwerpunkt liegt auf Architektur- und Bedrohungsmodellierung. Die Teilnehmenden lernen, Systeme strukturiert zu analysieren, potenzielle Angriffsflächen zu identifizieren und Sicherheitsmaßnahmen bereits während der Architekturplanung zu berücksichtigen. Praxisnahe Beispiele und Übungen zeigen, wie sich Sicherheitsanforderungen effizient in bestehende Entwicklungsprozesse integrieren lassen und welche Werkzeuge und Methoden dabei unterstützen.
Ziele der Schulung
- Sicherheitsanforderungen frühzeitig in Softwareprojekte zu integrieren
- typische Schwachstellen entlang des gesamten Software Development Lifecycle zu erkennen
- sichere Softwarearchitekturen und Entwicklungsprozesse zu gestalten
- Security-by-Design-Prinzipien praktisch anzuwenden
- Bedrohungsmodelle zu erstellen und Sicherheitsrisiken systematisch zu bewerten
- geeignete Security-Testing-Verfahren auszuwählen und einzusetzen
- Sicherheitsprüfungen in Build-, Test- und Deployment-Prozesse zu integrieren
- die Sicherheit ihrer Anwendungen kontinuierlich zu verbessern
Inhalte
- Softwareentwicklung "deconstructed" – Sicherheitsbetrachtung des gesamten SDLC
- Security by Design und Secure Development Lifecycle
- Sichere Softwarearchitekturen und Architekturprinzipien
- Sichere Programmierung und typische Implementierungsfehler
- Sicherheit von Quellcode, Build-Prozessen und Softwareartefakten
- Absicherung von Laufzeitumgebungen, Containern und Deployment-Prozessen
- Sicherheit in CI/CD-Pipelines und DevSecOps-Grundlagen
- Umgang mit Bibliotheken, Abhängigkeiten und Software Supply Chain
- Systematische Sicherheitsansätze und Best Practices
- Architektur- und Bedrohungsmodellierung (Threat Modeling)
- Security Testing im Entwicklungsprozess
- Statische und dynamische Sicherheitsanalysen (SAST/DAST)
- Software Composition Analysis (SCA) und Dependency Scanning
- Automatisierte Sicherheitstests und Integration in Entwicklungsprozesse
- Bewertung, Dokumentation und Priorisierung von Sicherheitslücken
- Praxisnahe Übungen und Fallstudien
Fraunhofer-Institut für Offene Kommunikationssysteme