TU Wien:Software Security VU (Weippl)
Daten[edit | edit source]
Lecturers | Bernhard Garn• Edgar Weippl |
---|---|
ECTS | 3 |
Alias | Software Security (en) |
Department | Information Systems Engineering |
When | summer semester |
Last iteration | 2020SS |
Language | "if required in english" was not recognized as a supported language code. |
Links | tiss:188959 |
Mattermost: Channel "software-security" • Register • Mattermost-Infos
Inhalt[edit | edit source]
Theory: - Towards a more secure software, - software quality requirement, - development of secure software in teams; - Applied examples: Implementation of security aspects in small JAVA and/or C# applications. Specific content: - Security in distributed systems, - buffer overflows and unexpected input, - authentication and authorization, - trust management and PKI, cryptographic libraries. There will be one large project that covers both the theory and the practical part. Topics will be discussed in the first lecture on Mar 8. We will use two books to cover the theory (see TUWEL course for details); the practical part will be the implementation of a project of your choice; prior to starting with the implementation, you will need to discuss the project with the lecturer. An oral exam will cover the theory and you will need to explain how you implemented the project. Prerequisites: - Programming experience in C++/C/Java/C# - theoretical knowledge of the classes Security and Internet Security
Themen SS17 (chronologisch):
- OWASP Advanced Topics
- Reverse Engineering
- Software Analysis
- (Midterm exam)
- Web Security Testing
- Language Security
- Security Protocol Interaction Testing
- Smart Contracts
- (Final exam)
Ablauf[edit | edit source]
4 Vorlesungstermine mit mehr oder weniger willkürlich gewählten Themen. Im SS 2013 unter anderem Code Obfuscation, Cloud and Data Security and Web Application Security. Das Thema Cloud and Data Security hatte nur marginal mit dem Thema Security zu tun. 3 Assignments waren zu lösen und es gab 2 schriftliche Tests.
Benötigte/Empfehlenswerte Vorkenntnisse[edit | edit source]
Die Inhalte eines Introduction to Security sollten bekannt sein. Für die Challenges keine Scheu, sich auch mal mit good old C Code und Assembler auseinanderzusetzen (Übersetzerbau von Vorteil!).
Vortrag[edit | edit source]
noch offen
Übungen[edit | edit source]
SS20[edit | edit source]
1. TLS Backdoor[edit | edit source]
Ein Backdoor in eine SSL Library einbauen, sodass ein Angreifer bei Client-Key Verification unter bestimmten Umständen Zugriff erhält.
Vor SS20[edit | edit source]
1. sshd Backdoor[edit | edit source]
Einen kleinen Backdoor-Patch für den OpenSSH Server entwickeln, der einem eigenen Keypair immer Zugriff gewährt.
2. Web Application Analysis[edit | edit source]
Das VM-Image eines gehackten Webservers (PHP-CMS) analysieren, und:
- eine ungefähre Timeline der Attacke rekonstruieren und begründen,
- weiteres Schadenspotential eruieren,
- alle gefundenen Schwachstellen kategorisieren sowie
- fixen.
3. Binary Analysis / Code Obfuscation[edit | edit source]
Ein Linux-ELF-Binary analysieren, welches von sich aus nicht viel macht.
Mittels Debugger, Disassembler und Hexeditor mögliche Trigger Conditions finden und patchen, so dass das Programm seine geheime Nachricht preisgibt (z.B. Datum und Tageszeit).
Prüfung, Benotung[edit | edit source]
Midterm sowie Final exam, mit der Möglichkeit eines nach Wahl erneut zu absolvieren.
Gewichtung 50/50 Assignments und written exams, wobei jeder Teil für sich positiv sein muss.
Dauer der Zeugnisausstellung[edit | edit source]
noch offen
Zeitaufwand[edit | edit source]
Angemessen, bei etwas vorhandener Erfahrung mit C/PHP/Disassembling nicht zu hoch.
Unterlagen[edit | edit source]
Benötigte Bücher zur Vorlesung (in TUWEL zum Download):
- Gary McGraw - Software Security: Building Security In
- The IDA Pro Book - Guide to the World's most popular Disassembler
- Materialien
Tipps[edit | edit source]
- Compiler Explorer: Online-Tool, welches den Assemblercode eines gegebenen C-Programm gegenüberstellt. (kann für die "Binary-Challenges" hilfreich sein)
- Für die Binary Challenges sind folgende Links evtl. hilfreich:
Verbesserungsvorschläge / Kritik[edit | edit source]
noch offen