Software attacks are a common part of today's headlines. This course aims at demystifying them by giving the fundamentals to understand these attacks, what they consist in and how to mitigate them. We will mostly focus on software vulnerabilities.
We will cover the following topics:
Note: These lectures will require a fair amount of hands-on experiments on the computer to make the concepts more practical. They also involve supplementary reading material as part of the contents.
# | Date | Title |
---|---|---|
1 | 2021-01-05 | Introduction |
2 | 2021-01-12 | Basic attacks & exploitation |
3 | 2021-01-19 | MATE, attack & defense |
4 | 2021-01-26 | Control-flow integrity |
5 | 2021-02-02 | Semantic attacks (program analysis) |
6 | 2021-02-09 | Fuzzing |
7 | 2021-02-16 | Exam |
This session presents basic low-level attack techniques:
Most of the session is allotted to hands-on experimentation.
This lecture discusses at length the Man-At-The-End (MATE) scenario. MATE is an attack model where the attackers are very powerful since they basically are on your computer, can read/write the code, execute it step-by-step or patch it on the fly.
We will here expose the current state of known attacks and defenses, giving an overview of this research area.
This session presents three main basic binary exploitation mitigation techniques:
We will also talk about their limitations and briefly present more advanced control-flow integrity measures that are currently available.
A good part of the session is allotted to hands-on experimentations.
The final exam will contain 2 parts:
The presentation of a research article (groups of 2, 20 minutes + questions) – rank the articles from the list in decreasing order and send a message ranking them to the professors;
A mini CTF problem (find the secret key!) and its written solution report (10p. max).
The CTFs are available from:
https://github.com/rbonichon/asi36-ctf/tree/ctf-2020-2021
Deadline for CTF reports: April 2 2021
Selected article | Students | Scheduled |
---|---|---|
Weird Machines in ELF | Loïc, Jean-Baptiste | 9:00 |
Transparent ROP Exploit Mitigation using Indirect Branch Tracing | Alizée, Sabry | 9:30 |
ContractFuzzer: Fuzzing Smart Contracts for Vulnerability Detection | Tom | 10:00 |
Grey-box Concolic Testing on Binary Code | Laetitia, Laetitia | 10:30 |
Function Boundary Detection in Stripped Binaries | Quentin, Pierre-Élisée | 11:00 |
Towards Paving the Way for Large-Scale Windows Malware Analysis: Generic Binary Unpacking with Orders-of-Magnitude Performance Boost | Charbel, Mahmoud | 11:30 |