In questo corso saranno analizzati i principi della software security. Piu` in dettaglio saranno introdotti i principali attacchi low-level memory errors: buffer overflow, heap overflow e Use After Free. Verranno analizzate inoltre le difese per bloccare tali attacchi insieme ai concetti di memory and spatial safety. Per la parte finale verranno introdotti i concetti di symbolic execution applicati alla scoperta di vulnerabilita` nell'ambito del fuzzing. Particolare enfasi verrà posta sugli aspetti pratici dei vari problemi trattati senza ovviamente trascurare le implicazioni teoriche ad essi correlate. Viste le modalità di svolgimento del corso e delle prove d'esame si incoraggiano vivamente gli studenti interessati al corso a frequentarne assiduamente le lezioni.
Al termine del corso lo studente che avrà superato con profitto l'esame sarà in grado di:
Al fine di poter trarre il massimo profitto dal corso gli studenti interessati a frequentarlo devono possedere i seguenti requisiti:
Data | Argomento | Materiale didattico |
---|---|---|
26/02/2025 | Low-Level attack: Buffer Overflow (Stack-Based) Part 1 | Slide Buffer Overflow Aleph One paper on Buffer Overflow Shellcoder Handbook |
05/03/2025 | Low-Level attack: Buffer Overflow Practical Part 2 | GDB Cheat Sheet GDB Peda Repository GDB Input handle Pwntools cheat sheet |
12/03/2025 | Low-Level attack: Heap Overflow on Metadata | Heap Overflow on Metadata Heap Overflow Repository |
19/03/2025 | Low-Level attack: Use After Free (UAF) | Use After Free Vulnerability |
26/03/2025 | Low-level defense: Memory safety and Type safety | Defense against low-level attacks Low-fat pointer technique LowFat Pointer Implementation |
02/04/2025 | Low-level defense: Canary, ASLR, DEP, Return Oriented Programming (ROP) | Return Oriented Programming (ROP) |
09/04/2025 | Low-level defense: Return Oriented Programming (ROP) | ROP Gadgets Tool Blind ROP paper x64 Syscall table |
16/04/2025 | Low-Level defense: Control Flow Integrity (CFI) | Control Flow Integrity (CFI) Control Flow Integrity (CFI) paper Bypassing Intel CET with Counterfeit objects Paper: Counterfeit Object-oriented Programming |
23/04/2025 | Program Analysis Testing for Security Purpose | Security Analysis Introduction |
30/04/2025 | Program Analysis I: Symbolic Execution (Introduction) | Symbolic Execution |
07/05/2025 | Side Channel Attacks | Meltdown & Spectre |
14/05/2025 | Program Analysis II: Symbolic Execution | Symbolic Execution II Klee |
21/05/2025 | Program Analysis II: Fuzzing | Fuzzing Techniques Klee Tutorial 1 Klee Tutorial video Qsym Hybrid Fuzzer Paper LibAFL |
28/05/2025 | TBD | |
04/06/2025 | TBD |
L'esame si compone di 2 parti:
Dott. Mirco Picca