Headings denoted with an asterisk ( * ) is retrieved from the course syllabus version Autumn 2026
Content and learning outcomes
Course contents
During the course the students work in groups to develop techniques for protecting system software. We focus on vulnerabilities such as buffer overflows, code injection, control flow manipulation, side-channel attacks, and fault injection. The project will use techniques based on memory isolation, runtime monitoring, static analysis, and diversification to prevent, detect, or mitigate illegal behavior. Our experiments are based on an existing operating system and existing compilers.
Part I. Introductions and tutorials on the operating system and compiler chosen by the teacher for this course.
Part II. Lectures on the latest defense mechanisms.
Intended learning outcomes
After passing the course, the student should be able to
identify vulnerability of systems, exploit them and evaluate their impact
compare the efficacy of different countermeasures
design and implement security mechanisms for computer systems
document their arguments and results
in order to be able to evaluate and improve the security of computer systems.
Learning activities
The project should focus on Operating System Security or Compiler extensions to support security. As a group (of four students) you can choose three platforms
s3k: if you are interested in developing run-time defences. s3k is a separation developed at KTH based on capability model and focuses on providing spatial and timing isolation. We offer 3 Lectures and tutorials s3k.
llvm: if you are interested in developing compile-time defences. We link few good source of examples on implementing llvm passes. We offer 1 Lecture and tutorials on LLVM.
Other systems (linux, qemu, hypervisors, etc). We do not offer learning material on other platforms. If you want to work on something different than s3k or llvm you must implement a state of the art project for a platform that you already know.
Detailed plan
1 introduction lecture on system security. In this lecture we will discuss motivations and course structure.
3 lectures/tutorials on s3k. These lectures explain the internals of a small operating system.
1 lecture/tutorial on llvm. This lectures explain the how to implement analyses and code transofrmations in LLVM
3 lectures on system security. In these lectures we will present state of the art solutions that have been published in security conferences.
Supervision meetings (one per week per group, mandatory one every two weeks)
Preparations before course start
Specific preparations
General knowledge about computer security
Some experience with programming in C/C++/or Rust
Literature
For s3k (slides, lectures, recorded lectures, tutorials):
For llvm (slides, lectures, recorded lectures, tutorials):
INL1 - Project Documentation, 1.0 credits, grading scale: P, F
PRO1 - Project Work, 6.5 credits, grading scale: P, F
Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability. The examiner may apply another examination format when re-examining individual students. If the course is discontinued, students may request to be examined during the following two academic years.
The section below is not retrieved from the course syllabus:
INL1 - Project Documentation, 1.0 credits
PRO1 - Project Work, 6.5 credits
Ethical approach
All members of a group are responsible for the group's work.
In any assessment, every student shall honestly disclose any help received and sources used.
In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.