Transient-Execution Attacks: Understanding Meltdown and Spectre
About this Course
In this course, we build upon the knowledge we built up so far on cache side-channel attacks as well as the side-channel and security mindset. We will then go beyond software-based side-channel attacks and study transient-execution attacks. Transient execution is a mechanism present in modern processors, where the processor performs operations, often speculatively, that it later on has to undo. However, the side effects of these operations remain and leak data (not meta-data!) to the attacker. Similar to the prior courses, we provide you with the experience of discovering these attacks yourself in a group of students, living in a shared appartment. We again dive deeper into the microarchitecture and will now understand out-of-order pipelines and how their behavior introduces leakage. We will then use side channels to exfiltrate data and transmit it to an attacker-controlled application. We will learn about the most prominent of these attacks: Meltdown, Spectre, Foreshadow, and ZombieLoad. You will implement some of these attacks yourself, which requires skills in reading and writing C code. You will learn which attacks are relevant in the concrete native and virtualized environments you are working with, contributing to your risk assessment skills. In a set of small exercises, you will implement some of these attacks and show that you understood out-of-order execution pipelines, transient-execution attacks and potential mitigations against them.Created by: Graz University of Technology
Level: Advanced
Related Online Courses
This course starts from the beginning, covering the basics of how a computer interprets lines of code; how to write programs, evaluate their output, and revise the code itself; how to work with... more
What is this course about? In this course, we will look at the advanced technologies that are driving FinTech forward. FinTech is not only a major strategic focus in the banking and finance... more
If you are a developer with experience working on any operating system and want to understand the basics of open source development, this course is for you. Experience with the command line is not... more
Ergonomics is the application of scientific information about people in order to design products and systems so that they are safe, productive, comfortable and healthy for people to use. People... more
Technology and computers are becoming more and more capable every day. Moving forward, computers will become increasingly good at solving problems. That means humans will become the problem finders... more