IT & Mobile Security

Software Security

Integrierte Lehrveranstaltung, 3.00 ECTS

 

Lehrinhalte

Introduction to Software Security (Software Engineering Practices, Secure Software Development Life Cycle, Knowledge for Software Security);
Reverse Engineering (C Environment, Java Environment, Code Obfuscation);
Secure Coding (Taxonomy of Coding Errors, Encapsulation, Data Validation, Buffer Overflow, Error Handling & Logging, Security Features)

Lernergebnisse der LV

Die Studierenden kennen die wichtigsten Aktivitäten im Secure Software Development Life Cycle;
Die Studierenden können Reverse Engineering Methoden für C und Java Binaries, sowie Code Obfuscation Techniken anwenden;
Die Studierenden können Prinzipien des Secure Coding praktisch einsetzen und sicherheitsrelevante Schwächen in der Implementierung von Softwaresystemen erkennen und beheben.

Empfohlene oder verpflichtende Fachliteratur und andere Lernressourcen bzw. –instrumente

Gary R. McGraw, Software Security: Building Security In, Addison Wesley, 2006;
Laura Bell & Michael Brunton-Spall, Agile Application Security, O'Reilly, 2017;
Jon Erickson, Hacking: The Art of Exploitation, No Starch Press, 2008;
Bruce Dang, Practical Reverse Engineering, Wiley, 2014;
Ginger Myles, Surreptitious Software, Pearson Education, 2009;
Robert C. Seacord, CERT® C Coding Standard, Addison-Wesley, Second Edition 2014;
Fred Long et al., The CERT Oracle Secure Coding Standard for Java, Addison-Wesley, 2011;
Jeffrey E.F. Friedl, Mastering Regular Expressions, O'Reilly, 2006;
David Hook, Beginning Cryptography with Java, 2005;
Joshua Bloch, Effective Java, Addison-Wesley, 2017

Art der Vermittlung

Inverted Classroom Model: Vorlesungen (fast ausschließlich online), Beispiele und Musterlösungen für selbstgesteuertes Lernen; Problem-Based Learning im Labor

Voraussetzungen und Begleitbedingungen

Grundlegende C und Java Kenntnisse

Prüfungsmethode und Beurteilungskriterien

Praktische Laborklausuren (40% der Beurteilung);
Klausur am Semesterende (60% der Beurteilung)