Cybersecurity: Buffer Overflow
Corso avanzato di 5 lezioni dedicato allo sfruttamento dei buffer overflow, dalle basi della memoria alle tecniche di bypass più moderne. Ispirato al classico The Tao of Buffer Overflow di DilDog (cDc, anni '90) e aggiornato con le protezioni attuali.
Programma del Corso
Fondamenti
01. Introduzione e Memory Layout
Buffers, stack, heap, come la memoria è organizzata in un processo. Perché overflow dannosi.
Sfruttamento
02. Stack Smashing e Sfruttamento Base
Individuare offset, NOP sled, overwrite del return address, shellcode injection.
Sfruttamento Avanzato
03. Shellcode e Offuscamento
Shellcode writing, XOR encoding, downloading payloads, minimizing size, null-free code.
Difese
04. Protezioni Moderne e Bypass
Stack canaries, ASLR, DEP/NX. Tecniche di bypass: return-to-libc, ROP.
Prerequisiti
- Conoscenza di base di C e assembly x86 (o x86_64).
- Familiarità con GDB e comandi da terminale.
- Ambiente Linux (o Windows con strumenti analoghi).
Materiale Didattico
Slide in PDF e codice di esempio saranno resi disponibili progressivamente.
Riferimenti
- DilDog, The Tao of Buffer Overflow, cDc (1998).
- Aleph One, Smashing The Stack For Fun And Profit, Phrack 49 (1996).
- Hovav Shacham, The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86), CCS 2007.
- CTF pwn tip collection