Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage die Planung, das Testen und die Entwicklung von sicheren Softwareanwendungen durchzuführen. Dabei werden insbesondere die notwendigen theoretischen Grundlagen der sicheren Programmierung angewandt und durch praktische Beispiele vertieft.
Der theoretische Teil dieses Kurses besteht aus Software-Sicherheitsprüftechniken, Binäranalyse und -härtung, Sprachsicherheit, Identifizierungsproblemen (fingerprinting), allgemeinen Angriffsvektoren und Sicherheit im Entwicklungsprozess. Die Übungsaufgaben zielen darauf ab, spezifische Fähigkeiten für den Entwurf und das Testen von sicherer Software wie Webanwendungen und Protokolle und die Entwicklung von Exploits zu entwickeln.
Jede Vorlesung konzentriert sich auf die theoretischen Aspekte der Software-Sicherheit, wie sie im Lehrplan detailliert aufgeführt sind. Die Aufgaben bestehen aus Hausaufgaben, die sich mit der Erkennung von Sicherheitslücken in Kommunikationsprotokollen, der Binäranalyse und der Entwicklung von Modellen für kombinatorische Sicherheitstests befassen, wenn diese das Verhalten von Angriffsvektoren emulieren sollen.
Course Textbook: G. McGraw, Software Security: Building Security in, Addison-Wesley, Software Security Series, Addison-Wesley Professional, 2006
Optional Literature: D. E. Simos, R. Kuhn, A. G. Voyiatzis and R. Kacker, Combinatorial Methods in Security Testing. IEEE Computer 49, pp. 80-83, 2016
Praktische Aufgaben und zwei schriftliche Prüfungen (Zwischen- und Abschlussprüfung).
Programmiererfahrung in C/C++ und/oder Python wäre erwünscht.