Teaching

Reverse Engineering and Exploit Development For Embedded Systems (Advance Lecture, Summer 2023)

From critical infrastructure to consumer electronics, embedded systems are all around us and underpin the technological fabric of everyday life. As a result, the security of embedded systems is crucial to us.

Therefore, this course will work toward understanding the fundamentals of developing software/hardware exploits against embedded systems. We will cover firmware extraction, modification, and different hardware serial protocols. We also cover topics such as exploit development for ARM-based embedded devices and write exploits for vulnerabilities such as uninitialized stack variables, off-by-one bugs, Use-after-free, and utilize techniques such as ROP, Signal-oriented programming to attack embedded systems. We also attack microcontrollers and try to extract their secrets using reverse-engineering techniques. Finally, we perform fuzz-testing on embedded firmware via re-hosting.

Results: At the end of this course, around ten 0-days were identified by students in major Real-Time Operating Systems.

Hardware Security Seminar (Summer 2023):

This seminar covers research papers addressing various topics in hardware security. This includes topics such as hardware trojans, hardware side-channel, security hardware extensions, external memory security, security of hardware-based secure enclaves, hardware testing, hardware watermarking, and counterfeit detection.

Systems Security (Advance Lecture, Winter 2022 and 2023, Together with Thorsten Holz):

In this course, important theoretical and practical aspects from the area of systems security are presented and discussed. The focus is on various aspects of software security and different attack and defense techniques are presented. More specifically, important attack methods (e.g., buffer overflows, race conditions, use-after-free, heap overflows, etc.) as well as defense strategies (e.g., non-executable memory, Address Space Layout Randomization, memory tagging, etc.) are discussed. Other topics of the lecture are fuzzing, symbolic execution, reverse engineering, obfuscation, and similar aspects of systems security.  At the end of the course, students should be able to analyze the security aspects of various types of software systems, detect vulnerabilities in the design and implementation, and independently develop security mechanisms. In addition, other aspects from the area of systems security, such as fuzzing and security aspects of operating systems, will be discussed. 

Embedded Systems Security Seminar (Winter 2022):

From critical infrastructure to consumer electronics, embedded systems are all around us and underpin the technological fabric of everyday life. As a result, the security of embedded systems is crucial to us.

This seminar covers research papers addressing various topics in embedded systems security. This includes topics such as instruction profiling (template attack), fault injection and side-channel attacks, firmware static and dynamic analysis, intrusion detection in embedded systems, automotive/space systems security, and fuzzing embedded systems.

Previous Teaching

Schwachstellenanalyse (Vulnerability Analysis), 2019, 2018, 2017, Ruhr University Bochum.

Programmanalyse (Program Analysis), 2019, 2018, 2017, Ruhr University Bochum.

Hacker’s Hut, 2018, Eindhoven University of Technology.