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 |
---|---|---|
27/09/2023 | Low-Level attack: Buffer Overflow (Stack-Based) Part 1 | Slide Buffer Overflow Aleph One paper on Buffer Overflow Shellcoder Handbook |
04/10/2023 | Low-Level attack: Buffer Overflow Practical Part 2 | GDB Cheat Sheet GDB Peda Repository GDB Input handle Pwntools cheat sheet |
11/10/2023 | Low-Level attack: Heap Overflow on Metadata | Heap Overflow on Metadata Heap Overflow Repository |
18/10/2023 | Low-Level attack: Use After Free (UAF) | Use After Free Vulnerability |
25/10/2023 | Low-level defense: Memory safety and Type safety | Defense against low-level attacks Low-fat pointer technique LowFat Pointer Implementation |
08/11/2023 | Low-level defense: Canary, ASLR, DEP, Return Oriented Programming (ROP) | Return Oriented Programming (ROP) |
15/11/2023 | Low-level defense: Return Oriented Programming (ROP) | ROP Gadgets Tool Blind ROP paper x64 Syscall table |
22/11/2023 | 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 |
29/11/2023 | Simulazione prova di laboratorio | Nessuna risorsa |
06/12/2023 | Program Analysis Testing for Security Purpose | Security Analysis Introduction |
06/12/2023 | Program Analysis I: Symbolic Execution (Introduction) | Symbolic Execution |
13/12/2023 | Side Channel Attacks | Meltdown & Spectre |
13/12/2023 | Program Analysis II: Symbolic Execution | Symbolic Execution II Klee |
20/12/2023 | Program Analysis II: Fuzzing | Fuzzing Techniques Klee Tutorial 1 Klee Tutorial video Qsym Hybrid Fuzzer Paper LibAFL |
L'esame si compone di 2 parti: