Secure Software Engineering vereint zwei wichtige Themenfelder: Software Engineering bzw. Softwaretechnik und Informationssicherheit. Software Engineering einerseits behandelt die systematische Bereitstellung und Verwendung von Prinzipien, Methoden und Werkzeugen für die Entwicklung und den Einsatz von Softwareanwendungen. Informationssicherheit andererseits beschäftigt sich mit Eigenschaften wie Vertraulichkeit, Integrität und Verfügbarkeit von Informationen und Daten.
Literatur
- Claudia Eckert: IT-Sicherheit, 11. Auflage, De Gruyter Oldenbourg, 2023
- Ross Anderson: Security Engineering, 3. Auflage, Wiley, 2021.
Weitere Literaturhinweise werden zu den einzelnen Themenblöcken bereitgestellt.
Zusätzliche Informationen
Das Ziel dieser Vorlesung ist die Vermittlung der Grundlagen für die Entwicklung sicherer Softwareanwendungen. Dafür werden zunächst grundlegende Konzepte eingeführt. Entlang der Phasen bzw. Prozessgruppen der Softwareentwicklung werden dann zentrale Prinzipien, Methoden und Werkzeuge vorgestellt und angewendet. Besondere Berücksichtigung finden dabei die Bedrohungs- und Risikoanalyse, die Erhebung von Sicherheitsanforderungen, Prinzipien und Muster für das Design sicherer Softwareanwendungen, sichere und unsichere Softwareimplementierungen sowie die Prüfung der Sicherheitseigenschaften von Softwareanwendungen. Den Abschluss der Vorlesung bilden Vorgehensmodelle zur Entwicklung sicherer Software sowie zur Bewertung der Reifegrade von Entwicklungsprozessen für sichere Software.
Gliederung
- Das Sicherheitsproblem verstehen
- Bedrohungsanalyse, Risikobewertung und Sicherheitsanforderungen
- Sicherheit im Design berücksichtigen
- Sicherheitsprinzipien und Sicherheitsmuster
- (Un-)sichere Software implementieren
- Software-Schwachstellen und Seitenkanalangriffe
- Sicherheitstests planen und durchführen
- Anforderungs- und strukturbasiertes Prüfen von Sicherheitsmaßnahmen sowie exploratives Prüfen
- Sichere Softwareentwicklung steuern
- Lebenszyklus- und Reifegradmodelle