SECURE PROGRAMMING
A.A. 2018/2019
CONTACTS
üfrancesco.santini@unipg.it
Telegram
ühttps://telegram.me/safran
Ricevimento
üMercoledì dalle 14 in poi (meglio su appuntamento per mail o Telegram)
Pagina Web corso
ühttp://www.dmi.unipg.it/francesco.santini/sec.html
PROGRAM
Taxonomy
Stack overflows Heap overflows Shellcode
Input validation and data sanitization (Fuzz testing) Operating system support (e.g., address space randomization, canaries)
Hardware support (e.g., DEP, TPM) Integer errors
Concurrency and race conditions
Correct handling of exceptions and unexpected behaviors Static and dynamic analysis
Program Verification XSS and SQL injection
EXAM
Domande su quello che abbiamo fatto
EXAM
Domande su quello che abbiamo fatto + Mini-progetto…per esempio
üScrivere uno shellcode e farlo funzionare disabilitando le protezioni (che vedremo) su piattaforme differenti (o su Linux, o su Mac, o su Windows)
üReturn oriented programming (utilizzo di pwntools o ROPgadget)
Utilizzando per esempio pwntools
ühttps://github.com/Gallopsled/pwntools ühttps://docs.pwntools.com/en/stable/
CTF and exploitment development library
EXAM
Istallazione di un DBMS e dimostrazione di funzionamento di SQL injection.
In pratica, un esempio funzionante di una vulnerabilità fatto (o meno) a lezione.
Da discutere insieme, su vostra proposta.
Cominciate a pensarci da adesso!
EXAM
Relazione scritta in Latex da consegnare 2 giorni prima dell’esame.
Deve essere una relazione esauriente e passo-passo di quello quello che avete fatto per arrivare a rendere tutto funzionante (cosa avete disabilitato, scritto, modificato), anche per quanto riguarda l’interazione con il sistema operativo.
Dimostrazione di quanto fatto in sede di orale.