In this practical course, the students deal with different aspects of (mobile and IoT) system security. They comprise the following areas:

  • System programming in general
  • Design and implementation of selected software attacks
  • Design and implementation of secure applications
  • Modifications of and Experiments with Linux kernel-based systems
  • Security of Machine Learning
  • Applications of Machine Learning for Security Tasks


Students who want to participate in the course should

  • have solid knowledge of OS concepts/architectures
  • be familiar with programming and debugging in C/C++

Actual programming experience on low-level system components or embedded platforms on the OS-level are not a prerequisite, but definitively an advantage.


The programming tasks are solved in teams of 2-3 students. At the beginning of the course, a kick-off lab-session is given to present the topics. The participants are required to form teams of 2-3 students.

At the midterm of the semester, each team has to hand in a short progress report and at the end of the semester, a concluding lab-session is held in which every team has to shortly present its work/results.