Software attacks are extensively hitting the headlines nowadays. This course aims at demystifying them by giving the fundamentals to understand these attacks, what they consist in and how to protect from them. We will mostly focus on software vulnerabilities.
We will cover the following topics:
# | Date | Title |
---|---|---|
1 | 2019-01-17 | Introduction |
2 | 2019-01-25 | Basic attacks & exploitation |
3 | 2019-02-07 | MATE, attack & defense |
4 | 2019-02-14 | Control-flow integrity |
5 | 2019-02-21 | Semantic attacks (program analysis) |
6 | 2019-02-25 | Fuzzing |
7 | 2019-02-28 | Exam |
This session presents basic low-level attack techniques:
Most of the session is allotted to hands-on experimentation.
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 CTFs are available from https://github.com/rbonichon/asi36-ctf
Selected article | Students | Scheduled |
---|---|---|
Binary Code is not easy | Kaori, Willy | 9:15 |
Compiler-Agnostic Function Detection in Binaries | Ali, Matthieu | 9:45 |
The Geometry of Innnocent Flesh on the Bone | Ignacio | 10:15 |
Hacking Blind | François, Louis-Marie | 11:00 |
SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis | Benjamin, Cyrielle | 11:30 |
All you Ever Wanted to Know About Dynamic Taint Analysis and Forward Symbolic Execution (but might have been afraid to ask) | Pierre, Léo | 12:00 |